所以,我試圖通過C#中的串口對象與設備進行通信。設備正在查找作爲命令字符串的一部分發送給它的掩碼值。例如,其中一個字符串類似於「SETMASK:{}」,其中{}是無符號的8位掩碼。用串口發送非ASCII字符的字符串c#
當我使用終端(如BRAY)與設備通信時,我可以使設備工作。例如,在BRAY終端中,字符串SETMASK:$ FF將把掩碼設置爲0xFF。然而,我不能爲我的生活弄清楚如何在C#中做到這一點。
我已經嘗試了以下功能,其中的數據是屏蔽值和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;
}
當你通過佈雷做到這一點,你真的發送三個字符'$','F'和'F'? – hatchet
不,在佈雷,這就是你發送非打印字符的方式。 $ XX => 0xXX。所以,$ FF => 0xFF => 0b11111111 – pYr0