abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 05:11 | Komunita

    Dan Blanchard vydal knihovnu pro Python chardet v nové verzi 7.0.0. S novou verzí byla knihovna přelicencována z LGPL na MIT. Souhlasili s tím všichni přispěvatelé? Dan Blanchard souhlasy vůbec neřešil. Zaúkoloval umělou inteligenci (Claude), aby knihovnu zcela přepsala a výslovně jí nařídil, aby nepoužila žádný LGPL kód. Dan Blanchard tvrdí, že se jedná o clean room design. Protistrana argumentuje, že umělá inteligence byla trénována

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 18:44 | Komunita

    Andy Nguyen si na svou herní konzoli PlayStation 5 (PS5) pomocí exploitu Byepervisor nainstaloval Linux (Ubuntu). V Linuxu si spustil Steam a PS5 tak proměnil v Steam Machine. Na PS5 může hrát hry, které jsou vydané pouze pro PC a jsou na Steamu [Tom's Hardware].

    Ladislav Hagara | Komentářů: 5
    včera 12:22 | Nová verze

    Správce sbírky fotografií digiKam byl vydán ve verzi 9.0.0. Jedná se o větší vydání provázené aktualizacemi knihoven. Mnoho dílčích změn se vedle oprav chyb týká uživatelského rozhraní, mj. editace metadat.

    |🇵🇸 | Komentářů: 1
    7.3. 13:55 | Nová verze

    Byla vydána verze 2026 distribuce programu pro počítačovou sazbu TeX s názvem TeX Live (Wikipedie). Přehled novinek v oficiální dokumentaci.

    Ladislav Hagara | Komentářů: 12
    6.3. 23:22 | Humor

    Jihokorejská Národní daňová služba (NTS) zabavila kryptoměnu Pre-retogeum (PRTG) v hodnotě 5,6 milionu dolarů. Pochlubila se v tiskové zprávě, do které vložila fotografii zabavených USB flash disků s kryptoměnovými peněženkami spolu se souvisejícími ručně napsanými mnemotechnickými obnovovacími frázemi. Krátce na to byla kryptoměna v hodnotě 4,8 milionu dolarů odcizena. O několik hodin ale vrácena, jelikož PRTG je extrémně nelikvidní, s denním objemem obchodování kolem 332 dolarů a zalistováním na jediné burze, MEXC [Bitcoin.com].

    Ladislav Hagara | Komentářů: 9
    6.3. 16:33 | Nová verze

    Komunita kolem Linuxu From Scratch (LFS) vydala nové verze knih s návody na instalaci vlastního linuxového systému ze zdrojových kódů Linux From Scratch 13.0 a Beyond Linux From Scratch 13.0. Pouze se systemd.

    Ladislav Hagara | Komentářů: 0
    6.3. 16:00 | Nová verze

    Byla vydána nová stabilní major verze 25.12 linuxové distribuce primárně určené pro routery a vestavěné systémy OpenWrt (Wikipedie). Jedná se o nástupce předchozí major verze 24.10. Přehled novinek v poznámkách k vydání. Podporováno je více než 2200 zařízení.

    Ladislav Hagara | Komentářů: 0
    6.3. 04:44 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za únor (YouTube). Odstraněn byl veškerý kód napsaný ve Swiftu. JavaScriptový engine LibJS byl reimplementován v Rustu.

    Ladislav Hagara | Komentářů: 4
    5.3. 21:11 | Nová verze

    Byla vydána verze 1.94.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example. Zveřejněny byly výsledky průzkumu mezi vývojáři v programovacím jazyce Rust: 2025 State of Rust Survey Results.

    Ladislav Hagara | Komentářů: 8
    5.3. 17:33 | Komunita

    Google zveřejnil seznam 185 organizací přijatých do letošního Google Summer of Code (GSoC). Dle plánu se zájemci přihlašují od 16. do 31. března. Vydělat si mohou od 750 do 6600 dolarů. V Česku a na Slovensku je to 900 dolarů za malý, 1800 dolarů za střední a 3600 dolarů za velký projekt. Další informace v často kladených otázkách (FAQ). K dispozici jsou také statistiky z minulých let.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (7%)
     (0%)
     (11%)
     (28%)
     (2%)
     (5%)
     (2%)
     (12%)
     (25%)
    Celkem 1033 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: Kontrola sériového portu v Pythonu

    22.5.2009 17:13 Michal Komár
    Kontrola sériového portu v Pythonu
    Přečteno: 427×

    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ěď...

    Odpovědi

    22.5.2009 18:57 Messa | skóre: 39 | blog: Messa
    Rozbalit Rozbalit vše Re: Kontrola sériového portu v Pythonu
    Řešení bez vláken by nejspíš muselo spočívat v tom, že byste se neustále (např. každých 100 ms) díval, zda po sériovém portu něco nepřišlo. To vidím asi jako nejlehčí a nejlepší řešení.

    Vzhledem k tomu, že GUI knihovny obvykle používají nějakou podobu selectování/pollování, zda nepřišlo něco z X serveru, možná by šlo file deskriptor sériového portu přidat do toho pollu a aplikace by reagovala okamžitě. To už je ale spíš hack.

    Řešení s vlákny by zahrnovalo druhé vlákno, které by čekalo na data ze sériového portu, a když nějaká přijdou, buď by je zobrazilo přímo (pokud to dané GUI umí), nebo by je někam uložilo a nějak probudilo vlákno s GUI, které by data zobrazilo.

    Doufám, že jsem na nic nezapomněl, něco takového už jsem delší dobu nevytvářel. Možná existují i jiná řešení.

    Více informací o programování s vlákny v Pythonu se dozvíte překvapivě v dokumentaci Pythonu. Můžete zkusit najít už existující, např. v nějaké open-source aplikaci, řešení podobného problému.
    22.5.2009 22:23 Michal Komár
    Rozbalit Rozbalit vše Re: Kontrola sériového portu v Pythonu

    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

    24.5.2009 07:23 Messa | skóre: 39 | blog: Messa
    Rozbalit Rozbalit vše Re: Kontrola sériového portu v Pythonu
    V čem máte to GUI? Je to GTK, Qt, Tk...?
    24.5.2009 14:32 Michal Komár
    Rozbalit Rozbalit vše Re: Kontrola sériového portu v Pythonu

    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.

    26.5.2009 21:40 Michal Komár
    Rozbalit Rozbalit vše Re: Kontrola sériového portu v Pythonu

    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í?

    27.5.2009 09:35 Hrabosh | skóre: 26 | blog: HBlog | Brno
    Rozbalit Rozbalit vše Re: Kontrola sériového portu v Pythonu

    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.

    To jsem psal já ... to není bordel, to je modulární!
    27.5.2009 09:44 Jary | skóre: 30 | blog: Jary má blog | Dům
    Rozbalit Rozbalit vše Re: Kontrola sériového portu v Pythonu

    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ě.

    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.