Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 166 (pdf).
Blíží se prázdniny a než se rozutečete k moři, je na čase se opět sejít na Virtuální Bastlírně - pravidelném setkání elektroniků, ajťáků, bastlířů a obecně nadšenců do techniky. Co si pro vás strahovští bastlíři připravili tentokrát? Určitě proberou blížící se Linux Days i další události. U softwaru se chvíli zdrží a poví si kupříkladu o tom, jak se zbavit Bambu Cloudu, ale nepřijít o možnost ovládat tiskárnu na dálku. Řeč dojde i na AI,
… více »Vývojáři postmarketOS vydali verzi 26.06 tohoto operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 2.55.0 distribuovaného systému správy verzí Git. Přispělo 100 vývojářů, z toho 33 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Craig Loewen na blogu Microsoftu oznámil veřejnou preview verzi WSL kontejnerů, tj. linuxových kontejnerů ve Windows Subsystem for Linux (WSL). Spouští se příkazem wslc.exe.
Byla vydána (𝕏, Bluesky) nová verze 2026.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem 9 nových nástrojů v oficiálním oznámení na blogu.
Grafická aplikace Krokiet/Czkawka pro vyhledávání a odstraňovaní nepotřebných souborů (duplicitní soubory, prázdné složky, podobné obrázky, podobná videa, poškozené soubory a další) byla vydána ve verzi 12.0.0. Podrobný přehled novinek v příspěvku na Medium. Jedná se o poslední verzi frontendu Czkawka GTK nad Czkawka Core. Uživatelům se doporučuje migrovat na frontend Krokiet postavený nad frameworkem Slint. Představena byla aplikace Cedinia pro Android využívající Czkawka Core. Dostupná je jako APK pro ruční instalaci.
Po téměř třech letech od vydání verze 9 byla vydána nová verze 10 linuxové distribuce Mageia (Wikipedie). Přehled novinek v poznámkách k vydání.
Nourish (GitHub) je nový správce oken pro Linux. Tradiční plochy nahrazuje nekonečným plátnem a posouváním a přibližováním. Využívá vlastní kompozitor pro Wayland s názvem y5. Videoukázka.
Po 20 letech a 17 otevřených (open source) krátkých filmech Blender Studio oznámilo plán na svůj první celovečerní film. Cílem samozřejmě není jenom nový otevřený film, ale především vývoj a vylepšení otevřených nástrojů pro spolupráci napříč celým procesem a vytvoření otevřené příručky (playbook) pro filmovou produkci ve velkém měřítku s informacemi, které jsou obvykle dostupné pouze uvnitř komerčních studií, a pomoci tak nezávislým tvůrcům překonat technické a organizační bariéry.
RS232 ruleZ
RS232 podle specifikace do vzdálenosti 15 metrů při přenosové rychlosti do 20kb/s, což vyplývá z povolené kapacity kabelu 2500pF. V praxi jsou dosahovány výsledky mnohem lepší (115200kb/s při vzdálenosti až 50 metrů), díky použití kabelů s kapacitou pod 1000 pF. Rozhraní RS232 je relativně málo odolné proti rušení...
http://www.hw.cz/docs/rs485/rs485.htmlRS422/RS485 do 1200 metru, pricemz na RS485 lze povesit vice zarizeni. Komunikacni linky jsou galvanicky oddelene, takze vam toho pri nejakych problemech moc neshori.
Prevodnik RS232<->RS485 lze vyrobit i podstatne levneji, ovsem nutnosti byva ovladani vysilace signalem RTS, ale s tim pod linuxem nemam zkusenost a zajimalo by mne, s jakou odezvou je mozne ho ovladat, nebot pod nejmenovanym operacnim systemem se chova dost nevypocitatelne.
while(1) { /*Wait for TSR*/
if(ioctl(fd, TIOCSERGETLSR, &lsr) == -1) {
printf("ioctl() error %d occured (%s)\n", errno, strerror(errno));
return -1;
}
if(lsr & TIOCSER_TEMT) break;
}
Pak teprve je možné změnit stav RTS a tím přepnout modem z vysílání na příjem.
int iFlags = TIOCM_RTS; ioctl(fd, TIOCMBIS, &iFlags);a deaktivuje takto:
int iFlags = TIOCM_RTS; ioctl(fd, TIOCMBIC, &iFlags);kde
fd je file descriptor daného otevřeného portu.
(navic nekdo to tu popsal detailne takze diky mu). Na webu od Cypresse jsou aplikacni poznamky a tam jsou testy propustnosti v ruznych rezimech pro jejich CPU.
Jen tak mimochodem mi to zase pouzivame na prenos obrazu z PC
. Ale ta vase aplikace mne docela zajima. Byl byste se ochoten podelit o zkusenosti. Treba jaky procesor jste pouzily atd.? Ale radsi pres email nebo ICQ at neobtezuju ostatni.
P.S. Ten zdrojak se mi bohuzel nepovedlo najit, ale naskrabu to znovu pokud byste mnel zajem.
ICQ: 158-434-232
kulich.bulich@worldonline.cz
root# setserial /dev/ttyS0
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
Nastavení parity explicitně na 1 lze chápat jako přidání jednoho stopbitu navíc, nicméně dva stopbity by měly stačit, takže snad ani není potřeba to dělat. Nastavit ji na 0 by teoreticky šlo softwarově, kdyby počet bitů ve slovu byl nižší než 8. Paritu lze také při příjmu ignorovat. Ale netuším, v jaké aplikaci je nutné nastavovat paritu na fixní hodnotu.

