我正在开发一个C#应用程序,它将串行命令写入NEC投影机。我可以使用“发送号码”功能使用RealTerm
发送命令,但似乎无法通过我的应用程序使用它。
命令的格式为
POWER ON - 02H 00H 00H 00H 00H 02H
POWER OFF - 02H 01H 00H 00H 00H 03H
我尝试使用WriteLine(command)
发送 - 作为字符串,并使用以下代码将其转换为字节数组:
public static byte[] ToByteArray(string StringToConvert)
{
char[] CharArray = StringToConvert.ToCharArray();
byte[] ByteArray = new byte[CharArray.Length];
for (int i = 0; i < CharArray.Length; i++)
{
ByteArray[i] = Convert.ToByte(CharArray[i]);
}
return ByteArray;
}
似乎什么都没有用,我应该从C#端向下发送什么?希望有人能尽快帮助:)
答案 0 :(得分:1)
您可以使用Write方法,它将字符串作为参数:
答案 1 :(得分:1)
尝试从字符串转换这些命令没有什么意义。它们不是字符串。因此,只需以原生格式在代码中编写它们:
private byte[] powerOnCmd = new byte[] { 0x02, 0x00, 0x00, 0x00, 0x02 };
private byte[] powerOffCmd = new byte[] { 0x02, 0x01, 0x00, 0x00, 0x03 };
现在很简单:
private void sendCommand(byte[] cmd) {
serialPort1.Write(cmd, 0, cmd.Length);
}
private void PowerOn() {
sendCommand(powerOnCmd);
}