Společnost Raspberry Pi patřící nadaci Raspberry Pi chystá IPO a vstup na londýnskou burzu.
Google na své vývojářské konferenci Google I/O 2024 představil řadu novinek. Keynote byl věnován umělé inteligenci (DeepMind, Gemini, Responsible AI).
V Gitu bylo nalezeno 5 zranitelností. Opraveny jsou ve verzích 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2 a 2.39.4. Útočník může připravit repozitář tak, že při jeho klonování (git clone) může dojít ke spuštění libovolného kódu.
Virtualizační softwary VMware Workstation Pro a VMware Fusion Pro jsou nově pro osobní použití zdarma. Softwary VMware Workstation Player a VMware Fusion Player končí.
Linuxová distribuce Endless OS (Wikipedie) byla vydána ve verzi 6.0.0. Přehled novinek i s náhledy v příspěvku na blogu, poznámkách k vydání a také na YouTube.
Byl vydán Mozilla Firefox 126.0. Přehled novinek v poznámkách k vydání, poznámkách k vydání pro firmy a na stránce věnované vývojářům. Vylepšena byla funkce "Zkopírovat odkaz bez sledovacích prvků". Přidána byla podpora zstd (Zstandard). Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 126 je již k dispozici také na Flathubu a Snapcraftu.
Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 11.0. Přehled novinek v aktualizované dokumentaci.
Byla vydána nová verze 24.0 linuxové distribuce Manjaro (Wikipedie). Její kódové jméno je Wynsdey. Ke stažení je v edicích GNOME, KDE PLASMA a XFCE.
Byla představena oficiální rozšiřující deska Raspberry Pi M.2 HAT+ pro připojování M.2 periferii jako jsou NVMe disky a AI akcelerátory k Raspberry Pi 5. Cena je 12 dolarů.
V Praze o víkendu proběhla bastlířská událost roku - výstava Maker Fair v Praze. I strahovští bastlíři nelenili a bastly ostatních prozkoumali. Přijďte si proto i vy na Virtuální Bastlírnu popovídat, co Vás nejvíce zaujalo a jaké projekty jste si přinesli! Samozřejmě, nejen českou bastlířskou scénou je člověk živ - takže co se stalo ve světě a o čem mohou strahováci něco říct? Smutnou zprávou může být to, že provozovatel Sigfoxu jde do
… více »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.
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.
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: