hab ein kleines prog geschrieben um daten zu senden und empfangen weis wer ob das so funkzt danke
das mit dem senden der daten fukzt einwandfrei
hab eben kein gerät rumligen das daten über die serielle schnitstelle sendet
habe jetzt einen virtuellen seriellen port generiert und kommunzziere nit dem hyperterminel
das problem das ich habe ist das keine daten in meinem prog ankommen wegsenden funktioniert
#region Using directives
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
#endregion
namespace WindowsApplication1
{
partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//empfangen fehler!!
public void serialPort1_ReceivedEvent(object sender, System.IO.Ports.SerialReceivedEventArgs e)
{
string empfangen;
empfangen = serialPort1.ReadExisting();
textBox2.Text = empfangen;
}
//einschalten
private void button1_Click(object sender, EventArgs e)
{
if (serialPort1.IsOpen)
MessageBox.Show("Fehler serialport bereits verwendet");
else
{
this.serialPort1.Open();
button1.Enabled = false;
button2.Enabled = true;
button3.Enabled = true
;
label2.Text = ("Status: port open");
}
}
//auschalten
private void button2_Click(object sender, EventArgs e)
{
if (serialPort1.IsOpen)
{
this.serialPort1.Close();
button1.Enabled = true;
button2.Enabled = false;
button3.Enabled = false;
label2.Text = ("Status: port closed");
}
}
//senden
private void button3_Click(object sender, EventArgs e)
{
string senddata;
senddata = textBox1.Text;
this.serialPort1.Write(senddata);
textBox1.Text = ("");
}
}
}
hab jetzt eine neue variante und das gibt immer einen fehler wenn daten ankommen weis jemand was ich falsch mache
Was denn für ein Fehler?
Hab mir die whidbey betas nicht installiert, kann es also nicht selber testen ...
erster fehler den ich bekomme🙁 direkt im recive event)
Illegal cross-thread operation: Control 'textBox2' accessed from a thread other than the thread it was created on.
2 fehler ( Application.Run(new Form1())😉
Illegal cross-thread operation: Control 'textBox2' accessed from a thread other than the thread it was created on.\r\nStack trace where the illegal operation occurred was:\r\n\r\n\tat System.Windows.Forms.Control.get_Handle()\r\n\tat System.Windows.Forms.Control.get_WindowText()\r\n\tat System.Windows.Forms.TextBoxBase.get_WindowText()\r\n\tat System.Windows.Forms.Control.get_Text()\r\n\tat System.Windows.Forms.TextBoxBase.set_Text(String)\r\n\tat System.Windows.Forms.TextBox.set_Text(String)\r\n\tat WindowsApplication1.Form1.serialPort1_ReceivedEvent(Object, SerialReceivedEventArgs)\r\n\tat System.IO.Ports.SerialPort.CatchReceivedEvents(Object, SerialReceivedEventArgs)\r\n\tat System.IO.Ports.SerialStream.EventLoopRunner.CallReceiveEvents(Object)\r\n\tat System.Threading._ThreadPoolWaitCallback.WaitCallback_Context(Object)\r\n\tat System.Threading.ExecutionContext.Run(ExecutionContext, ContextCallback, Object, StackCrawlMark&)\r\n\tat System.Threading._ThreadPoolWaitCallback.WaitCallback(Object)\r\n"
und es wird sogar noch angezeigt das ein zeichen empfangen wurde bin langsam am ende mitt meinen nerven
glaube irgendwo in beinem prog ist ein bug oder es kommt weil ich kene fehler behandlung habe weis es leider nnicht genau
Original von zerli
Illegal cross-thread operation: Control 'textBox2' accessed from a thread other than the thread it was created on.
Na also, da steht doch in klarem englisch was der Fehler ist 😉
(macht auch sinn, typischer Fehler übrigens ... auch wenn in v1.1 solche fehler (leider) noch nicht abgefangen wurden) ...
hint: Invoke()
na denn werd ich mich mal schlau machen wie das geht
oder weis das zufallig einer
(das Problem ist, dass du in der Handler Methode nicht auf WinForms Objekte zugreifen darfst, da die Methode in nem anderen Thread ausgeführt wird ... per (Dein WinFormsObjekt).Invoke kannst jedoch eine Methode im WinForms Thread Kontext ausführen ...
(versuch sonst auch mal statt auf die TextBox zuzugreifen eine MessageBox anzuzeigen oder in eine datei zu schreiben ...)
alles klar war eigentlich auch nur zum ausprobieren das mit der textbox
vielen dank für die hilfe
hab jetz das pro so wirklich zum laufen bekommen und wenn mann es mit eimen virtuellen comport testet läufts
wer probieren will kann es ja runterladen und eventuell noch ein paar verbessserungsvorschläge machen was mich noch interesseirren würde ist die fehlerbehandlung wer einen guten einfall hat soll sich einfach melden
sollte das prog nicht funktzen muss ein anderer com port oder
ein programm für viruelle comports installiert sen