读取字符串从C#发送arduino

时间:2015-03-12 09:18:04

标签: c# asp.net c

非常感谢任何帮助我还在学习C#和arduino通信..我试图从C#接收一些关于arduino发送的数据,但是我没有看到串行监视器上的发送数据。我想知道我是如何收到发送数据的。以下是我的代码:

C#:

protected void Button7_Click(object sender, EventArgs e)
        {
            {
                SerialPort comPort = new SerialPort("COM3", 9600, Parity.None, 8, StopBits.One);
                try
                {
                    comPort.Open();
                    comPort.Write(TextBox1.Text);
                    comPort.Write("Delete");
                    comPort.Close();
                }
                catch (UnauthorizedAccessException ex)
                {
                    Response.Write("Error:" + ex.ToString());
                }
                try
                {
                    OleDbConnection conn = new OleDbConnection("Provider= Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("App_Data\\Stock.mdb"));
                    conn.Open();
                   Int32 ash = Convert.ToInt32(TextBox1.Text);
                    string deleteQuery = "delete from Instock where ID= '" + ash + "'";
                    OleDbCommand com = new OleDbCommand(deleteQuery, conn);
                    com.ExecuteNonQuery();
                    Response.Write("Item deleted successfully");
                    Response.Redirect("UpdateDB.aspx");
                    conn.Close();
                }
                catch (Exception ex)
                {
                    Response.Write("Error:" + ex.ToString());
                }
            }
        }

Arduino的:

#include <EEPROM.h>
#include <SoftwareSerial.h>
SoftwareSerial xbee(2, 3);
int incoming;
int id;
int rea;
int comp=0;
void setup() {
  Serial.begin(9600);
  xbee.begin( 9600 );
 }

void loop() {
  if(Serial.available())
   {
     Serial.print("hhhh");
     id = Serial.read();
     incoming = Serial.read();
     if(id!='New')
     {
     xbee.println(id);
     xbee.println(incoming);
     EEPROM.write(id, incoming);
     rea = EEPROM.read(id);
     Serial.print(id);
    }
    else
     {
      EEPROM.write(comp, incoming);
      rea = EEPROM.read(id);
      Serial.print(id);
      comp+=1;
     }
   }
}

1 个答案:

答案 0 :(得分:0)

首先,我认为定义一种灵活且适合您的通信要求的消息格式非常重要(例如,发送/接收具有不同数据类型的多个参数的命令等)。

幸运的是,已经有一个名为CmdMessenger的综合库,它处理Arduino和C#应用程序之间的双向通信。该库的使用非常简单,网上有几个examples。我认为很容易根据您的个人需求更改示例。