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

24.2. 19:33 | Zajímavý článek Marek Stopka | Komentářů: 15
24.2. 17:55 | Nová verze

Bylo oznámeno vydání nové verze 3.0.0 a krátce na to opravných verzí 3.0.1 a 3.0.2 nástroje mitmproxy určeného pro vytváření interaktivních MITM proxy pro HTTP a HTTPS komunikaci. Přehled novinek v příspěvku na blogu. Přispělo 56 vývojářů. Aktualizována byla také dokumentace [Hacker News].

Ladislav Hagara | Komentářů: 0
24.2. 01:11 | Nová verze

Byla vydána nová major verze 3.0 svobodného multiplatformního geografického informačního systému QGIS (Wikipedie). Její kódové jméno je Girona, dle názvu města, ve kterém proběhlo 15. setkání vývojářů QGISu. Přehled novinek i s náhledy a animacemi v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
23.2. 20:33 | Zajímavý článek

Nadace Raspberry Pi vydala sedmašedesáté číslo (pdf) anglicky psaného časopisu MagPi věnovanému Raspberry Pi a projektům postaveným na tomto jednodeskovém počítači a čtvrté číslo (pdf) časopisu pro kutily HackSpace věnovanému navíc 3D tisku, pájení, řezání nebo i elektronice a IoT.

Ladislav Hagara | Komentářů: 0
23.2. 18:33 | Komunita

Morevna Project, který stojí za řadou svobodného softwaru pro animátory (např. Synfig Studio, RenderChan nebo Papagayo-NG) a svobodnými (CC-BY-SA) animovanými filmy/komiksy Morevna (3. díl) a Pepper&Carrot: The Potion Contest (6. díl), sbírá do 1. března příspěvky na 4. díl svého animovaného filmu Morevna. Mezi odměnami přispěvatelům lze najít např. i videokurzy animace v Synfigu či Blenderu.

xHire | Komentářů: 0
23.2. 12:22 | Bezpečnostní upozornění

Ve středu vydaná "npm@next" verze 5.7.0 správce balíčků pro JavaScript npm (Wikipedie, Node Package Manager) přinesla řadě uživatelů Linuxu nečekanou nepříjemnost. V závislosti na způsobu instalace a ve spojení s příkazem sudo mohlo dojít ke změně vlastníka u systémových souborů, také například /. Chyba je opravena v před několika hodinami vydané verzi npm 5.7.1 [reddit].

Ladislav Hagara | Komentářů: 14
23.2. 10:00 | Nová verze

Byla vydána verze 10.5 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab (Wikipedie). Představení nových vlastností v příspěvku na blogu. Zdůraznit lze integrovanou podporu Let's Encrypt.

Ladislav Hagara | Komentářů: 0
22.2. 12:33 | Komunita

Příspěvek na blogu Signalu (Wikipedie) informuje o založení neziskové nadace Signal Foundation, jež bude zastřešovat další vývoj tohoto svobodného bezpečného komunikátoru běžícího také na Linuxu (Signal Desktop). Brian Acton, spoluzakladatel WhatsAppu, věnoval nadaci 50 milionů dolarů [Hacker News].

Ladislav Hagara | Komentářů: 1
22.2. 05:55 | Zajímavý článek

Článek na Fedora Magazine krátce představuje programovací jazyk Rust a několik zajímavých v Rustu naprogramovaných terminálových aplikací. Jedná se o alternativu k příkazu grep ripgrep, moderní barevnou alternativu k příkazu ls exa, příkazem cloc inspirovaný tokei a zvířátko v terminálu ternimal.

Ladislav Hagara | Komentářů: 0
21.2. 23:55 | Zajímavý projekt

Byl spuštěn Humble Classics Return Bundle. Za vlastní cenu lze koupit hry Broken Sword 5 - The Serpent's Curse, Shadowrun Returns a Shadowrun: Dragonfall - Director's Cut. Při nadprůměrné platbě (aktuálně 8,48 $) také Shadowrun: Hong Kong - Extended Edition, Wasteland 2: Director's Cut - Standard Edition, Age of Wonders III a Xenonauts. Při platbě 15 $ a více lze získat navíc Torment: Tides of Numenera a Dreamfall Chapters: The Final Cut Edition.

Ladislav Hagara | Komentářů: 1
Který webový vyhledávač používáte nejčastěji?
 (2%)
 (27%)
 (62%)
 (2%)
 (3%)
 (0%)
 (1%)
 (1%)
Celkem 460 hlasů
 Komentářů: 35, poslední 21.2. 19:51
    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: 375×

    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.

    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.