From ec8c4e511c84c33bc6475834c29f774c4c4af74d Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 05 八月 2020 16:22:40 +0800
Subject: [PATCH] 2020-08-05-1
---
HDL_ON/DriverLayer/Control_Bus.cs | 48 +++++++++++++++++++++++++++++++++---------------
1 files changed, 33 insertions(+), 15 deletions(-)
diff --git a/HDL_ON/DriverLayer/Control_Bus.cs b/HDL_ON/DriverLayer/Control_Bus.cs
index dd8490b..0579d89 100644
--- a/HDL_ON/DriverLayer/Control_Bus.cs
+++ b/HDL_ON/DriverLayer/Control_Bus.cs
@@ -15,6 +15,10 @@
public partial class Control
{
public DateTime LatestDateTime = DateTime.Now;
+ /// <summary>
+ /// 鎺у埗澶辫触娆℃暟
+ /// </summary>
+ public static int controlLostCount = 0;
/// <summary>
/// 鎵�鏈夊井淇″涓�绔彛鐨勬帶鍒堕兘浼氭斁鍒拌繖涓泦鍚堥噷
@@ -319,14 +323,14 @@
//case Command.Remote3thACK:
// receiveFlag = string.Format("{0},", (int)command);
// break;
- //case Command.ReadDeviceLoopInfoACK:
- // if (usefulBytes[0] == 1)
- // {
- // receiveFlag += string.Format("{0},{1}", usefulBytes[0], usefulBytes[2]); ;
- // }
- // else
- // receiveFlag += string.Format("{0},{1},{2}", usefulBytes[0], usefulBytes[1], usefulBytes[2]);
- // break;
+ case Command.ReadDeviceLoopInfoACK:
+ if (usefulBytes[0] == 1)
+ {
+ receiveFlag += string.Format("{0},{1}", usefulBytes[0], usefulBytes[2]); ;
+ }
+ else
+ receiveFlag += string.Format("{0},{1},{2}", usefulBytes[0], usefulBytes[1], usefulBytes[2]);
+ break;
//case Command.SetDeviceLoopInfoACK:
//case Command.InfraredControlACK:
//case Command.SetSecurityByPassACK:
@@ -502,16 +506,30 @@
鈥� }
else
{
+ //Bus socket鏃犳硶鎺у埗锛岄噸鍚満鍒�
+ if (controlLostCount > 10)
+ {
+ BusSocket.Stop();
+ new System.Threading.Thread(() =>
+ {
+ System.Threading.Thread.Sleep(1000);
+ BusSocket.Start(6000);
+ controlLostCount = 0;
+ })
+ { IsBackground = true }.Start();
+ }
+
try
{
MainPage.Log("鍙戦�佹暟鎹�:" + SendFlag);
BusSocket.AsyncBeginSend(Packet);
Packet.HaveSendCount--;
+ controlLostCount++;
//杩欓噷鏄噸鍙戜袱娆�
while (Packet.HaveSendCount < 3)
{
- if (Packet.FlagDateTime.AddMilliseconds(1000).Ticks <= System.DateTime.Now.Ticks)
+ if (Packet.FlagDateTime.AddMilliseconds(1000).Ticks <= DateTime.Now.Ticks)
{
MainPage.Log("閲嶅彂鏁版嵁:" + SendFlag);
BusSocket.AsyncBeginSend(Packet);
@@ -677,12 +695,12 @@
//case Command.Remote3th:
// this.SendFlag = string.Format("{0},", (int)target.Command + 1);
// break;
- //case Command.ReadDeviceLoopInfo:
- // if (target.AddData[0] == 1)//鐗规畩澶勭悊鐏厜绫伙紝DMX妯″潡姣忎竴涓洖璺笉鍥哄畾灏忕被锛屾牴鎹叿浣撹缃潵鍥炲
- // this.sendFlag += string.Format("{0},{1}", target.AddData[0], target.AddData[2]);
- // else
- // this.sendFlag += string.Format("{0},{1},{2}", target.AddData[0], target.AddData[1], target.AddData[2]);
- // break;
+ case Command.ReadDeviceLoopInfo:
+ if (target.AddData[0] == 1)//鐗规畩澶勭悊鐏厜绫伙紝DMX妯″潡姣忎竴涓洖璺笉鍥哄畾灏忕被锛屾牴鎹叿浣撹缃潵鍥炲
+ this.sendFlag += string.Format("{0},{1}", target.AddData[0], target.AddData[2]);
+ else
+ this.sendFlag += string.Format("{0},{1},{2}", target.AddData[0], target.AddData[1], target.AddData[2]);
+ break;
//case Command.SetDeviceLoopInfo:
//case Command.InfraredControl:
//case Command.SetSecurityByPass:
--
Gitblit v1.8.0