Was mir aufgefallen ist, dass brauchst du bei deine jetzigen Code nicht!
Code:
private void button1_Click(object sender, EventArgs e)
{
string[] schnittstellen = SerialPort.GetPortNames(); // Gibt alle aktuell verfügbaren Comports zurück
foreach (string comport in schnittstellen)
{comboBox1.Items.Add(comport); }
}
Du hast doch den Com Port statisch zugewiesen mit "Com3".
Ich hätte das so gemacht:
Code:
/// <summary>
/// Com Port anzahl
/// </summary>
/// <returns></returns>
int PortCount = 0;
string Rueckmeldung = null;
private string SerialPortCount()
{
try
{
string[] SettingPort = SerialPort.GetPortNames();
foreach (string PortName in SettingPort)
{
PortCount++;
this.comboBox1.Text = PortName;
this.comboBox1.Items.Add(PortName);
}
Rueckmeldung = "OK";
}
catch
{
Rueckmeldung = "Error";
}
return Rueckmeldung;
}
private void SendData(string DataInput)
{
SerialPort ComPort = new SerialPort(this.comboBox1.Text, 9600, Parity.None, 8, StopBits.One);
try
{
ComPort.Open();
ComPort.Write(DataInput);
this.label1.Text = ComPort.BytesToWrite.ToString();
ComPort.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Schreib mal das so um zu sehn wieviel gesendet wird. ich kann es leider nicht testen ich hab z.Z. nichts am Com Port angeschlossen.
Code:
AktuellerComPort.Open();
AktuellerComPort.Write(textBox1.Text); // sende inhalt der Textbox an ComPort
this.label1.Text = ComPort.BytesToWrite.ToString();
AktuellerComPort.Close();
Wenn du 5 zeichen sendest sollte im label 5 drin sein. ( es sei denn ich hab mich jetzt mit den buffer geirrt ). Das dass der "Globale" Sende Buffer ist.
MFG Oliver g
PS: ich schau noch mal weiter ob ich was finde was ich am Com anschliesen kann.
Lesezeichen