/// <summary> /// Функция сбора пакета /// </summary> /// <param name="lowCommand">Низкоуровневая команда</param> /// <param name="data">Данные, усекается до 65529</param> /// <returns></returns> static byte[] AssemblyRawPack(LowCommands lowCommand, params byte[] data) { int length = 0; byte[] pack = null; if (data != null) { int dataLength = 0; dataLength = data.Length > 65530 ? 65530 : data.Length; length = 2 + 1 + 1 + dataLength + 1; pack = new byte[length]; System.Buffer.BlockCopy(data, 0, pack, 4, dataLength); pack[pack.Length - 1] = Crc8.ComputeChecksum(4, dataLength, pack); } else { length = 2 + 1 + 1; pack = new byte[length]; } System.Buffer.BlockCopy(BitConverter.GetBytes(length), 0, pack, 0, 2); pack[2] = (byte)lowCommand; pack[3] = Crc8.ComputeChecksum(0, 3, pack); return(pack); }
/// <summary> /// Функция сбора пакета /// </summary> /// <param name="lowCommand">Низкоуровневая команда</param> /// <returns></returns> static byte[] AssemblyRawPack(LowCommands lowCommand) { return(AssemblyRawPack(lowCommand, null)); }