Portál AbcLinuxu, 23. dubna 2024 22:58


Dotaz: Programove prostredi

19.2.2008 15:31 Tommy.86 | skóre: 4
Programove prostredi
Přečteno: 990×
Odpovědět | Admin
ahoj, pred nekolika tydny jsem zacal jsem s ubuntu a potreboval bych poradit v cem mam psat jeden projekt. Umim neco v C a C#, a ted to hlavni...

pozadavky na program (pripadne kombinace programu: - jazyk C nebo C# - moznost snadneho programovani GUI (grafickeho rozhrani) (tlacitka, textboxy, panely, zalozky, obrazky) - hlavne komunikace pro seriovem portu (prijem a vysilani) - nejaky manual k programu, abych nemusel porad neco hledat na internetu, hlavne prehledny - nekdo kdo by pripadne poradil jak na to

Nejlepe vyhovoval program Monodevelop, akorat ze nema zcela vyresenou komunikaci po seriovem portu a to ja nutne potrebuju

a prosim piste jenom kdyz jste si jisti ze to pujde a ne jenom ze napisete programy a pak budu mesic resit jak to propojit aby to fungovalo :-[, diky moc
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

kozzi avatar 19.2.2008 15:39 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Programove prostredi
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejsem si jisty zda te chapu. Ty tlacitka atd. maji byt v cem? GTK, QT4, WX, FLTK... Tou komunikaci po seriove lince si predstavujes co?
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
19.2.2008 21:09 petris
Rozbalit Rozbalit vše Re: Programove prostredi
Komunikovat po seriovem portu z C je snadne, pokud umite pracovat se soubory. Parametry portu nastavite pomoci (necekane :-) ) ioctl.
19.2.2008 21:18 Tommy.86 | skóre: 4
Rozbalit Rozbalit vše Re: Programove prostredi
pracovat se soubory umim, spis me zajima vic to GUI :)
19.2.2008 22:41 petris
Rozbalit Rozbalit vše Re: Programove prostredi
Zalezi, jakou chcete licensi (a jestli c nebo c++). Pokud Vam vyhovuje GPL, tak neni problem vzit QT. GUI nakreslite v qtdesigneru, programovani s QT je celkem snadne a ma dobrou dokumentaci. GTK ma mirnejsi licenci, GUI nakreslite v glade, ale oproti QT maji spatnou dokumentaci.
19.2.2008 16:37 ondracch | skóre: 19 | blog: Mozková kreč
Rozbalit Rozbalit vše Re: Programove prostredi
Odpovědět | | Sbalit | Link | Blokovat | Admin
Přílohy:
Pokud myslíš podporou seriového portu něco, jako byly takové ty podivné komponenty pro Delphi apod, tak na ty se rovnou vykašli a vyřeš to třeba pomocí návodu v příloze. V linuxu se seriový port chová jako soubor, což značně zjednodušuje práci.
Proč myslíš, že nemůžeš žít jinak? Pořád Tvořím...
19.2.2008 17:33 Tommy.86 | skóre: 4
Rozbalit Rozbalit vše Re: Programove prostredi
zkusim to trosku objasnit..

Mam vytvorit pozorovaci panel pruzkumneho vozidla, a musi obsahovat nejaky panel (GUI) na kterem se budou zobrazovat hodnoty, ktere mi prijdou po seriovem portu. Protoze tech udaju bude vice a kdyz bude souviset s necim jinym, byl by dobry napada udelat GUI v zalozkach a prepinat se mezi nima. Vetsinou se hudou hodnoty prijit a bude jich dost, ale nekdy se musi i neco vyslat, takze potrebuju udelat jak prijem tak nejaky textbox do ktereho zadam co chci poslat a stiskem tlacitka se to odesle. Nejak takhle by to melo zhruba pracovat :)
Josef Kufner avatar 20.2.2008 08:57 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Programove prostredi
Pokud data z/do serioveho portu nejsou pekna textova, tak udelej program v C bez GUI, ktery bude komunikovat po seriovem portu a na stdin/stdout bude tato data predavat v hezkem tvaru (treba radky "key=value"). Tohle se ti bude dobre ladit a bude to lehce pouzitelne jako zaklad cehokoliv dalsiho.

