public void Read() //等待读取串口接收的数据的线程 处理函数
{
int i = 0;
int[] w1 = new int[20];//存放读出来的重量
string w = "";
while (_continue)
{
try
{
//阻塞到读取数据或超时(这里为2秒)
int bytesRead = serialPort1.BytesToRead;
serialPort1.WriteTimeout = 200;
byte[] bytesData = new byte[bytesRead];
serialPort1.Read(bytesData,0,bytesData.Length);
w =System.Text.Encoding.ASCII.GetString(bytesData);
if (w != "" && w.Length >10)
{
string a = w.Substring(5, 6);
lbKgContent.Items.Add("--------------------------------");
lbKgContent.Items.Add("采集到的数据:" + a+ "公斤 || " + "当前时间:" + DateTime.Now.ToString());
lbKgContent.SelectedIndex = lbKgContent.Items.Count - 1;
w1[i] = int.Parse(a.Trim());
i++;
}
else
{
// lbKgContent.Items.Add("数据采集中……");
// lbKgContent.SelectedIndex = lbKgContent.Items.Count - 1;
}
}
catch (TimeoutException) { } }
//获取数组中的最大值
}
此为地磅程序,地磅终端不停的向COM串口发送数据(也就是说这个循环是死循环),数据处理之后为0,我在程序中以判断了,即当地磅采集到重量数据之后会发送一些大于0的数据,我已经将这些数据放到数组之中了。想在这些数组中取出最大值。望各位赐教。
{
int i = 0;
int[] w1 = new int[20];//存放读出来的重量
string w = "";
while (_continue)
{
try
{
//阻塞到读取数据或超时(这里为2秒)
int bytesRead = serialPort1.BytesToRead;
serialPort1.WriteTimeout = 200;
byte[] bytesData = new byte[bytesRead];
serialPort1.Read(bytesData,0,bytesData.Length);
w =System.Text.Encoding.ASCII.GetString(bytesData);
if (w != "" && w.Length >10)
{
string a = w.Substring(5, 6);
lbKgContent.Items.Add("--------------------------------");
lbKgContent.Items.Add("采集到的数据:" + a+ "公斤 || " + "当前时间:" + DateTime.Now.ToString());
lbKgContent.SelectedIndex = lbKgContent.Items.Count - 1;
w1[i] = int.Parse(a.Trim());
i++;
}
else
{
// lbKgContent.Items.Add("数据采集中……");
// lbKgContent.SelectedIndex = lbKgContent.Items.Count - 1;
}
}
catch (TimeoutException) { } }
//获取数组中的最大值
}
此为地磅程序,地磅终端不停的向COM串口发送数据(也就是说这个循环是死循环),数据处理之后为0,我在程序中以判断了,即当地磅采集到重量数据之后会发送一些大于0的数据,我已经将这些数据放到数组之中了。想在这些数组中取出最大值。望各位赐教。
int maxweight=w1[0];
foreach(int weight in wl)
if(weight>maxweight)maxweight=weight;
int b=w1.Max();