Portál AbcLinuxu, 25. dubna 2024 10:33


Dotaz: Gui Gtk+ novacek v programovani

16.1.2009 18:33 martingt89
Gui Gtk+ novacek v programovani
Přečteno: 558×
Odpovědět | Admin
Chtel bych se zeptat, jsem novacek v programovani a vytvoril jsem si graficku aplikaci pomocou glade a XML, no chtel bych poradti. Chtel bych sledovat seriovou linku, no mam nasledovnej problem: Kam sledovani do programu umysnit: Po stlaceni tlacidla, no asi ne, protoze aplikace bude delat jenom to a GUI nebude reagovat. Vytvorit thread, no budiz, ten bude sledovat komunikaci, data bude posilat pomocou pipe, no pozad problem kde sledovat v hlavnim programu pipe :(

Kdyz chcete viedet aky prgram to ma bejt tak jednoduche ovladani robota pomocou RS232 kdy ja mu neco poslu a on obcas neco posle.

Plz porate ako na to.
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.1.2009 20:16 tom
Rozbalit Rozbalit vše Re: Gui Gtk+ novacek v programovani
Odpovědět | | Sbalit | Link | Blokovat | Admin
man poll
16.1.2009 21:48 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Gui Gtk+ novacek v programovani
Odpovědět | | Sbalit | Link | Blokovat | Admin

Pomocí io_add_watch() můžeš zařídit, že se vyvolá událost pokaždé, když jsou na deskriptoru (sériovém portu) data. Žádné další vlákno není potřeba.

16.1.2009 22:25 martingt89
Rozbalit Rozbalit vše Re: Gui Gtk+ novacek v programovani
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dik moc, a je nejaka moznost vytvoreni "preruseni" v programu, ako kdyz se neco stane v threadu tak se v hlavnim programu spusti nejaka funkce / trita? Delal sem do ted s mikroprocesory tak sem trochu mimo... Narazil sem na signali napr. sigusr1 ale nevym ci je to ta spravna vjec. Dik
17.1.2009 14:02 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Gui Gtk+ novacek v programovani

Dá se udělat všechno. Ale GUI (Gtk) je samo o sobě asynchronní, takže si lze často vystačit s jedním vláknem.

Řekněme, že se provádí nějaká funkce. No a zrovna v ten moment se vyskytne událost. Pak jsou dvě možnosti: buď je potřeba reagovat co nejrychleji (a pak je opravdu potřeba to řešit dalším vláknem) nebo postačí zareagovat až se funkce ukončí  - jestli je to pár milisekund, tak to nikdo nepozná a ušetříš si práci.

Popiš konkrétní situaci. Možná, že bude doopravdy potřeba další vlákno, ale možná taky ne. Signály (jako například sigusr1) s tím vším souvisejí jen vzdáleně a prozatím je nekomentuju.

Přečti si: research.operationaldynamics.com/blogs/andrew/software/gnome-desktop/gtk-thread-awareness.html

www.pardon-sleeuwaegen.be/antoon/python/page0.html

17.1.2009 18:13 martingt89
Rozbalit Rozbalit vše Re: Gui Gtk+ novacek v programovani
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ne ne, žadnu aplikaci zatim naplanuju s takymi vlatnotsmi jenom mne zajimalo, že ja se to zesi. Ze kde se vykonava program kdyz pravie nedela nic cize ceka na stlaceni tlacidla nebo nejakou udalost. Dik za clanky prectu.
Josef Kufner avatar 18.1.2009 21:18 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Gui Gtk+ novacek v programovani
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zapomeň na vlákna. Hledáš toto: IO Channels
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.