Nasledne napis v libovolnem skriptovacim jazyce GUI, ktere si pusti tenhle program a bude graficky zobrazovat co chces. Jako prvni cast tohohle GUI napis jednu zalozku, kde bude zaznam komunikace s tim programem v C a policko na odeslani dat.

Vyhodou je, ze kdyz te omrzi jedno GUI, muzes ho lehce prepsat. Dalsi velmi zajimavou moznosti je sitova transparentnost: Místo toho programu v C pustíš ssh, které pustí ten program v C někde jinde a v GUI nemusíš vůbec nic měnit.
Hello world ! Segmentation fault (core dumped)
DjAARA avatar 19.2.2008 16:41 DjAARA | skóre: 32 | Praha|Náklo|Olomouc
Rozbalit Rozbalit vše Re: Programove prostredi
Odpovědět | | Sbalit | Link | Blokovat | Admin
Monodevelop, pro komunikaci přes sériovou linku si napsat knihovnu v C a obalit ji třídou v C#. A nebo se podívat zda, v C# není třída pro komunikaci přes sériový port rovnou.
DjAARA's blog
19.2.2008 17:29 Tommy.86 | skóre: 4
Rozbalit Rozbalit vše Re: Programove prostredi
prave na tomhle problemu jsem skocil, resil jsem to asi dva tydny a pak vzdal, prvni bylo ze v monodevelop nefunguje spacename System.IO.Ports (prepnuty verze rutime z .NET 1.0 na NET 2.0), kdyz se mi tam podaril konecne dostat objevil se dalsi problem a to ze se mi nepodarilo uskutecnit komunikaci, neustale to hazelo nejake vyjimky a proto ze neni ani dokoncena dokumentace v Mono-u nevedel jsem ani jestli je vsechno spravne nastavene, tak jsem od toho upistil..

souvisi s tim odkazem co jsi mi poslal dalsi odkaz http://www.ustash.com/mono/HowToSystemIOPorts.html

nasel jsem i clanek, kde je potreba nahodit nove jadro to 2.6.24 aby to fungovalo http://www.opensubscriber.com/message/mono-list@lists.ximian.com/8464625.html

ale nepodarilo se mi to vyresit, tak jsem to vzdal :(
DjAARA avatar 19.2.2008 17:42 DjAARA | skóre: 32 | Praha|Náklo|Olomouc
Rozbalit Rozbalit vše Re: Programove prostredi
Proto jsem jako první napsal naprogramovat si v C knihovnu pro práci se sériovým portem a v C# třídu pro práci s tou knihovnou :-D.

Jinak zkusil bych použít nejnovější verzi Mono runtime a i ten kernel když ho doporučovali.

A dokončení implementace System.IO.Ports by mohla být docela výzva pro zdokonalení se v C i C#.
Luboš Doležel (Doli) avatar 19.2.2008 17:49 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Programove prostredi
pro komunikaci přes sériovou linku si napsat knihovnu v C a obalit ji třídou v C#
Není to tak trochu šílené a úplně zbytečné? Proč to v C/C++ neudělat rovnou celé a nedělat z toho zbytečně komplikovaný bloatware.
DjAARA avatar 19.2.2008 17:53 DjAARA | skóre: 32 | Praha|Náklo|Olomouc
Rozbalit Rozbalit vše Re: Programove prostredi
Je to šílené ;-), ale když C#/Monodevelop žadateli vyhovovalo nejvíc… Naučil by se obojí :-D.
19.2.2008 18:35 Tommy.86 | skóre: 4
Rozbalit Rozbalit vše Re: Programove prostredi
jestli mi tu tridu vytvoris, budu moc rad :D
19.2.2008 18:57 Tommy.86 | skóre: 4
Rozbalit Rozbalit vše Re: Programove prostredi
Odpovědět | | Sbalit | Link | Blokovat | Admin
nekdo na jinem foru mi poradil pouzit Anjuta, koukam na to a nevypada to spatne, je to cele v C a jde tam delat i grafika
kozzi avatar 19.2.2008 20:35 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Programove prostredi
Jenze to je ciste IDE. Coz neresi tvuj problem se seriovym portem. Uplne stejne muzes pouzivat Kdevelop s qt4, nebo epiphany s qt4 pluginem. Qt4 je podle me vhodnejsi nez GTK ale je to c++ toolkit, ale to by nemusel byt problem. Jo a v QT4 existuje trida QInputDevice pomocí které by se dal přístup na seriovej port řešit, ale mám starch že to na tebe bude příliš. Né že bych nevěřil tvým schopnostem, ale potíž bude stím že tvé znalosti jsou poněkud omezené na windows, což by mohlo činit potíž.
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
19.2.2008 20:59 Tommy.86 | skóre: 4
Rozbalit Rozbalit vše Re: Programove prostredi
co bys navrhoval ty? QT4 mi nic nerika, nemam linux moc dlouho tak moje znalosti jsou minimalni

