Ok, lyg ir pavyko, atskiri mygtukai rašo info į atskirus langus. Principe,
du kartus pakartotas va toks dalykas (tik kitam ne READ_RAW_DATA ir tBox'as
kitas:
private void button_READ_RAW_DATA_Click(object sender, EventArgs e)
{
if (serialPort1.IsOpen)
{
serialPort1.WriteLine("<1>");
raw_data_in = serialPort1.ReadExisting();
this.Invoke(new EventHandler(ShowRawData));
serialPort1.DiscardInBuffer();
}
}
private void ShowRawData(object sender, EventArgs e)
{
tBox_RAW_DATA.Text += raw_data_in.Replace("\n", "\r\n");
serialPort1.DiscardInBuffer();
}
Bet dabar kariauju su kitu monu - pirmą kartą paspaudus niekas nevyksta (su
tuo dar galėčiau gyventi), antrą kartą paspaudus kaip ir OK, įmeta info į
atitinkamą tBoxą. Bet jeigu trečias paspaudimas būna kito mygtuko
paspaudimas - įmeta pirmojo mygtuko info. Dar kartą paspaudus įmeta jau
gerai, antrojo mygtuko info. Arduinas siunčia gerą atsakymą visais
atvejais... Gal paprasčiau bus veikimą kaip turėtų būti nupasakoti taip:
Paspaudžiu PIRMĄ mygtuką:
Jis išsiunčia 1 ir gauna atsakymą
Rašo tą atsakymą į tBox1
Paspaudžiu ANTRĄ mygtuką:
Jis išsiunčia 2 ir gauna atsakymą
Rašo tą atsakymą į tBox2
Bet veikia va taip:
Paspaudžiu PIRMĄ mygtuką:
Matau, kad Arduinas atsako, bet ekrane niekas nevyksta
Paspaudžiu PIRMĄ mygtuką:
Įmeta teisingą atsakymą į teisingą tBoxą
Paspaudžiu ANTRĄ mygtuką:
Jis išsiunčia 2 ir gauna gerą atsakymą, bet į ANTRO mygtuko tBoxą rašomas
PIRMO mygtuko atsakymas
Paspaudžiu ANTRĄ mygtuką:
Jis išsiunčia 2 ir gauna gerą atsakymą, ir rašo jį į ANTRO mygtuko tBoxą
Galvojau gal čia koks buferis išlieka, tai pridėjau tą
"serialPort1.DiscardInBuffer();", bet nepadėjo. Tai dabar du klausimasi:
1. Kodėl iš pirmo paspaudimo nedaro kas užprogramuota
2. Kodėl po bet kurio mygtuko paspaudimo paspaudus kitą mygtuką įmeta
pirmojo atsakymą ?
3. Kaip tų abiejų išvengti ?
"Shadowed" parašė naujienų news:qj5sgq$upg$1@trimpas.omnitel.net...
Sugalvojau truputį pramokti su Visual Studio programėles rašyt, pasikūriau
Arduiną, kad atsakinėtų į paprastus užklausimus, nu tipo siunčiu 1 tai
atsako ką nors, siunčiu 2 atsako dar ką nors, ir t.t. Darau pasižiūrėdamas
iš čia:
Siuntimas:
https://www.youtube.com/watch?v=I6uhMIFTF24&list=PLT19xuXjmpJQxnLQPNyi9YmtKgkQyiy11
Gavimas:
https://www.youtube.com/watch?v=wej52Ca9HnY&list=PLT19xuXjmpJQxnLQPNyi9YmtKgkQyiy11&index=3
Viskas kaip ir veikia, bet truputį kitaip padariau - paspaudus mygtuką
GAUTI, pirma išsiunčiama komanda Arduinui (pvz., 1), ir jis atsako, viskas
čia ok, į text'boxą įkrenta atsakymas. Bet turiu dar vieną mygtuką GAUTI 1,
kuris siunčia 2, ir noriu, kad atsakymas ateitų į kitą textboxą. Nu man
niekaip nesigauna padaryt, arba ateina į abu textboxus vienu metu abiejų
mygtukų užklausimai arba neateina visai... Patarkit, kaip reiktų teisingai
rašyt, kad kitas GAUTI rašytų į savo textboxą.