Tema: Re: Visual Studio
Autorius: Shadowed
Data: 2019-08-16 14:36:36
Jaučiu supratau, kodėl neveikia pirmas paspaudimas - jis bando įmesti 
informaciją iš ankstesnio paspaudimo, o kadangi jis pirmas, tai ankstesnio 
nėra ir atrodo, kad niekas neįvyksta.

"Shadowed"  parašė naujienų news:qj64cm$6ud$1@trimpas.omnitel.net...

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ą.