Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
RC1250-AssemblyLine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit dc9b6c0a
由
LN
编写于
2020-07-10 10:54:04 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
io修改,减少读取次数
1 个父辈
505a7838
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
42 行增加
和
28 行删除
source/DeviceLibrary/deviceLibrary/IO/AIOBOX/AIOBOX.cs
source/DeviceLibrary/deviceLibrary/IO/AIOBOX/AIOBOX.cs
查看文件 @
dc9b6c0
...
...
@@ -337,26 +337,26 @@ namespace Asa.IOModule
buff
=
GetReadDI_Command
();
time
=
0
;
}
else
{
if
(
writeTimer
>=
3
)
//连续发送WriteDO3次,强制发送DO
{
buff
=
GetReadDO_Command
();
writeTimer
=
0
;
}
else
{
if
(
_writeDO
.
TryDequeue
(
out
buff
))
{
writeTimer
++;
}
else
{
buff
=
GetReadDO_Command
();
writeTimer
=
0
;
}
}
}
//
else
//
{
//
if (writeTimer >= 3) //连续发送WriteDO3次,强制发送DO
//
{
//
buff = GetReadDO_Command();
//
writeTimer = 0;
//
}
//
else
//
{
//
if (_writeDO.TryDequeue(out buff))
//
{
//
writeTimer++;
//
}
//
else
//
{
//
buff = GetReadDO_Command();
//
writeTimer = 0;
//
}
//
}
//
}
time
+=
SEND_SLEEP
;
}
else
...
...
@@ -383,10 +383,10 @@ namespace Asa.IOModule
}
else
{
if
(
shift
)
buff
=
GetReadDI_Command
();
else
buff
=
GetReadDO_Command
();
//
if (shift)
//
buff = GetReadDI_Command();
//
else
//
buff = GetReadDO_Command();
shift
=
!
shift
;
writeTimer
=
0
;
}
...
...
@@ -580,9 +580,18 @@ namespace Asa.IOModule
LogUtil
.
LOGGER
.
Debug
(
LogName
+
" DI_Changed_Event ["
+
index
+
"] "
+
msg
);
}
DI_Changed_Event
?.
Invoke
(
this
,
staDI
);
}
}
else
if
(
cmd
[
7
]
==
5
)
{
idx
=
Array
.
FindIndex
(
_addressOutput
,
s
=>
s
==
cmd
[
9
]);
if
(
idx
!=
-
1
)
{
Box_Sta
[]
staDO
=
new
Box_Sta
[
_stateDO
.
Length
];
_stateDO
[
idx
]
=
cmd
[
10
]
==
0xFF
?
Box_Sta
.
On
:
Box_Sta
.
Off
;
Array
.
Copy
(
_stateDO
,
staDO
,
staDO
.
Length
);
DO_Changed_Event
?.
Invoke
(
this
,
staDO
);
//System.Threading.Tasks.Task.Run(() => DO_Changed_Event?.Invoke(this, staDO));
}
}
}
catch
(
Exception
ex
)
...
...
@@ -628,14 +637,19 @@ namespace Asa.IOModule
_client
.
SetSocketOption
(
SocketOptionLevel
.
Socket
,
SocketOptionName
.
ReceiveTimeout
,
500
);
_client
.
SetSocketOption
(
SocketOptionLevel
.
Socket
,
SocketOptionName
.
NoDelay
,
1
);
_client
.
Connect
(
IPAddress
.
Parse
(
IP
),
PORT
);
Thread
.
Sleep
(
100
);
//需要等待一会才能获取连接状态
Thread
.
Sleep
(
100
);
//需要等待一会才能获取连接状态
IsConn
=
true
;
log
.
Info
(
LogName
+
"Socket Connect"
);
byte
[]
buff
=
GetReadDI_Command
();
SendToDevice
(
buff
);
buff
=
GetReadDO_Command
();
SendToDevice
(
buff
);
log
.
Info
(
LogName
+
"Socket Connect"
);
}
catch
(
Exception
ex
)
{
IsConn
=
false
;
log
.
Error
(
LogName
+
"Open "
,
ex
);
log
.
Error
(
LogName
+
"Open "
,
ex
);
LogUtil
.
error
(
LogName
+
"Open "
,
ex
);
}
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论