. Nadeji bych vkladal do flagu TTY_PARITY, i kdyby se mel testovat po kazdem prijatem bajtu. Hodne stesti, to by me zajimalo, jestli to funguje.
include/linux/serial_reg.h
Takže test na chybu parity by se dal udělat jako#include<linux/serial_reg.h> int lsr; ioctl(fd, TIOCSERGETLSR, &lsr); if (lsr & UART_LSR_PE) parity_error();
#define UART_LCR_SPAR 0x20 /* Stick parity (?) */Nevíte někdo, proč je v tom komentáři otazník?
#!/usr/bin/env python import base64, MySQLdb, os, sys from MySQLdb.cursors import Cursor,BaseCursor,DictCursor password_base64 = 'aowfowefwe=\n' # plaintext heslo nechci ukazovat password_plain = base64.decodestring(password_base64) db = MySQLdb.connect(db='moje_db', passwd=password_plain ) c = DictCursor(db) db_command = 'select * from tabulka' c.execute(db_command) while True: answer = c.fetchone() if not answer: break print answer #Udelej neco s temi daty c.close() db.close()Takže když už jsou data k dispozici, je potřeba je nasypat do otevřeného a patřičně nastaveného sériového portu. Ukázka pro inspiraci může vypadat následovně:
#!/usr/bin/env python
import tty, os
fd = os.open('/dev/ttyS0', os.O_RDWR | os.O_SYNC)
attr = tty.tcgetattr(fd)
attr[tty.IFLAG] = tty.IGNPAR | tty.IGNBRK | tty.INPCK | tty.IMAXBEL | tty.IXOFF
attr[tty.LFLAG] = tty.ECHOKE
attr[tty.OFLAG] = tty.ONOCR
attr[tty.CC][tty.VMIN] = 0
attr[tty.CC][tty.VTIME] = 5
attr[tty.ISPEED] = tty.B19200
attr[tty.OSPEED] = tty.B19200
attr[tty.CFLAG] = tty.B19200 | tty.PARENB | tty.PARODD | tty.CSTOPB | tty.CS8
attr[tty.CFLAG] |= tty.CLOCAL | tty.CREAD | tty.HUPCL
tty.tcflush(fd, tty.TCIOFLUSH)
tty.tcsetattr(fd, tty.TCSANOW, attr)
# Ted se neco zapise do portu ...
# a pak se port zavre
os.close(fd)
Podotýkám, že jsem neměl možnost nic vyzkoušet, takže nevím, jestli to funguje.
Tiskni
Sdílej: