转换来自串行端口的数据

本文关键字:数据 串行端口 转换 | 更新日期: 2023-09-27 18:32:53

我正在做一个硬件接口项目,并使用c sharp在.net上构建它。在此应用程序中,我从超级终端上的串行端口接收数据。数据像魅力一样接收。但问题是它给了我一个无法读取的数据,如下所示

来自超级终端的数据是

D1U1201250000000085865000000S004100417001130034200820202710033000404102000004100759000080000200031004740010500097002250

其含义完整形式如下

Report of Sample no# 85865
WBC = 4.1x103/µL
RBC = 4.17 x106/µL
HGB = 11.3 g/dL
HCT = 34.2 %
MCV = -82.0 fL
MCH = 27.1pg
MCHC = 33.0 g/dL
PLT = + 404 x103/µL
LYM % = 20.0%
MXD % = 4.1%
NEUT % = 75.9%
LYM# 0.8 x103/µL
MXD # 0.2 x103/µL
NEUT # 3.1 x103/µL
RDW = 47.4 fL
PWD = 10.5 fL
MPV = 9.7 fL
P-LCR 22.5 %

我想问一下如何将第一种形式的数据隐藏为 seconf 可读形式。谢谢任何帮助将不胜感激。

转换来自串行端口的数据

看起来像连接在一起的固定大小格式的数字。使用 String.Substring 切成小块,然后根据需要转换为 int 和缩放。

如下所示,假设位置 20 "022030" 处的值需要转换为 22.030:

var fragment = result.substring(20, 6);
var intValue = int.Parse(fragment);
var outputValue = intValue *0.001;