using System;
using SystemCollectionsGeneric;
using SystemComponentModel;
using SystemData;
using SystemDrawing;
using SystemLinq;
using SystemText;
using SystemWindowsForms;
using SystemIOPorts;
using SystemThreading;
using SystemTimers;
public DataShow()
{
InitializeComponent();
m_cworkPara = new CWorkPara();
m_objEvent = new AutoResetEvent(false);
m_objSaturatingRadEvent = new AutoResetEvent(false);
serialPortPortName = m_cworkParas_portName;
serialPortDataBits = m_cworkParai_dataBits;
serialPortReadBufferSize = 1024;
serialPortReadTimeout = 1;
serialPortBaudRate = m_cworkParai_bandRate;
serialPortRtsEnable = true;//设置RTS有效
serialPortDtrEnable = true;//设置DTR有效
serialPortDiscardNull = false;
serialPortOpen();
}
private void btn_ManualStart_Click(object sender, EventArgs e)//手动开始测量
{
serialPortDataReceived += new SerialDataReceivedEventHandler(SerialPort_DataReceived);
}
private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)//MODBUS读取寄存器的触发函数
{
int i_InNum;//输入缓冲区中字节数
i_InNum = serialPortBytesToRead;
byte[] mb_rsp_pdu = new byte[i_InNum];
byte[] crc_Data = new byte[i_InNum];
float f_InterFloat;
serialPortRead(mb_rsp_pdu, 0, i_InNum);//将串口缓冲区数据保存到数组中
serialPortDiscardOutBuffer();
if (i_InNum != 9)
{
MessageBoxShow("receive err");
return;
}
else
{
if (mb_rsp_pdu[0] != 1 || mb_rsp_pdu[1] != 3)
{
return;
}
else
{
crc_Data = mb_rsp_pdu;
ConCRC16(crc_Data, i_InNum);//CRC校验
if (crc_Data[i_InNum - 1] == mb_rsp_pdu[i_InNum - 1] && crc_Data[i_InNum - 2] == mb_rsp_pdu[i_InNum - 2])
{
if (i_InNum != 9)
return;
int n = i_InNum - 5;
byte[] b_ToFloat = new byte[n];//将串口读取的四个字节转换成单精度浮点型
for (int i = 3; i < i_InNum - 2; i++)
{
queue_resultEnqueue(mb_rsp_pdu[i]);//读取串口MODBUS数据,添加到QUERE<byte[]>
b_ToFloat[i - 3] = mb_rsp_pdu[i];
}
f_InterFloat = BitConverterToSingle(mb_rsp_pdu, 3);
float_resultEnqueue(f_InterFloat);
if (b_IsMeasuringRadNeeded)//判断标志位,如果为true,将采集的数据保存
{
for (int i = 2; i < i_InNum - 2; i++)
{
MeasuringRadDataEnqueue(mb_rsp_pdu[i]);
}
b_IsMeasuringRadNeeded = false;
}
if (b_IsSaturatingRadNeed)//判断标志位,如果为true,将采集的数据保存
{
for (int i = 2; i < i_InNum - 2; i++)
{
SaturatingRadDataEnqueue(mb_rsp_pdu[i]);
}
b_IsMeasuringRadNeeded = false;
}
}
else
{
return;
}
}
}
//serialPortDiscardInBuffer();
MethodInvoker In = new MethodInvoker(draw);//使用实例函数跨线程更新窗口
thisBeginInvoke(In);
if (!serialPortIsOpen)
MessageBoxShow("err");
}
要英文的 没找到~ 路过~
This is for (this is for)
Los Latinos (los Latinos)
En camino para los estados unidos (U-S-A)
Buscando la oportunidad
Y el sueño Americano de verdad (the american dream)x2
Lagrimas, sudor y sangre
Esto es para los Mexicanos que estan crusando El Rio Grande
Esto es para los Dominicanos tirandose al canal de La Mona
Esto es para los Cubanos nadando noventa millas para llegar a La Yuma
Dios dale ayuda
This is for
Los latinos
En camino para los estados unidos
Buscando la oportunidad
Y el sueño Americano de verdadx2
Oye mi gente
Ya vemos que un latino puede ser presidents
Los ilegales que estan fajados tratando de ser residentes
Los que tienen el numero de social security todo inventado
Como dice doctora Ana Maria Polo "caso serado"
This is for
Los latinos
En camino para los estados unidos
Buscando la oportunidad
Y el sueño Americano de verdad x2
Libertad (we don't die)
Libertad (we multiply) x4
This is for (Puerto Rico)
Los latinos (Costa Rica)
En camino (Panama) para los Estados Unidos (Nicaragua)
Buscando la oportunidad
(El Salvador, Honduras, Guatemala, Peru, Brazil)
Y el sueño Americano de verdad
(Colombia, Chile, Argentina, Uruguay)
This is for (Paraguay, Bolivia)
Los latinos (Ecuador, Venezuela)
En camino para los estados unidos
(Para todos venezolanos entrando por la frontera con los pies mojados)
Buscando la oportunidad (Cuba, La Republican Dominicana)
Y el sueño Americano de verdad (Mexico)
Esto es para todos los latinos en el mundo
Pa'lante y pa'rriba
Que se preparen y se paren
Que el mundo entero es pa' nosotros
Pa'que lo sepan haha dale
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)