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; } } }
//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]); } }