c# 以十六进制读取串行
c# read serial in hex
我正在使用 SDS011 激光粉尘传感器,想读取 Windows 表格应用程序中的数据。
我得到十六进制数据。示例:AA C0 D4 04 3A 0A A1 60 1D AB
现在第四对和第三对代表 PM2.5 值,在这个例子中:04D4 -> 1236 -> 123,6 ug/m^3
能否请您帮我写一个读取十六进制数据并计算PM2.5值的代码?
谢谢。
如果数据以字符串形式出现,那么它很简单:
string inputData = "AA C0 D4 04 3A 0A A1 60 1D AB";
var inputDataSplit = inputData.Split(' ');
// Concatenate the fourth and the third string, and convert it to integer with base 16 (hex)
int pmValue = Convert.ToInt32(inputDataSplit[3] + inputDataSplit[2], 16);
// 1236
Console.Write(pmValue);
我正在使用 SDS011 激光粉尘传感器,想读取 Windows 表格应用程序中的数据。 我得到十六进制数据。示例:AA C0 D4 04 3A 0A A1 60 1D AB 现在第四对和第三对代表 PM2.5 值,在这个例子中:04D4 -> 1236 -> 123,6 ug/m^3 能否请您帮我写一个读取十六进制数据并计算PM2.5值的代码? 谢谢。
如果数据以字符串形式出现,那么它很简单:
string inputData = "AA C0 D4 04 3A 0A A1 60 1D AB";
var inputDataSplit = inputData.Split(' ');
// Concatenate the fourth and the third string, and convert it to integer with base 16 (hex)
int pmValue = Convert.ToInt32(inputDataSplit[3] + inputDataSplit[2], 16);
// 1236
Console.Write(pmValue);