potrebuju neco co by nebylo moc slozite, ale zase nechci psat grafiku radek po radku, chtel bych neco kde bych nahazel co potrebuju a ono by mi to udelalo kod

kdyz jsem zkousel Anjuta, vypada to hezky, ale kdyz jsem chtel vlozit soubor nebo projekt glade, spadlo to :( a nevim kde je chyba
kozzi avatar 19.2.2008 21:28 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Programove prostredi
Kde je chyba se da zjistit tezko, bud nekde v zavislostech chybi nejaka knihovna, nebo je to proste chyba anjuty. V podstate pokud chces v linuxu tvorit aplikaci s oknama tak potrebujes nejakou knihovnu, ktera ti poskytne potrebne graficke prvky(widgety) jako je okno, tlacitko, progressbar atd. Na vyber mas s nekolika knihoveb, nejvice rozsirene jsou QT a GTK. QT ve verzi 4 je velmi revolucni a kvalitni knihovna ktera ti nabydne spousstu perfektne navrzenych trid a take ma perfektni dokumentaci, takze se da varit i jen z te dokumentace. Ale je to pro c++, ale da se to pouzit i s Ceckem. GTK je pomalejsi, neni tak dokonale ale je primo pro C.
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
19.2.2008 22:05 Jirka | skóre: 36
Rozbalit Rozbalit vše Re: Programove prostredi
U Qt bych také upozornil na licenční podmínky v případě uzavření aplikace.

Celkem ucházející toolkit je i WxWidgets (ač se to některým nemusí líbit :-P).
kozzi avatar 19.2.2008 22:27 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Programove prostredi
To snad ne. Je to sileny. To uz radeji to GTK. WX je stejne jen nadstavba nad GTK.Motif,Windows.... Na co takovou abstrakci. Ackoliv musim uznat ze co se tyce dokumentace a vseobecne API, tak mi wxWidgets vyhovovalo velmi, skoro vic jak QT. No a ale pro komercni ucely je WX vhodny.
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
19.2.2008 22:54 Jirka | skóre: 36
Rozbalit Rozbalit vše Re: Programove prostredi
Dělal jsem s WxWidgets i Motif (s GTK zatím ne) a Wx mi teda ze začátku přišlo taky šílené, ale mají dobrou dokumentaci a hodně příkladů, takže jsem si brzy zvyknul. Oproti Motifu mi to přišlo lepší a je vcelku bezproblémově přenositelné i na Windows. A oproti Qt není nutné při uzavření kupovat licence. Qt4 bych ale taky preferoval, jenomže při uzavřeném vývoji jsou ceny licencí příliš, takže bych pak nejspíše šáhnul po WxW.
19.2.2008 22:35 ondracch | skóre: 19 | blog: Mozková kreč
Rozbalit Rozbalit vše Re: Programove prostredi
Stejnou zkušenost v Ubuntu s Anjutou mám i já, ale po příčinách jsem nepátral, protože jsem to ještě pořádně nepotřeboval.
Proč myslíš, že nemůžeš žít jinak? Pořád Tvořím...
19.2.2008 23:50 Tommy.86 | skóre: 4
Rozbalit Rozbalit vše Re: Programove prostredi
tak dokonce i KDevelop ma chybu, a to v Designeru :(, proste spadne kdyz chci ulozit projekt
Luboš Doležel (Doli) avatar 19.2.2008 23:56 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Programove prostredi
Pokud používáte Designer v KDevelopu, tak asi používáte staré Qt3.
20.2.2008 09:48 T.O.M. | skóre: 22 | blog: T.O.M.'s blog | Ostrava
Rozbalit Rozbalit vše Re: Programove prostredi
Odpovědět | | Sbalit | Link | Blokovat | Admin

Doporucit bych pouzit Qt4 hned z nekolika duvodu. Hlavni je prenositelnost kodu. K tomu se vyviji soucasne nekolik multiplatformnich IDE (QDevelop, Monkey Studio, Edyuk, ...), ktere sice zatim nedosahuji kvalit KDevelopu, ale to vetsinou ani neni jejich cilem. Dalsim plusem je dokumentace, o ktere se tu uz psalo.

Co se tyce podpory serioveho portu, Trolltech nachystal tridu QIODevice, na ktere je mozno vystavit vlastni jakoze "ovladac". Nekde jsem se docetl, ze Trolltech umyslne neimplementoval podporu pro pristup k HW portum, protoze na ne-windows strojich je pristup k temto zarizenim defaultne zakazan nebo je minimalne podminen clenstvim prihlaseneho uzivatele ve specialni skupine (na linuxu napr. uucp).

Pokud bys mel zajem, mohu poskytnout prvni verzi vlastni implementace tridy pro praci se seriovym portem v Qt4 aplikaci. Je otestovana na linuxu (gentoo) a windows XP (mac nemam k dispozici).
Znacne jsem se inspiroval projektem SynaSer urcenym pro Delphi/Kylix. Narozdil od SynaSer zatim nejsou podporovany jine linky nez RxD, TxD, DSR a RTS cili nejde pouzit pro plnohodnotnou komunikaci s modemy, ale pro vetsinu zarizeni postacuje...

BTW, mono jsem se snazil v minulosti pouzit nekolikrat, ale vzdy jsem narazil na spoustu prekazek, ktere jinde nebyly. Proto jsem zkusil Qt4, ktere pouzivam k plne spokojenosti uz nejaky ten patek. :-)

20.2.2008 14:36 Tommy.86 | skóre: 4
Rozbalit Rozbalit vše Re: Programove prostredi
ja mam spis jiny problem nez psani programu, vetsinou kdyz si neco nainstaluju, tak to asi nenainstaluju uplne, nebo mi neco chybi a vysledek je to, ze bud nemuzu program zkompilovat, nebo mi nejede graficke prostredi..

nejprve problem s monodevelop, ubuntu ma jenom verzi 0.14 a ta je hodne nestabilni, nedokazal jsem ho normalne nainstalovat pres balicky (hodne zavislosti na ostatnich baliccich), tak jsem si musel stahnout primo image od openSUSE s nainstalovanym monem, abych mohl normalne pracovat, pak zjistim ze maji nedodelanou komunikaci

zkusim Eclipse, nainstaluju, neco tam chybi, musim hledat nejake balicky aby to slo, pak zjistim ze nemuze nacist knihovny gtk.h (a to je mam)

zkousim Kdevelop, hezky programek ale kdyz chci vytvorit GUI a pak ho ulozit, hodi to chybu a cely program spadne, tak jsem chtel zkusit nainstalovat to pod Kubuntu, ale vysledek byl stejny

zkusim Anjutu, ta mi spadne kdyz chci otevrit projekt pro tvorbu GUI, nebo vytvorit nejaky projekt (podarilo se osetrit kdyz jsem stahnul nejnovejsi verzi programu)

tak jsem nakonec zustal u Anjuty, kde si muzu udelat GUI, ulozit ho, hlavni program se pise v C, coz mi ani tak nevadi, sice program spadne kdyz chci vytvorit projekt pro C++ (nepotrebuju) asi zase chybi nejaky balicek grafika se pise v C, nastesti musim jenom rucne udelat callbacky na widgety, doufam ze to nebude tak velky problem
kozzi avatar 20.2.2008 14:58 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Programove prostredi
A nebude problem spis to ze neznas svoji distribuci? Vis ono v linuxu se instaluje trosku jinak. Spust si synaptic a tam si naklikej co potrebujes. Zadny zavislosti resit nemusis ty se resej automaticky, takze doufam ze te nenapadlo stahovat nejaky deb balicky ci tar.gz(bz2), jestli jo tak na to honem zapomen. Jinak v ubuntu je samozrejme dostupna nejnovjejsi verze. Takze bych rekl ze tvuj problem je hlavne v tom ze vubec nevis jak instalovat veci v linuxu, coz je velmi casty problem lidu co presli z windows k linuxu. Protoze jsou zvykli zajit na stranky toho programu co chteji tam stahnout instalacku a nainstalovat. Linux (teda vetsina dister)to resi tak ze ma centralni databazi balicku odkud se ma instalovat. V ubuntu se ktomuto ucelu poziva synaptic, adept, aptitude, toto jsou vsecjno programy ktery delaji v podstate to samy me nejvice vyhovuje synaptic(GUI) popripade aptitude(konsole)
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
20.2.2008 15:18 Tommy.86 | skóre: 4
Rozbalit Rozbalit vše Re: Programove prostredi
ja delam vsechno pres synaptic kdyz chci neco nainstalovat, akorat ze obsahuje vzdy nejnovejsi verze programu (monodevelop 0.14 a uz je 0.19), a tak mi nezbyva nic jineho nez to postahovat na netu :(

a navic v synapticu kdyz si vyberu nejaky program, ne vzdy se mi nainstaluje vsechno co k nemu patri a tak musim rucne vsechno odkliknout a nekdy ani to nestaci

nemam jeste tolik zkusenosti s linuxem
20.2.2008 15:15 Vinicius
Rozbalit Rozbalit vše Re: Programove prostredi
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ja bych pro jednoduchost!? poradil tohle (a sice proto, ze se mi zadne IDE pro GNU/Linux s integrovanym navrharem zrovna dvakrat nelibi, ackoliv jsem treba Anjutu uz dlouho nezkusil)

Ke tvorbe GUI pouzit knihovnu GTK+ (verze 2.8 a lepsi) a to tak, ze: Program se pak muze napsat v libovolnem IDE, treba i v NetBeans 6.0 s podporou C/C++.

Samozrejme, je treba pred tim nastudovat neco o knihovne GTK+, treba z docela slusneho tutorialu, ktery je na strankach knihovny GTK+. Tam se myslim taky pise, ze tvorba GUI neni tak snadna jako treba ve Visual Basicu, a je to pravda, tak snadne to neni. Dokumentace ke GTK+ je mozna horsi nez ke Qt, ale ohodnotil bych ji skolni znamkou 2.
20.2.2008 21:50 Tommy.86 | skóre: 4
Rozbalit Rozbalit vše Re: Programove prostredi
takhle nejak to planuju udelat :)

Diky vsem za pomoc, uvidim jestli se vsechno podari a nenastanou nejake dalsi potize :)
freshmouse avatar 26.2.2008 12:50 freshmouse | skóre: 42 | blog: Bruno Banány
Rozbalit Rozbalit vše Re: Programove prostredi
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jestliže preferuješ grafickou knihovnu GTK a chceš psát v C (ale nejen v něm), zvol aplikaci Anjuta s modulem Glade pro návrh GUI.

