/// <summary> /// 串口发送 /// </summary> /// <param name="myData"></param> /// <param name="myID"></param> public static void Send_ComData(decimal myData, MyComId myID) { if (myID < MyComId.MyComId_Num) { byte[] Send_Buffer = new byte[7] { 0xaa, 0x55, 0, 0, 0, 0, 0 }; int Int_Temp = (int)(100 * myData); MyComData[(byte)myID] = myData; #if false //高位在前 Send_Buffer[5] = (byte)Int_Temp; Send_Buffer[4] = (byte)(Int_Temp >> 8); Send_Buffer[3] = (byte)(Int_Temp >> 16); Send_Buffer[2] = (byte)(Int_Temp >> 24); #endif #if true //低位在前 Send_Buffer[2] = (byte)Int_Temp; Send_Buffer[3] = (byte)(Int_Temp >> 8); Send_Buffer[4] = (byte)(Int_Temp >> 16); Send_Buffer[5] = (byte)(Int_Temp >> 24); #endif Send_Buffer[6] = (byte)(myID); if (MySerialPort.IsOpen) { MySerialPort.Write(Send_Buffer, 0, 7); //发送 MySerialPort.Write(Send_Buffer, 0, 7); //发送两次确保收到 } } }
public static void SetComData(decimal myData, MyComId myID) { MyComData[(byte)myID] = myData; if (MySerialPort.IsOpen) { Send_ComData(myData, myID); } }
public static decimal GetComData(MyComId myID) { return(MyComData[(byte)myID]); }