Beispiel #1
0
 public override void DeviceConn(ModBusRTUConfig config)
 {
     Commands = config.Commands.ToList();
     for (int i = 0; i < Commands.Count; i++)
     {//预处理command数据
         try
         {
             Commands[i].Command = new byte[8];
             byte[] _TmpBt = new byte[6];
             byte[] CRCByte;
             _TmpBt[0] = Commands[i].Command[0] = (byte)Convert.ToInt32(Commands[i].Addr, 16);
             _TmpBt[1] = Commands[i].Command[1] = (byte)Convert.ToInt32(Commands[i].GCode, 16);
             _TmpBt[2] = Commands[i].Command[2] = (byte)Convert.ToInt32("00", 16);
             _TmpBt[3] = Commands[i].Command[3] = (byte)Convert.ToInt32(Commands[i].StartR, 16);
             _TmpBt[4] = Commands[i].Command[4] = (byte)Convert.ToInt32("00", 16);
             _TmpBt[5] = Commands[i].Command[5] = (byte)Convert.ToInt32(Commands[i].ReadLen, 16);
             CRCByte   = CRC.CRC16_C(_TmpBt);
             Commands[i].Command[6] = CRCByte[1];
             Commands[i].Command[7] = CRCByte[0];
         }
         catch (Exception ex)
         {
             Console.WriteLine(ex.ToString());
         }
     }
     OpenPort();
 }
Beispiel #2
0
        private void btnCrc_Click(object sender, EventArgs e)
        {
            var value = tbIn.Text;

            byte[] data = cbIsAscii.Checked ? Encoding.Default.GetBytes(value) : StringByteUtils.StringToBytes(value);

            tbCrc16.Text     = StringByteUtils.BytesToString(CRC.Crc16(data, data.Length));
            tbCrcc.Text      = StringByteUtils.BytesToString(CRC.CRC16_C(data));
            tbUpdateCRC.Text = StringByteUtils.BytesToString(StringByteUtils.GetBytes(CRC.UpdateCRC(data, data.Length), true));
            tbGBcrc16.Text   = $"##{value.Length.ToString().PadLeft(4, '0')}{value}{StringByteUtils.BytesToString(CRC.GBcrc16(data, data.Length)).Replace(" ", "")}";
            tbHBcrc16.Text   = $"##{value.Length.ToString().PadLeft(4, '0')}{value}{StringByteUtils.BytesToString(CRC.HBcrc16(data, data.Length)).Replace(" ", "")}";
        }