Laden...

Serial Port umbauen in Raw Port

Erstellt von Maffi1986 vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.444 Views
Maffi1986 Themenstarter:in
53 Beiträge seit 2012
vor 6 Jahren
Serial Port umbauen in Raw Port

Hallo,

ich habe vor einiger Zeit ein Programm geschrieben, um Gewichte und Wiegenummern aus einem Wägeterminal via Serial Port (rs232) auszulesen. Nun gibt es ein neues Terminal das keinen RS232 Port mehr hat, stattdessen einen Ethernet Port. Mit Putty kann ich über RAW daten ein und ausgeben. Kann ich in meinem Programm meinen Serialport einfach umbauen zu einem RAW Port? Ich habe schon etwas gegooglet, aber es scheint doch komplexer zu sein als über RS232.

Viele Grüße

Maffi

Hier ein kleiner Codeauszug aus meinem Programm:


SerialPort serialPort1 = new SerialPort("COM8", 9600, Parity.Even, 8, StopBits.One);
...
serialPort1.DataReceived += new SerialDataReceivedEventHandler(DatenEmpfangen);
...
serialPort1.Open();
datensenden("05");
...
        private void DatenEmpfangen(object sender, SerialDataReceivedEventArgs e)
        {
            // If the com port has been closed, do nothing
            if (!serialPort1.IsOpen) return;
            int bytes = serialPort1.BytesToRead;
            byte[] buffer = new byte[bytes];
            serialPort1.Read(buffer, 0, bytes);
            Log(LogMsgType.Incoming, ByteArrayToHexString(buffer));
            lauf++;
        }

        private void datensenden(string sendData)
        {
            //Schreibt Daten an der seriellen Schnittstelle wenn die Serielle Schnittstelle offen ist
            if (serialPort1.IsOpen)
            {
                byte[] data = HexStringToByteArray(sendData);
                // Send the binary data out the port
                serialPort1.Write(data, 0, data.Length);
                Log(LogMsgType.Outgoing, ByteArrayToHexString(data));
                i = 0;
            }
        }

        private void Log(LogMsgType msgtype, string msg)
        {
            textBox1.Invoke(new EventHandler(delegate
            {
                while (i == 0)
                {
                    message = msg;
                    i++;
                }
                textBox1.SelectedText = string.Empty;
                textBox1.AppendText(msg);
                textBox1.ScrollToCaret();

            }));
        }



Maffi1986 Themenstarter:in
53 Beiträge seit 2012
vor 6 Jahren

Hallo TH69,

Danke für die Antwort, ich denke du meinst das hier, hier geht es aber um die Kommunikation zwischen Client und Server, ich finde irgendwie keine einfache anleitung wie ich daten via RAW Sende und Empfange so ähnlich wie ich das oben mache.

Viele Grüße

Maffi

P
441 Beiträge seit 2014
vor 6 Jahren

Wenn dort ein Ethernet Port ist hast du eine Netzwerkverbindung und musst entsprechend Daten über z.B. TCP oder UDP dorthin senden.
die "raw" Verbindung in Putty ist eine TCP Verbindung, die du auch mit dem TcpClient aufbauen kannst.
Hierbei sendest du einfach über die Schreibenden und Lesenden Methodes einer TcpClient Instanz mit dem Server (also dem Software Teil hinter deiner Ethernetbuchse an der Wage).
Wie das geht ist in dem verlinkten Beispiel und in tausenden Online verfügbaren TcpClient Artikeln beschrieben 😃