Avatar billede phineas_phreak Nybegynder
10. januar 2007 - 10:10 Der er 2 løsninger

data fra seriel port i form

Hejsa...

Har lavet et program der modtager data fra et andet program over seriel porten så snart den åbnes. Mit spørgsmål er nu hvordan jeg får det vist i en form, altså en win32 applikation idet jeg samtidig opdaterer en masse grafer. Jeg går udfra det er noget med at køre det i en seperat tråd eller lign. Men der må jeg altså melde pas. Nogen der har nogle forslag ?

Jeg har bare en klasse SerialConnection som opretter forbindelse via COM porten og udskriver modtagne data i konsollen. Når jeg opretter den i formen er det gennem en knap så noget i stil med

private void startToolStripMenuItem_Click(object sender, EventArgs e)
{
    SerialConnection s = new SerialConnection();
    s.connect();
}

på forhånd tak.
Avatar billede skov_p Praktikant
10. januar 2007 - 21:44 #1
Du skal tilføje en eventhandler til SerialPort.DataReceived.
Den bliver kaldt når der kommer data ind på din port.

Så skal du gøre noget med de data, men det forbistrede er at at du ikke bare kan kalde din form fra den metode. Da den kører i en anden tråd end din form.


delegate SetTextCallBack TextCallBack(string data);

lad os antage at du vil skrive teksten ud i TextBox1 skal du lave noget i retningen af dette.

private void SetText(string str){
if(TextBox1.InvokeRequired){
Invoke(new TextCallBack(SetText), new object[]{str});
}
else
TextBox1.Text = str;
}

Så bliver kaldet "overført" til din form tråd der derefter opdateres automaitsk.
Avatar billede phineas_phreak Nybegynder
11. januar 2007 - 08:08 #2
Tak for svaret... havde dog allerede løst det på en tilsvarende måde, dog glemt at acceptere mit svar herinde, men du får lidt point for dit bidrag.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester