Diskuze: Řízení arduina

C# .NET .NET (C# a Visual Basic) Řízení arduina American English version English version

Avatar
Filip Macháček:

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
Redaktor
Avatar
Odpovídá na Filip Macháček
Tomáš Brůna:
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í
+1 bodů
Řešení problému
Nahoru Odpovědět 28.11.2015 12:24
Lepší být šprt než blbec :)
Avatar
ostrozan
Redaktor
Avatar
Odpovídá na Tomáš Brůna
ostrozan:

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  +1 29.11.2015 6:20
Avatar
Tomáš Brůna
Redaktor
Avatar
Odpovídá na ostrozan
Tomáš Brůna:

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
Lepší být šprt než blbec :)
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.