Jestli preferuješ grafickou knihovnu GTK a chceš psát v C# (.NET), zvol si Monodevelop.

(Jestli máš Ubuntu, NE Kubuntu, a chceš psát aplikace ve stejné grafické knihovně, jako jsou programy v Ubuntu, tak asi preferuješ GTK.)

Jestli to půjde, to nevím, ale nemáš moc na výběr; zmíněné aplikace jsou (pro C, C# + GTK) asi to nejlepší, co máme. ;-)
1.3.2008 16:36 Tommy.86 | skóre: 4
Rozbalit Rozbalit vše Re: Programove prostredi
diky, presne tohle delam :) mam Anjutu, kde pisu program v C a pouzivam pritom manual GTK pro psani grafiky, a kombinuju to s Glade :), akorat se ted snazim prijit na to, jak vytvorit udalost pro prichod dat na seriovem portu, a zatim nevim jak zacit :(
3.3.2008 08:53 T.O.M. | skóre: 22 | blog: T.O.M.'s blog | Ostrava
Rozbalit Rozbalit vše Re: Programove prostredi

Vsechny "komponenty" pro pristup k (nejen seriovemu) portu, do kterych jsem mel moznost nahlednout, neumely uzivatele upozornit nejakou udalosti na prichod dat.

On k tomu ani neni duvod, kdyz vetsinou komunikaci ridi PC, ktery odesle "prikaz", pocka nejakou dobu na odpoved a tim komunikace konci.

Pokud chces napr. jen logovat prichozi data, ktera na lince behaji neustale, nezbude ti asi nic jineho, nez je pomoci casovace periodicky vycitat. V takovem pripade vetsinou nevadi mensi prodleva (bezne desetiny az jednotky sekund) mezi prichodem a zobrazenim/ulozenim dat...

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.