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 13:11 | Pozvánky

Spolek OpenAlt zve příznivce otevřeného přístupu na 142. brněnský sraz, který proběhne v pátek 21. července od 18:00 hodin ve Sport Centru Srbská (Srbská 4). Od 19:00 je pro zájemce zamluveno hřiště na plážový volejbal.

Ladislav Hagara | Komentářů: 0
dnes 12:34 | Bezpečnostní upozornění

V GNOME Soubory, původně Nautilus, konkrétně v generování náhledů exe, msi, dll a lnk souborů byla nalezena a opravena bezpečnostní chyba CVE-2017-11421 s názvem Bad Taste. Při otevření složky obsahující tyto soubory může být spuštěn VBScript obsažen v názvech těchto souborů.

Ladislav Hagara | Komentářů: 1
dnes 11:00 | Bezpečnostní upozornění

Společnost Oracle vydala čtvrtletní bezpečnostní aktualizaci svých softwarových produktů (CPU, Critical Patch Update). Opraveno bylo celkově 308 bezpečnostních chyb. V Oracle Java SE je například opraveno 32 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 28 z nich. V Oracle MySQL je opraveno 30 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 9 z nich.

Ladislav Hagara | Komentářů: 0
dnes 01:00 | Komunita

Mark Krenz, známý svým twitterovým účtem @climagic (Command Line Magic), kde ukazuje, co vše a jak lze dělat v příkazovém řádku, přednášel včera v Praze. Záznam přednášky je k dispozici na YouTube.

Ladislav Hagara | Komentářů: 0
včera 10:00 | Nová verze

Microsoft vydal Skype pro Linux ve verzi 5.4 Beta. Nejnovější Skype pro Linux je postaven na frameworku Electron 1.7.4 a přináší skupinové videohovory.

Ladislav Hagara | Komentářů: 11
včera 06:00 | Nová verze

Werner Koch, zakladatel a hlavní vývojář GnuPG, oznámil vydání verze 1.8.0 svobodné kryptografické knihovny Libgcrypt. Jedná se o první stabilní verzi nové řady 1.8. Ta je API i ABI kompatibilní s řadou 1.7. Z novinek vývojáři zdůrazňují podporu kryptografických hašovacích funkcí Blake2 (Wikpedie), šifrovací mód XTS nebo zvýšení výkonu na architektuře ARM.

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

Stefan Vorkoetter představil na svých stránkách DIY tablet s Raspberry Pi 3 Model B. Z Raspberry Pi odstranil USB porty, ethernetový port i GPIO konektor. Použil oficiální sedmipalcový dotykový displej s rozlišením 800x480 pixelů. Hmotnost tabletu je 484  g.

Ladislav Hagara | Komentářů: 6
18.7. 06:00 | Zajímavý projekt

Podpořit vývoj otevřených technologií pro rozpoznávaní řeči lze na stránkách Common Voice. Jedná se o projekt Mozilly, jehož prvním cílem je nahrání a následné zveřejnění pod open source licencí 10 000 hodin záznamů řeči. Pomoci může kdokoli. Stačí na stránkách projektu do mikrofonu přečíst napsaný text nebo si nechat přehrávat již nahrané záznamy a určovat, zda napsaným textům odpovídají. Podrobnosti v často kladených otázkách (FAQ).

Ladislav Hagara | Komentářů: 4
18.7. 05:00 | IT novinky

Do pátku probíhá v Praze IETF 99, tj. 99. setkání organizace Internet Engineering Task Force (IETF) odpovědné za tvorbu internetových standardů RFC (Request for Comments). Vybrané přednášky a jednání lze sledovat online. Záznamy jsou k dispozici na YouTube. Těsně před setkáním bylo vydáno RFC 8200 nahrazující RFC 2460 a po více než 18 letech standardizující IPv6 (STD 86).

Ladislav Hagara | Komentářů: 0
18.7. 00:33 | Nová verze

Byl spuštěn další Humble Book Bundle. Tentokrát jsou v nabídce elektronické knihy věnované kybernetické bezpečnosti od vydavatelství Wiley. Všech 14 knih lze koupit za 15 dolarů.

Ladislav Hagara | Komentářů: 0
Chystáte se pořídit CPU AMD Ryzen?
 (7%)
 (31%)
 (1%)
 (10%)
 (43%)
 (8%)
