public bool checkEqual(Orientamento o2)
 {
     if (o2 != null)
     {
         return checkValue(o2.X, this.X) && checkValue(o2.Y, this.Y) && checkValue(o2.Z, this.Z);
     }
     return false;
 }
        private void letturascrittuta(Orientamento currentOrientamento)
        {
            int res = -1;

            byte[] buff;

            plc.setTextln("*************Scrittura memoria M" + param.asseX + " Asse x:***************");
            buff = new byte[] { currentOrientamento.Xbyte };
            res  = dc.writeBytes(libnodave.daveFlags, 0, param.asseX, param.numByteMemWrite, buff);
            plc.setTextln("function result:" + res + "=" + libnodave.daveStrerror(res));
            if (res == 0)
            {
                plc.setTextln("Valore byte scritto: " + buff[0]);
            }

            plc.setTextln("*************Scrittura memoria M" + param.asseY + " Asse x:***************");
            buff = new byte[] { currentOrientamento.Ybyte };
            res  = dc.writeBytes(libnodave.daveFlags, 0, param.asseY, param.numByteMemWrite, buff);
            plc.setTextln("function result:" + res + "=" + libnodave.daveStrerror(res));
            if (res == 0)
            {
                plc.setTextln("Valore byte scritto: " + buff[0]);
            }

            plc.setTextln("*************Scrittura memoria M" + param.asseZ + " Asse x:***************");
            buff = new byte[] { currentOrientamento.Zbyte };
            res  = dc.writeBytes(libnodave.daveFlags, 0, param.asseZ, param.numByteMemWrite, buff);
            plc.setTextln("function result:" + res + "=" + libnodave.daveStrerror(res));
            if (res == 0)
            {
                plc.setTextln("Valore byte scritto: " + buff[0]);
            }


            plc.setTextln("*************Scrittura memoria M" + param.datoPronto + " Dato pronto:***************");
            buff = new byte[] { param.dataready };
            res  = dc.writeBytes(libnodave.daveFlags, 0, param.datoPronto, param.numByteMemWrite, buff);
            plc.setTextln("function result:" + res + "=" + libnodave.daveStrerror(res));
            if (res == 0)
            {
                plc.setTextln("Valore byte scritto: " + buff[0]);
            }

            Thread.Sleep(10);

            plc.setTextln("*************Output " + param.addressInputRead + " :***************");
            buff = new byte[param.numByteInputRead];
            res  = dc.readBytes(libnodave.daveOutputs, 0, param.addressInputRead, param.numByteInputRead, buff);
            plc.setTextln("function result:" + res + "=" + libnodave.daveStrerror(res));
            if (res == 0)
            {
                plc.setTextln("Valore byte: " + buff[0]);
                calculateAngle((Param.State)buff[0]);
            }
        }
 private void send()
 {
     if (connetti() == 0)
     {
         while (true)
         {
             plc.setTextln("In attesa...");
             Orientamento currentOrientamento = microToPLC.Waitremove();
             plc.setTextln("Invio dati in corso....");
             letturascrittuta(currentOrientamento);
             plc.setTextln("Dati inviati");
         }
         //dc.disconnectPLC();
     }
     //disconnetti();
 }
        //Viene invocato per aggiungere testo alla RichTextBox
        private void SetText(string text)
        {
            //Append del Testo
            string[] subtext = text.Split(';');
            foreach (string tmp in subtext)
            {
                if (tmp != String.Empty && tmp != "")
                {
                    string[] split = tmp.Split(',');
                    Orientamento currentOrientamento = new Orientamento();
                    foreach (string test in split)
                    {
                        if (test != String.Empty && test != "")
                        {
                            string[] assi = test.Split(':');

                            byte asse = 10;
                            try
                            {
                                asse=Convert.ToByte(assi[0]);
                            }
                            catch (System.Exception) {
                                asse = 10;
                            }
                            switch (asse)
                            {
                                case 0: {
                                    try
                                    {
                                        currentOrientamento.X = Convert.ToSByte(assi[1], 2);
                                    }
                                    catch (System.Exception) {
                                        currentOrientamento.X = 0;
                                    }
                                    break;
                                }
                                case 2: {
                                    try
                                    {
                                        currentOrientamento.Y = Convert.ToSByte(assi[1], 2);
                                    }
                                    catch (System.Exception) {
                                        currentOrientamento.Y = 0;
                                    }
                                    break;
                                }
                                case 4: {
                                    try
                                    {
                                        currentOrientamento.Z = Convert.ToSByte(assi[1], 2);
                                    }
                                    catch (System.Exception) {
                                        currentOrientamento.Z = 0;
                                    }
                                    break;
                                }
                            }

                        }
                    }
                    if(!currentOrientamento.checkEqual(microToPLC.Tail))microToPLC.Waitinsert(currentOrientamento);
                    this.rtbIncoming.Text = currentOrientamento.ToString() + "\n" + this.rtbIncoming.Text;
                }
            }
        }
