C# 串行命令-NEC投影仪
我正在开发一个C#应用程序,它将串行命令写入NEC投影仪。我可以使用C# 串行命令-NEC投影仪,c#,com,serial-port,C#,Com,Serial Port,我正在开发一个C#应用程序,它将串行命令写入NEC投影仪。我可以使用RealTerm使用“发送数字”功能发送命令,但似乎无法通过我的应用程序使其正常工作 命令的格式如下所示 开机-02H 00H 00H 00H 02H 电源关闭-02H 01H 00H 00H 03H 我尝试使用WriteLine(command)-作为字符串发送,并使用以下代码将其转换为字节数组: public static byte[] ToByteArray(string StringToConvert) { ch
RealTerm
使用“发送数字”功能发送命令,但似乎无法通过我的应用程序使其正常工作
命令的格式如下所示
开机-02H 00H 00H 00H 02H
电源关闭-02H 01H 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;
}
公共静态字节[]ToByteArray(字符串StringToConvert)
{
char[]CharArray=StringToConvert.ToCharArray();
byte[]ByteArray=新字节[CharArray.Length];
for(int i=0;i
似乎什么都没用,我该从我的C#端往港口发送什么?希望有人能尽快提供帮助:)您可以使用Write方法,它以字符串作为参数:
尝试将这些命令从字符串转换成字符串没有什么意义。它们不是弦。因此,只需在代码中以其本机格式编写它们:
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);
}
我已经试过了,但由于某些原因,它似乎不再有效:/我会再试一次,确保我做得对!:P ThanksI打算这样做,但客户机希望使用web界面远程发送许多不同的命令。我现在已经对它进行了排序,基本上是按照你在这里的建议做的,只是我制作了一个小脚本来解析字符串,并将它们转换为其本机格式:)谢谢!