Celkem 1023 hlasů
 Komentářů: 65, poslední 1.6. 19:16
    Rozcestník

    Dotaz: Čtení ze seriového portu v C pod linuxem

    21.7.2007 00:51 -= Spec =- | skóre: 10
    Čtení ze seriového portu v C pod linuxem
    Přečteno: 1604×
    Zdravim,

    už pár dní se pokouším zprovoznit jednoduchý program v C pod linuxem, který by četl ze seriového portu a přečtená data vypisoval na obrazovku nebo do souboru. Prostě něco jako tohle:

    #!/bin/bash

    while true

    do

    read LINE < /dev/ttyS0

    echo $LINE

    # echo $LINE >> /serial.log

    done

    ...akorát v C. Našel jsem spousty rad a příkladů programů v C tady na abclinuxu i na google. Ale nějak mi žádnej nefunguje. Buď to byly programy, které dělaly víc než jen to co chci a pak se mi je nepodařilo upravit. A nebo mi z nějakého důvodu nefungovaly.

    Byl by prosím někdo schopen napsat mi sem program v C, kterej by četl z COM a vypisoval na obrazovku nebo do souboru? Včetně správných hlaviček.:) Díky moc

    Odpovědi

    21.7.2007 00:55 otrava
    Rozbalit Rozbalit vše Re: Čtení ze seriového portu v C pod linuxem
    Hmmmmm, "NEFUNGUJE" není dostatečný popis problému k tomu, aby někdo navrhnul nějaké rozumné řešení (přestože nějaký z-křišťálové-koule-věštící se jistě najde). Nezbývá než ................
    21.7.2007 01:01 -= Spec =- | skóre: 10
    Rozbalit Rozbalit vše Re: Čtení ze seriového portu v C pod linuxem
    NEFUNGUJE jsem psal proto, že každý nefungoval z jiného důvodu. Nejde mi o řešení problému proč mi konkrétní věc nefungovala, protože jsem toho zkoušel hodně, ale šlo mi o to jestli by mi sem někdo nenapsal přímo jednoduchej program na čtení a výpis v C. Nebo navedl, napověděl a tak...

    Dělám se seriovým portem poprvé, tak jsem chtěl jen poradit a ne, aby tu někdo na mě zase machroval. Díky.
    21.7.2007 01:18 kirpike | skóre: 8 | Plzeň
    Rozbalit Rozbalit vše Re: Čtení ze seriového portu v C pod linuxem
    Ona komunikace se seriovým portem není úplně triviální, hlavně musíš port správně nastavit vzhledem k tomu, co je k němu připojené (rychlost, bity, parita, handshaking, ...) pak záleží jestli chceš blokující nebo neblokující řešení, ošetření timeoutů, chyb, ....

    Zkus začít třeba tímto.
    21.7.2007 01:23 Jiří J. | skóre: 34 | blog: Poutník | Brno
    Rozbalit Rozbalit vše Re: Čtení ze seriového portu v C pod linuxem
    Jelikož by mne to také zajímalo a nechtěl jsem čekat, zda se někdo s takovým programem ukáže, navštívil jsem na půl hodinky GStrýčka..
    Původně jsem se vás chtěl zeptat, zda to nutně potřebujete v C, protože jsem našel kopu návodů pro Visual Basic, javu (...), python a třeba i bash, jak jste psal, také proto, že pro čtení z COM portu v C toho nebylo moc k nalezení.
    Pak GStrýček vytáhl dýmku míru a s ní snad i pomocnou radu...
    Víra je firma si myslela, že něco je pravdivé. LMAO -- “zlehčovat mého osla”
    21.7.2007 07:05 -= Spec =- | skóre: 10
    Rozbalit Rozbalit vše Re: Čtení ze seriového portu v C pod linuxem
    Díky moc za rady. Na obě tyto stránky jsem se taky při původním hledání dostal. Ale moc jsem se v tom nevyznal a tak jsem myslel, že to třeba půjde jednodušeji. Ale zřejmě nepůjde, tak se budu muset buď spokojit se čtením v BASH nebo Perlu a nebo se pustit do hlubšího studia těch stránek. Ještě jednou díky za rady.
    21.7.2007 10:29 Ondra
    Rozbalit Rozbalit vše Re: Čtení ze seriového portu v C pod linuxem
    Jednodušeji? Vžyť je to tam popsané na tři řádky (krom toho je to stejné, jako jakékoli jiné čtení), plus tedy omáčka kolem. Mno, nikdy jsem s tím nedělal, ale když se nikdo nemá k odpovědi, tak se zeptám. Zkoušel jsi něco takového? Jen jsem to vlastně "nacut&pastoval" z té stránky, ale přijde mi divné, aby tam popisovali něco, co nefunguje, vypadá (stránka) docela důvěryhodně. Pokud Ti nefunguje tohle, budeš se asi muset svěřit více, co znamená nefunguje (jak už psal kolega), nebo si pomoct sám.
    //Spousta includů
    
    #define BUFSIZE 128
    char buf[BUFSIZE];
    
    int main(int argc, char ** argv) {
            int count;
            int port = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);
            int log = open("/serial.log",O_CREAT | O_WRONLY | O_APPEND);
            //fcntl(fd, F_SETFL, FNDELAY); //Pokud nechces, aby funkce read cekala na data
            while (1) {
                    count = read(port,buf,BUFSIZE);
                    write(log,buf,count);
            }
            return 0;
    }
    
    
    21.7.2007 12:35 -= Spec =- | skóre: 10
    Rozbalit Rozbalit vše Re: Čtení ze seriového portu v C pod linuxem
    Díky Ondro..tohle mi funguje.:) Když jsem ale před pár dny zkoušel čerpat z této stránky, a zkoušel ten program tam uvedený, tak mi to nešlo. Psalo to chyby při kompilaci...už si nepamatuju jaký. Ale asi jsem to špatně splácal nebo jsem měl tenkrát něco špatně. Nejsem v C versus Linux vůbec zkušenej. Takže díky moc..potřeboval jsem prolomit ten funkční základ...dál si to už upravit zvládnu.
    Josef Kufner avatar 22.7.2007 16:08 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: Čtení ze seriového portu v C pod linuxem
    Zařízení v /dev se chovají jako normální soubory a komunikace přes /dev/ttyS0 tedy probíhá naprosto standardním zápisem/čtením do/z souboru. Klidně můžeš použít fopen, fscanf, fprintf, fwrite, fread a další... jen si dej pozor na bufferování (bude se ti hodit fflush).
    Hello world ! Segmentation fault (core dumped)
    11.11.2011 23:36 timmy
    Rozbalit Rozbalit vše Re: Čtení ze seriového portu v C pod linuxem
    ahoj, pokud v " write(log,buf,count);" budu potřebovat provést ještě nějakou akci, např. zápis do databáze, tak se může stát, že buffer přeteče a nepřijmu všechna data. Jak toto řešíte? Díky.
    21.7.2007 11:24 ondracch | skóre: 19 | blog: Mozková kreč
    Rozbalit Rozbalit vše Re: Čtení ze seriového portu v C pod linuxem
    Možná bys mohl použít nějakou knihovnu. V linuxu to neznám, ale v delphi používám SynaSer od Lukáše Gebauera. Je verze i pro linux (kylix). BTW: jen jsem zkusil dát do googlu výraz serial port linux a nabídlo to spoustu relevantních odkazů, tak nevím proč ztrácíš čas tady.
    Proč myslíš, že nemůžeš žít jinak? Pořád Tvořím...
    21.7.2007 11:30 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Čtení ze seriového portu v C pod linuxem
    Napsal jsi toho příliš málo. Je potřeba vědět:
    - z čeho čteš a jaké jsou komunikační parametry
    - jak vypadá časování - konec souboru se zjišťuje na základě toho, že delší dobu nic nepřijde. Tu dobu je potřeba znát. Typická situace je taková, že dlouho čekáš, pak přijde shluk dat a pak ticho (a pak je potřeba spěchat). Vyplatilo se mi používat timeouty dva.
    - budou to binární data? Pokud ne, není možné použít céčkovské funkce pro operaci s řetězci.
    - kolik těch dat budeš číst naráz? Vystačíš si s napevno naalokovaným bufferem nebo je potřeba to řešit dynamicky?
    Troufám si tvrdit, že tyto věci mám vyřešené dost univerzálně, ale program je to docela dlouhý. Pokus se popsat co nejpřesněji, co potřebuješ.
    21.7.2007 12:42 -= Spec =- | skóre: 10
    Rozbalit Rozbalit vše Re: Čtení ze seriového portu v C pod linuxem
    Napsal jsem toho málo, protože toho zatím víc napsat nemůžu. Jen to, že data budou ve formě textu. Víc nejde specifikovat. Data budou různá v různých intervalech a z různých zařízení. Nejlepší by bylo, že by si uživatel spustil před čtením program v C a po ukončení čtení ho zase vypnul. Proto by jednoduše stačil skriptík, kterej všechno co přečte zapíše do souboru (jako dělá ten Ondrův nebo ten můj v Bashi). Čtení dat může probíhat pár minut, ale i pár hodin. Věřím, že ten Ondrův funkční základ si už zvládnu upravit tak jak potřebuju.

    No, každopádně ještě jednou díky za rady - všem. Udělal jsem si alespoň představu, nad čím mám bádat a čím se nezdržovat.

    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.