Exemple #5
0
        //Viene invocato per aggiungere testo alla RichTextBox
        private void SetText(string text)
        {
            //Append del Testo
            string[] subtext = text.Split(';');
            foreach (string tmp in subtext)
            {
                if (tmp != String.Empty && tmp != "")
                {
                    string[]     split = tmp.Split(',');
                    Orientamento currentOrientamento = new Orientamento();
                    foreach (string test in split)
                    {
                        if (test != String.Empty && test != "")
                        {
                            string[] assi = test.Split(':');

                            byte asse = 10;
                            try
                            {
                                asse = Convert.ToByte(assi[0]);
                            }
                            catch (System.Exception) {
                                asse = 10;
                            }
                            switch (asse)
                            {
                            case 0: {
                                try
                                {
                                    currentOrientamento.X = Convert.ToSByte(assi[1], 2);
                                }
                                catch (System.Exception) {
                                    currentOrientamento.X = 0;
                                }
                                break;
                            }

                            case 2: {
                                try
                                {
                                    currentOrientamento.Y = Convert.ToSByte(assi[1], 2);
                                }
                                catch (System.Exception) {
                                    currentOrientamento.Y = 0;
                                }
                                break;
                            }

                            case 4: {
                                try
                                {
                                    currentOrientamento.Z = Convert.ToSByte(assi[1], 2);
                                }
                                catch (System.Exception) {
                                    currentOrientamento.Z = 0;
                                }
                                break;
                            }
                            }
                        }
                    }
                    if (!currentOrientamento.checkEqual(microToPLC.Tail))
                    {
                        microToPLC.Waitinsert(currentOrientamento);
                    }
                    this.rtbIncoming.Text = currentOrientamento.ToString() + "\n" + this.rtbIncoming.Text;
                }
            }
        }
        private void letturascrittuta(Orientamento currentOrientamento)
        {
            int res = -1;
            byte[] buff;

            plc.setTextln("*************Scrittura memoria M" + param.asseX + " Asse x:***************");
            buff = new byte[] { currentOrientamento.Xbyte };
            res = dc.writeBytes(libnodave.daveFlags, 0, param.asseX, param.numByteMemWrite, buff);
            plc.setTextln("function result:" + res + "=" + libnodave.daveStrerror(res));
            if (res == 0) plc.setTextln("Valore byte scritto: " + buff[0]);

            plc.setTextln("*************Scrittura memoria M" + param.asseY + " Asse x:***************");
            buff = new byte[] { currentOrientamento.Ybyte };
            res = dc.writeBytes(libnodave.daveFlags, 0, param.asseY, param.numByteMemWrite, buff);
            plc.setTextln("function result:" + res + "=" + libnodave.daveStrerror(res));
            if (res == 0) plc.setTextln("Valore byte scritto: " + buff[0]);

            plc.setTextln("*************Scrittura memoria M" + param.asseZ + " Asse x:***************");
            buff = new byte[] { currentOrientamento.Zbyte };
            res = dc.writeBytes(libnodave.daveFlags, 0, param.asseZ, param.numByteMemWrite, buff);
            plc.setTextln("function result:" + res + "=" + libnodave.daveStrerror(res));
            if (res == 0) plc.setTextln("Valore byte scritto: " + buff[0]);

            plc.setTextln("*************Scrittura memoria M" + param.datoPronto + " Dato pronto:***************");
            buff = new byte[] { param.dataready };
            res = dc.writeBytes(libnodave.daveFlags, 0, param.datoPronto, param.numByteMemWrite, buff);
            plc.setTextln("function result:" + res + "=" + libnodave.daveStrerror(res));
            if (res == 0) plc.setTextln("Valore byte scritto: " + buff[0]);

            Thread.Sleep(10);

            plc.setTextln("*************Output " + param.addressInputRead + " :***************");
            buff = new byte[param.numByteInputRead];
            res = dc.readBytes(libnodave.daveOutputs, 0, param.addressInputRead, param.numByteInputRead, buff);
            plc.setTextln("function result:" + res + "=" + libnodave.daveStrerror(res));
            if (res == 0)
            {
                plc.setTextln("Valore byte: " + buff[0]);
                calculateAngle((Param.State)buff[0]);
            }
        }
 public bool checkEqual(Orientamento o2)
 {
     if (o2 != null)
     {
         return checkValue(o2.X, this.X) && checkValue(o2.Y, this.Y) && checkValue(o2.Z, this.Z);
     }
     return false;
 }