"Giriş dizesi doğru biçimde değil." Bu kodun hata iletisiGiriş dizesi doğru biçimde değil. C# (Yeni)
rainTb.Text = " " + int.Parse(parsed[0]) * 100/1023;
Kodumda hata yok. Yukarıdaki hata dışında. Arduino donanımından gelen analog değeri (hesaplamanın üstünde) seri iletişim (kablo) ile elde etmek için bir hesaplama yaptım. Arduino yine de iyi çalışıyor. Bu hata ortaya çıkana kadar her şey yolundaydı ... Neden? ağlar
p/s: Pek çok çözümden geçtim ama yine de .. İşte şimdi buradayım. o kodunuzu bu sahip istisna atar başka çalışıyor dönüştürülebilir bir dize ise üzgün İngilizcemde
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));
}
}
Verilerim seri iletişim yoluyla gerçekleştirilmiştir. Arduino'dan Visual Studio'ya. Arduino iyi çalışıyor olsa da –
Hata ayıklayıcınız ne 'ayrıştırıldı [0]' içerir? Sanırım isteğe bağlı bir lider '-' ile sadece rakamlardan başka bir şey. –
'parse [0]' nedir? – Mostafiz