IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Filip Macháček:28.11.2015 12:14

Zdravim potřeboval bych udělat aby např. po stisku tlačítka ve WFP to na sériový port kde je arduino odeslalo nějaký text nemohl by jste mi někdo poradit jak to udělat případně odkázat na nějaký článek . Předem děkuji

 
Odpovědět
28.11.2015 12:14
Avatar
Tomáš Brůna
Tvůrce
Avatar
Odpovídá na Filip Macháček
Tomáš Brůna:28.11.2015 12:24
SerialPort sp = new SerialPort("port", baudrate);
sp.Open();
sp.write(text);
Thread.sleep(500);
sp.close();

Takto by to mělo fungovat možná nahradit

Thread.sleep(500);

za

System.Threading.Thread.Sleep(500);
Editováno 28.11.2015 12:26
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
28.11.2015 12:24
Vi veri universum vivus vici
Avatar
ostrozan
Tvůrce
Avatar
Odpovídá na Tomáš Brůna
ostrozan:29.11.2015 6:20

Funkčně správně, ale trochu počtů - i při pomalých 9600 bd za půl sekundy pošle port necelých 500 byte - při normální rychlosti 115200 je to asi 5000 .
Takže pokud nechceš cpát do arduina nějaký soubor, je zbytečné zastavovat vlákno na půl sekundy :)

Takže místo Thread.Sleep() se užívá

While(serialPort.BytesToWrite != 0);
serialPort.Close();

Když už teda musíš port zavírat hned po odeslání, kontroluješ, jestli je něco ve výstupním bufferu.

 
Nahoru Odpovědět
29.11.2015 6:20
Avatar
Tomáš Brůna
Tvůrce
Avatar
Odpovídá na ostrozan
Tomáš Brůna:29.11.2015 7:52

Aha, díky s timhle jsem se ještě nesetkal ale na 100% to zacnu pouzivat :)

Nahoru Odpovědět
29.11.2015 7:52
Vi veri universum vivus vici
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.