所以我正在尝试开发一个控制台应用程序,它能够通过串口自动发送和接收来自Arduino的数据。基本上,这个应用程序将作为任务调度程序执行。
每天,在某个时间,应用程序执行关闭门的命令。要做到这一点,我会发送类似comport.Write("y")
的内容,Arduino会明白这个命令会关闭,但如果Arduino发给我一个ascii命令,它就会被关闭。
我想创建一个告诉类似的if条件:
“如果发送给arduino的命令被读取,那么它会响应一些东西,我会打开门。如果没有,它将无效,因为门已经关闭。”
这是我已有的代码:
static void Main(string[] args)
{
BackgroundWorker work = new BackgroundWorker();
work.DoWork += new DoWorkEventHandler(work_DoWork);
work.ProgressChanged += new ProgressChangedEventHandler(work_ProgressChanged);
work.WorkerReportsProgress = true;
work.RunWorkerAsync();
Console.ReadLine();
}
static void work_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
Console.WriteLine(e.ProgressPercentage);
}
static void work_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker work = sender as BackgroundWorker;
int grams = -1;
SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
port.Open();
while (true)
{
string buff = port.ReadLine();
int value;
if (int.TryParse(buff, out value) && value != grams)
{
grams = value;
work.ReportProgress(grams);
}
}
}
我想用这样的东西来读取arduino寄给我的东西,如果命令是正确的话,它会继续。
相反,如果这个int变量我想要字符串变量
你们能帮助我吗?