private void Calcolo_Click(object sender, EventArgs e) { if (String.IsNullOrEmpty(Set0.Text) == true || String.IsNullOrEmpty(Set150.Text) == true || String.IsNullOrEmpty(Set212.Text) == true || String.IsNullOrEmpty(Set300.Text) == true || String.IsNullOrEmpty(Set425.Text) == true || String.IsNullOrEmpty(Set500.Text) == true || String.IsNullOrEmpty(Set710.Text) == true) { MessageBox.Show("Non hai inserito ancora tutti i numeri !", "Errore"); } else { Val710 = Convert.ToDouble(Set710.Text.Replace(",", nfi.NumberDecimalSeparator), nfi); D710 = Val710 - 452.61d; Val500 = Convert.ToDouble(Set500.Text.Replace(",", nfi.NumberDecimalSeparator), nfi); D500 = Val500 - 422.31d; Val425 = Convert.ToDouble(Set425.Text.Replace(",", nfi.NumberDecimalSeparator), nfi); D425 = Val425 - 416.87d; Val300 = Convert.ToDouble(Set300.Text.Replace(",", nfi.NumberDecimalSeparator), nfi); D300 = Val300 - 398.38d; Val212 = Convert.ToDouble(Set212.Text.Replace(",", nfi.NumberDecimalSeparator), nfi); D212 = Val212 - 392.64d; Val150 = Convert.ToDouble(Set150.Text.Replace(",", nfi.NumberDecimalSeparator), nfi); D150 = Val150 - 387.27d; Val0 = Convert.ToDouble(Set0.Text.Replace(",", nfi.NumberDecimalSeparator), nfi); D0 = Val0 - 411.36d; if (D710 < 0.00 || D710 < 0.00 || D500 < 0.00 || D425 < 0.00 || D300 < 0.00 || D212 < 0.00 || D150 < 0.00 || D0 < 0.00) { MessageBox.Show("Attenzione, peso minore rispetto a quello originale", "Errore"); } else { if (D710 > 100 || D710 > 100 || D500 > 100 || D425 > 100 || D300 > 100 || D212 > 100 || D150 > 100 || D0 > 100) { MessageBox.Show("Sicuro di avere inserito i valori giusti ? Uno dei setacci ha un valore troppo alto di peso lordo", "Errore"); } else { Dif710.Text = D710.ToString("#0.00"); Dif500.Text = D500.ToString("#0.00"); Dif425.Text = D425.ToString("#0.00"); Dif300.Text = D300.ToString("#0.00"); Dif212.Text = D212.ToString("#0.00"); Dif150.Text = D150.ToString("#0.00"); Dif0.Text = D0.ToString("#0.00"); somma = D0 + D150 + D212 + D300 + D425 + D500 + D710; Tot.Text = somma.ToString("#0.00"); } } } }
public void SendPacket() { int checksum = 0; if (PacketNum++ > 999) { PacketNum = 0; } //get all the data in string form String num = PacketNum.ToString("D3"); String A0val = A0.ReadRaw().ToString("D4"); String A1val = A1.ReadRaw().ToString("D4"); String A2val = A2.ReadRaw().ToString("D4"); String A3val = A3.ReadRaw().ToString("D4"); String A4val = A4.ReadRaw().ToString("D4"); String A5val = A5.ReadRaw().ToString("D4"); char D0val = D0.Read() ? '1' : '0'; char D1val = D1.Read() ? '1' : '0'; char D2val = D2.Read() ? '1' : '0'; char D3val = D3.Read() ? '1' : '0'; char D4val = D4.Read() ? '1' : '0'; char D5val = D5.Read() ? '1' : '0'; char D6val = D6.Read() ? '1' : '0'; char D7val = D7.Read() ? '1' : '0'; char Btnval = Btn.Read() ? '1' : '0'; //concat the data String packet = num + A0val + A1val + A2val + A3val + A4val + A5val + Btnval + D0val + D1val + D2val + D3val + D4val + D5val + D6val + D7val; //compute checksum foreach (char digit in packet) { checksum += (digit); } checksum %= 1000; //append checksum and protocol frame stuff packet = "###" + packet + checksum + "\r\n"; //convert to byte array for sending byte[] bytepacket = System.Text.Encoding.UTF8.GetBytes(packet); //send the packet _serial.Write(bytepacket, 0, bytepacket.Length); }
public void M(D0 p0, D1 p1, D2 p2) { /* $ */ }
private void ProcessPacket(object sender, SerialDataReceivedEventArgs a) { byte[] inBuf = null; int available; do { available = _serial.BytesToRead; } while (available < 14); //wait for all bytes before operating on data inBuf = new byte[_serial.BytesToRead]; _serial.Read(inBuf, 0, inBuf.Length); string Packet = new string(System.Text.Encoding.UTF8.GetChars(inBuf)); int RemoteChecksum = Int16.Parse(Packet.Substring(11, 3)); //extract sender's checksum int LocalChecksum = 0; string data = Packet.Substring(3, 8); foreach (char digit in data) { LocalChecksum += digit; //compute our checksum } LocalChecksum %= 1000; if (RemoteChecksum != LocalChecksum) { return; //stop packet processing if checksums don't match } string packetType = Packet.Substring(0, 3); //if (packetType == "$$$") //do SID Protocol //{ // string command = data.Substring(0, 3); // string value = data.Substring(3); // switch (command) { // case "ENV" : //set voice envelope // break; // case "VFQ" : //voice frequency // break; // case "VPW" : //voice puslewidth // break; // case "FFQ" : //filter frequency // break; // case "FRS" : //filter resonance // break; // case "SVF" : //voice filter mode // break; // case "VEN" : //voice enable: on/off // break; // case "VWF" : //voice waveform // break; // case "AMP" : //set volume // break; // case "FMO" : //filter mode (bp, hp, lp) // break; // } //} #region boring if (packetType == "###") //do Mayes Protocol { D0.Write(data[0] == '1' ? true : false); D1.Write(data[1] == '1' ? true : false); D2.Write(data[2] == '1' ? true : false); D3.Write(data[3] == '1' ? true : false); D4.Write(data[4] == '1' ? true : false); D5.Write(data[5] == '1' ? true : false); D6.Write(data[6] == '1' ? true : false); D7.Write(data[7] == '1' ? true : false); } #endregion }