Laden...

Forenbeiträge von granca Ingesamt 2 Beiträge

22.06.2020 - 23:52 Uhr

Ok, danke vorerst, ja ich weiß mein Code ist nicht der Beste aber ich wollte das schnell mal testen, geht aber nicht so naja gut.
In Vb.net über RS232 und RS485 habe ich das laufen.
Ich wollte mal probieren über ein Ethernet Kabel den PIC18F45K22 mit einer C# Windows Form zu verbinden.
Mit einen heruntergeladen beispiel einer C# Console funktioniert es, wenn ich zb. ein "a" sende bekomme ich "Start" zurück,
sende ich ein "c" bekomme ich den Wert des Temperatursensors zurück.
Mit dem Consolen Beispiel funktioniert es.
Mit der Win Form nicht, werde das anders strukturieren und weiter probieren.

Danke.

19.06.2020 - 23:57 Uhr

Hallo zusammen, Mein erster Thread hier. Bei einer Verbindung zwischen einen Mikrokontroler und einer Windows Form klapt das empfangen
der Daten überhaupt nicht, das Senden an den Mikrokontroler funktioniert und die Daten kommen auch raus,
das kann ich mit einen UDP Terminal überprüfen.
Ich denke es liegt irgendwie an der Verbindung mit den Sockets oder so habe schon gegoogelt und herumprobiert komm aber nicht darauf.
Ich bin schon seit Wochen dran (nicht am stück).
Kann mir bitte jemand kurz drüberschauen?

Vielen herzlichen dank.

Peter

 
namespace Web_Komunikation2
{
    public partial class Form1 : Form
       {
        UdpClient ClientSocket = new UdpClient("192.168.0.60",10001);
        UdpClient receivingUdpClient = new UdpClient(10001);
        IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);
        public int PortNumber = 10001;
        string txt1 = "Keine Verbindung";
        IPEndPoint ipepC;
        Socket udpclnt;  // New socket
        byte[] byteSend;
        byte[] data = new byte[1024];
        string input, stringData;//neu


        public Form1()
        {
            InitializeComponent();
        }

        public void Form1_Load(object sender, EventArgs e)
        { 
            label1.Text = txt1;
            label1.ForeColor = Color.Red;
            CheckForIllegalCrossThreadCalls = false;
        }
           

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                IPAddress serverAddr = IPAddress.Parse("192.168.0.60");
                ipepC = new IPEndPoint(serverAddr, 10001);
                udpclnt = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
                label1.Text = "Ethernet ein";
                label1.ForeColor = Color.Blue;
            }
            catch(Exception err)
            {

            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                btnFanOFF.Visible = true;
                btnFanON.Visible = false;
                byteSend = new byte[5];
                byteSend[0] = 115;
                udpclnt.SendTo(byteSend, ipepC);
                label1.ForeColor = Color.Green;
                udpclnt.Close();
                label1.Text = "Ethernet aus";
            }
            catch(Exception err)
            {
                label1.Text = "FEHLER!";
                label1.ForeColor = Color.Red;
            }
        }
        public void btnFanOFF_Click(object sender, EventArgs e)
        {
            try
            {
                btnFanOFF.Visible = false;
                btnFanON.Visible = true;
                byteSend = new byte[5];
                byteSend[0] = 97;
                udpclnt.SendTo(byteSend, ipepC);
                label1.Text = "VENTILATOR EIN";
                label1.ForeColor = Color.Red;
                data = receivingUdpClient.Receive(ref RemoteIpEndPoint);
                stringData = Encoding.ASCII.GetString(data, 0, data.Length);
                lblTemp.Text = stringData;

            }
            catch(Exception ex)
            {
                label1.Text = "Fehlt Verbindung!";
                label1.ForeColor = Color.Red;
                btnFanOFF.Visible = true;
                btnFanON.Visible = false;
                MessageBox.Show(ex.Message, "Fehler", MessageBoxButtons.OK,   MessageBoxIcon.Error);
            }

        }