Po 9 týdnech vývoje od vydání Linuxu 6.12 oznámil Linus Torvalds vydání Linuxu 6.13. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a Linux Kernel Newbies. Odstraněn byl souborový systém ReiserFS.
19. ledna 2038 přeteče hodnota time_t na 32bitových systémech, na vyřešení problému roku 2038 (Y2K38) tedy zbývá 13 let. Např. Debian v uplynulém roce přešel na 64bitový čas. Bernhard Wiedemann z openSUSE sdílí chyby v sestavení rozšířeného softwaru.
Byla vydána druhá opravná verze 21.2 v dubnu loňského roku vydané verze 21 multimediálního centra Kodi (dříve XBMC, Wikipedie) s kódovým označením Omega.
TikTok ve Spojených státech v sobotu večer místního času přerušil činnost. Uživatelé čínskou firmou vlastněné sociální sítě dostali zprávu, že aplikaci kvůli zákazu nelze používat. TikTok je momentálně nedostupný v obchodech s aplikacemi Google Play a App Store. Podle zákona přijatého loni a potvrzeného v pátek soudem měla platforma do dneška přerušit spojení se svou mateřskou společností ByteDance, která sídlí v Číně, nebo činnost v
… více »Wings 3D, tj. open source 3D modelovací program naprogramovaný v programovacím jazyce Erlang zaměřený na modelování pomocí subdivision a inspirovaný programy Nendo a Mirai od Izware, byl vydán v nové opravné verzi 2.4.1. Ke stažení již také ve formátu Flatpak z Flathubu.
Webový prohlížeč Dillo byl vydán ve verzi 3.2.0. Přidává podporu vzorců v SVG, obrázků ve WebP, změny velikosti stránky či možností posouvání. Nedávno oslavil 25. výročí vzniku.
Hra Mini Thief je na Steamu zdarma napořád, když aktivaci provedete do 24. ledna do 19.00 [ProtonDB].
Certifikační autorita Let's Encrypt oznámila, že bude volitelně nabízet krátkodobé certifikáty s šestidenní platností a navíc s možností vystavit je na IP adresu. Zvolit typ certifikátu bude možné v certifikačním profilu ACME.
Herní konzole Nintendo Switch 2 byla oficiálně potvrzena. Vyjde letos. Trailer na YouTube. Více ve středu 2. dubna na Nintendo Direct.
Byl vydán Linux Mint 22.1 s kódovým jménem Xia. Podrobnosti v přehledu novinek a poznámkách k vydání. Linux Mint 22.1 bude podporován do roku 2029.
Dobrý den,
Sanžím se (pomocí Pythonu) zprovoznit komunikaci s jistým HW zařízením, pomocí seriového portu. Jsem ve stavu, kdy dokáži na port zapisovat a HW bezproblému příjímá, ale potřeboval bych také, ale by program v Pythonu dokázal reagovat, když dostane od HW nějakou informaci.
Ke komunikaci používám pySerial. Mám takové malé GUI, kterým posílám informace HW a ten je přijímá, ale chtěl bych pro testovací účely, aby je HW poslal zpět. Ze strany HW to mám ošetřeno, ale nevím jak zachytávat zprávy v Pythonu, protože informace může přijít kdykoliv a jí na ni potřebuji reagovat.
Hledal jsem dlouho, ale našel jsem pouze nějaké řešení pomocí vícevláknové aplikace, což však neumím implementovat. Nenapadá prosím někoho nějaké jiné řešení jak odchytávat vstup? Popřípadě jak tedy využít více vláken a kde se o tom dozvědět nějaké informace?
Děkuji za každou odpověď...
A nebyl byste (popřípadě kdokoliv jiný) tak laskav a naznačil, jak by ta komunikace probíhala? Nedovedu si moc představit to probouzení. Kdybych měl hlavní proces s GUI a vytvořil vlákno, které by třeba čekalo na nějaký impuls na seriovém portu. Jak dát vědět tomu druhému, že se něco stalo a on na to má reagovat? Nebo si to špatně představuji?
Děkuji
GUI je v Tkinteru, nicméně se mi podařilo na webu najít nějakou ukázku terminálu ve wxPythonu a díky ní jsem to pochopil a zdárně implementoval. Jediné, co mě ještě trápí, jsou problémy s bufferem, respektive s posíláním zpráv z hardwaru (konkrétně jde o kit Arduino Decimilia). Zprávy jsou občas náhodně zalomeny na další řádek. Například pošlu-li číslo 123, tak ho přijmu jednou jako 123, jednou jako 12\n3 nebo 1\n23. Netuším čím to může být, ale zřejmě není problém na straně GUI.
Tak kdyby někdo řešil podobný problém:
Chyba byla ve špatné implementaci. Data jsem četl ve smyčce
while 1:
n = serial.read(1)
if n:
n = n + serial.read(n)
print n
a problém byl pravděpodobně způsoben tím, že jsem reagoval na stav bufferu dřív, než v něm byla všechna data. Tzn smyčka začínala a když se prováděl řádek n = serial.read(1), tak v bufferu byla uložena jen část řetězce.
Teď by mě ještě zajímalo jak vše zesynchronizovat. Napadlo mě použití nějakého odělovače (např.: dvojtečka, tečka, čárka nebo nějaký jiný málo používaný ASCII znak) a potom, když bude něco v bufferu, tak se bude číst, dokud nenarazím na daný znak. Napadá někoho lepší řešení?
No záleží na tom, jestli z toho HW chodí ASCII text, nebo nějaký binární svinstvo. Já jsem řešil podobný problém s bufferem na data, která jsem odesílal z jednočipu a coby ukončovací/oddělovací znak jsem používal 0x00.
Moc tomu tvému problému nerozumím. Možná by pomohlo sem hodit ukázku dat, která do toho portu tečou. Možná by taky nebylo od věci použít readline(), místo read(1) a pak to spojovat.
Pokud tomu ale rozumím správně, že ještě nemáš hotový protokol, kterým se bude komunikovat, pak bych doporučil jako oddělovač zpráv zvolit \n a pomocí toho readline() z toho portu číst po celých řádcích. Potom budeš moci třeba pomocí regulárních výrazů parsovat hodnoty v každé zprávě.
Tiskni
Sdílej: