【发布时间】:2016-04-13 12:48:24
【问题描述】:
我遇到“输入字符串的格式不正确”。此代码错误
rainTb.Text = " " + int.Parse(parsed[0]) * 100 / 1023;
我的代码没有错误。除了上面的错误。我进行了计算,通过串行通信(电缆)从 Arduino 硬件中提取模拟值(以上计算)。 Arduino 工作正常。一切都很好,直到出现这个错误......为什么? 哭泣
p/s:我已经经历了很多解决方案,但仍然......所以我现在在这里。对不起我的英语
private void ProcessCOMRx(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(COMRx))
{
systemTb.Text = "Processing Data...";
systemTb.BackColor = System.Drawing.Color.Lime;
string [] parsed = COMRx.Split(',');
int curveNo;
if (parsed.Count() > zedAll.GraphPane.CurveList.Count())
curveNo = zedAll.GraphPane.CurveList.Count();
else
curveNo = parsed.Count();
for (int k = 0; k < curveNo; k++)
{
for (int j = zedAll.GraphPane.CurveList[k].NPts - 1; j > 0; j--)
{
zedAll.GraphPane.CurveList[k].Points[j].Y = zedAll.GraphPane.CurveList[k].Points[j - 1].Y;
}
double temp = 0;
try
{
temp = double.Parse(parsed[k]);
}
catch
{
systemTb.Text = "Parse Error";
systemTb.BackColor = System.Drawing.Color.Red;
}
rainTb.Text = "" + int.Parse(parsed[0]) * 100 / 1023;
phTb.Text = "" + (3.5 + int.Parse(parsed[1]) * 4.5 / 1023);
moistTb.Text = "" + int.Parse(parsed[2]) * 100 / 1023;
tempTb.Text = "" + int.Parse(parsed[3]) * 100 / 1023;
zedAll.GraphPane.CurveList[k].Points[0].X = 0;
zedAll.GraphPane.CurveList[k].Points[0].Y = temp;
}
}
else
{
this.BeginInvoke(new EventHandler(processPumpStates));
}
}
【问题讨论】:
-
我的数据是通过串行通信。从 Arduino 到 Visual Studio。 Arduino 工作正常
-
你的调试器说
parsed[ 0 ]包含什么?我猜这不仅仅是带有可选前导-的数字。 -
parse[0]包含什么? -
您的评论似乎与您的问题相关,应该添加到问题中,而不是作为评论发布。
-
parsed[0]的内容是什么
标签: c# visual-studio arduino