用於學習記錄
上位機發送的命令:01 03 01 00 00 01 85 F6
下位機返回的命令: 01 03 02 27 10 A2 78
有用的數據信息是27 10 ,這是16進制的,轉換成10進制就是10000,對應的數據就是100.00,將接收到的數據解析
解析代碼如下:
for (int i = 0; i < bytesRead; i++)
{
bytesData[i] = Convert.ToByte(serialPort.ReadByte());
strReceive += Convert.ToString(bytesData[i], 16).PadLeft(2, '0').PadRight(3, ' ').ToUpper();
Sdate += Convert.ToString(bytesData[i], 16).PadLeft(2, '0').PadRight(3, ' ').ToUpper();
}
if(bytesData.Length>3)
{
temp = (bytesData[3] * 256 + bytesData[4]) / 100.0;
Temp = temp.ToString();
}
Convert.ToString(bytesData[i], 16).PadLeft(2, '0').PadRight(3, ' ').ToUpper();
1. PadLeft()方法和PadRight()方法時ToString()方法里的子方法,ToString()方法可以調用這兩個方法,PadLeft()方法可以規定字符的寬度並且可以在字符左側填充自定義的數據,PadRight()方法類似;
2. 那個16意思是轉換成16進制數據;
3. 2:表示字符占兩位,寬度為2;"0"表示在寬度為2的字符串里填充數據0,以此達到規定的字符寬度;
4."3"表示在字符的右側填充寬度為3的數據,也就是3位數據,' ':單引號里有空格,表示以空格填充字符String.ToUpper(),String.ToLower()
String.ToUpper(),String.ToLower()
介紹:將字符串大寫/小寫。不改變原字符串,返回大寫/小寫字符串。
