Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
刘韬
/
IonicContaminationTest
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 11670160
由
刘韬
编写于
2024-06-27 15:48:24 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
适配1~16com口
1 个父辈
d098c419
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
33 行增加
和
10 行删除
MachineDll/SerialPortSetting.cs
MachineDll/SerialPortSetting.cs
查看文件 @
1167016
...
...
@@ -25,7 +25,7 @@ namespace MachineDll
public
string
TestConnection
()
{
string
port
=
""
;
for
(
int
i
=
1
;
i
<
9
;
i
++
)
for
(
int
i
=
1
;
i
<
16
;
i
++
)
{
_ItsSerialPort
=
new
SerialPort
(
"COM"
+
i
.
ToString
(),
BautRate
,
Parity
,
DataBits
,
StopBits
);
try
...
...
@@ -140,7 +140,7 @@ namespace MachineDll
}
}
public
double
ReadAIString
(
string
s
)
public
double
ReadAIString
(
string
s
,
double
scaler
=
1
,
ByteType
byteType
=
ByteType
.
Float_32Bit_Little_endian_ByteSwap
)
{
//LOGGER.Debug("serialPortSetting into readAIString");
string
[]
dataString
=
s
.
Split
(
' '
);
...
...
@@ -154,15 +154,34 @@ namespace MachineDll
//LOGGER.Debug("serialPortSetting ,before into sendFuction");
//while (!mb.SendFuction(slaveID, fuctionType, registerAdd, registerQty, ref values)) ;
var
re
=
mb
.
SendFuction
(
slaveID
,
fuctionType
,
registerAdd
,
registerQty
,
ref
values
);
double
dataToFloat
=
0
;
if
(
byteType
==
ByteType
.
Float_32Bit_Little_endian_ByteSwap
)
{
byte
[]
doubleBytes
=
{
values
[
4
],
values
[
3
],
values
[
6
],
values
[
5
]
};
float
dataToFloat
=
BitConverter
.
ToSingle
(
doubleBytes
,
0
);
var
dataConvert
=
CurrentConversion
(
dataToFloat
);
LOGGER
.
Debug
(
$
"IO Return: {re}, org:{dataToFloat},cov:{dataConvert},"
);
dataToFloat
=
BitConverter
.
ToSingle
(
doubleBytes
,
0
);
}
else
if
(
byteType
==
ByteType
.
Double_32Bit_Little_endian_ByteSwap
)
{
byte
[]
doubleBytes
=
{
values
[
4
],
values
[
3
],
values
[
6
],
values
[
5
]
};
dataToFloat
=
BitConverter
.
ToUInt32
(
doubleBytes
,
0
);
}
else
if
(
byteType
==
ByteType
.
Int16
)
{
byte
[]
doubleBytes
=
{
values
[
4
],
values
[
3
]
};
dataToFloat
=
BitConverter
.
ToUInt16
(
doubleBytes
,
0
);
}
dataToFloat
=
dataToFloat
/
scaler
;
//var dataConvert = CurrentConversion(dataToFloat);
if
(!
re
)
LOGGER
.
Debug
(
$
"IO2 Return: {re}, org:{dataToFloat}"
);
////AI1通道
//string data = values[1].ToString("X").PadLeft(4,'0') + "" + values[0].ToString("X").PadLeft(4,'0');
...
...
@@ -170,12 +189,16 @@ namespace MachineDll
////string data = values[3].ToString("X").PadLeft(4, '0') + "" + values[2].ToString("X").PadLeft(4, '0');
//float dataToFloat = StringToFloat(data);
return
data
Conver
t
;
return
data
ToFloa
t
;
//return dataToFloat;
}
private
double
CurrentConversion
(
float
dataToFloat
)
public
enum
ByteType
{
Double_32Bit_Little_endian_ByteSwap
,
Float_32Bit_Little_endian_ByteSwap
,
Int16
}
public
static
double
CurrentConversion
(
double
dataToFloat
)
{
/**
* returnValue = (IO返回数据-4000)/16000*1
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论