public void CalculateCrcCheckSum_String()
        {
            string hexString = "24240072590865FFFFFFFF99553033353830352E30302C412C323233312E39333332322C4E2C31313430392E36333338392C452C302E3035312C2C3032303231362C2C2C442A37437C302E36387C33342E337C323830307C306561302C303030307C3030303030303030307C3132F9770D0A";
            string chksum    = SocketUtil.CalculateCrc16_CCITT_CheckSum(hexString, 0, hexString.Length - 8);

            Assert.AreEqual("F977", chksum);
        }
        public void CalculateCrcCheckSum_Bytes()
        {
            string hexString = "24240075590099FFFFFFFF99553037353534302E3030302C412C323231382E313534322C4E2C31313431352E373139322C452C3030302E302C3033342E332C3033303231362C2C2C412A36397C312E327C32322E317C343830307C303030302C303030307C3031353234383331387C303995580D0A";

            byte[] data   = SocketUtil.HexStringToByteArray(hexString);
            string chksum = SocketUtil.CalculateCrc16_CCITT_CheckSum(data, 0, data.Length - 4).ToString("x2").ToUpper();

            Assert.AreEqual("9558", chksum);
        }
Example #3
0
 /// <summary>
 /// Parses hex string data to a string with UInt16 structure.
 /// </summary>
 /// <param name="hex_str">Hex string data</param>
 /// <param name="start_idx">The starting position within value</param>
 /// <param name="length">Length of value</param>
 /// <returns>Returns string</returns>
 static public string CalculateCrc16_CCITT_CheckSum(string hex_str, int start_idx, int length)
 {
     try
     {
         byte[] data = SocketUtil.HexStringToByteArray(hex_str, start_idx, length);
         return(SocketUtil.CalculateCrc16_CCITT_CheckSum(data, 0, data.Length).ToString("X2"));
     }
     catch { }
     return(String.Empty);
 }