因此,我试图通过 C# 中的串行端口对象与设备通信。设备正在寻找要作为命令字符串的一部分发送给它的掩码值。例如,其中一个字符串类似于“SETMASK:{}”,其中 {} 是无符号的 8 位掩码。
当我使用终端(如 BRAY)与设备通信时,我可以让设备工作。例如,在 BRAY 终端中,字符串 SETMASK:$FF 会将掩码设置为 0xFF。但是,我一生都无法弄清楚如何在 C# 中执行此操作。
我已经尝试过以下函数,其中 Data 是掩码值,CMD 是周围的字符串(“SETMASK:”在这种情况下“)。我哪里出错了?
public static string EmbedDataInString(string Cmd, byte Data)
{
byte[] ConvertedToByteArray = new byte[(Cmd.Length * sizeof(char)) + 2];
System.Buffer.BlockCopy(Cmd.ToCharArray(), 0, ConvertedToByteArray, 0, ConvertedToByteArray.Length - 2);
ConvertedToByteArray[ConvertedToByteArray.Length - 2] = Data;
/*Add on null terminator*/
ConvertedToByteArray[ConvertedToByteArray.Length - 1] = (byte)0x00;
Cmd = System.Text.Encoding.Unicode.GetString(ConvertedToByteArray);
return Cmd;
}