Arduino ir send(irremote)的C#输入字符串

时间:2019-01-21 17:23:49

标签: c# arduino

我是Arduino和该网页的新手,所以请谅解并抱歉我的英语不好。我希望我把事情写清楚了。

我在尝试以下命令IRsend::sendNEC(String&, int)时收到此错误irsend.sendNEC(String, 32)。我试图转换int,但我犯了更多错误。

这是我的C#代码:

 serialPort = new SerialPort("COM9", 115200);
        serialPort.BaudRate = 9600;
        serialPort.ReadTimeout = 500;
        serialPort.Parity = Parity.None;
        serialPort.DataBits = 8;
        serialPort.StopBits = StopBits.One;
        serialPort.Handshake = Handshake.None;
        serialPort.DtrEnable = false;
        serialPort.RtsEnable = true;
        serialPort.Open();
serialPort.DataReceived += new SerialDataReceivedEventHandler(SignalReceived);

private void SignalReceived(object sender, SerialDataReceivedEventArgs e)
    {

        if (serialPort.IsOpen)
        {
            string indata = serialPort.ReadExisting();

        this.Invoke((MethodInvoker)delegate
        {
            if(indata != null | indata != "")
            textBox1.AppendText(indata + Environment.NewLine);
        });
        }

private void button1_Click(object sender, EventArgs e)
    {
        serialPort.Write("0xFF1AE5");
    }

我尝试将serialPort写入int:

int MyInt = 0xFF1AE5;
byte[] b = BitConverter.GetBytes(MyInt);
serialPort.Write(b,0,4);

这是我的arduino代码:

#include <IRremote.h>
IRsend irsend;
String str = Serial.readString();
unsigned long cmdlong = str.toInt();
irsend.sendNEC(cmdlong, 32);
Serial.println(cmdlong);

输出将为空。 我也尝试过转换char,但没有不同。

char inData[str.length() + 1];
str.toCharArray(inData, str.length() + 1);
irsend.sendNEC(inData, 32);

感谢您的所有创意!

0 个答案:

没有答案