From 24a9556ef3d0aa83ccb825d96a248c521cad35ed Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期四, 14 五月 2020 11:18:45 +0800
Subject: [PATCH] 2020-05-14-1-2
---
HDL_ON/DriverLayer/Control_Bus.cs | 131 ++++++++++++++++++++++++++++++++-----------
1 files changed, 98 insertions(+), 33 deletions(-)
diff --git a/HDL_ON/DriverLayer/Control_Bus.cs b/HDL_ON/DriverLayer/Control_Bus.cs
index 7ba3779..b5d7d40 100644
--- a/HDL_ON/DriverLayer/Control_Bus.cs
+++ b/HDL_ON/DriverLayer/Control_Bus.cs
@@ -3,6 +3,8 @@
using HDL_ON.DAL;
using HDL_ON.DAL.Net;
using HDL_ON.Entity;
+using Shared;
+using Shared.Net;
namespace HDL_ON
{
@@ -14,25 +16,6 @@
/// 鎵�鏈夊井淇″涓�绔彛鐨勬帶鍒堕兘浼氭斁鍒拌繖涓泦鍚堥噷
/// </summary>
private static List<Control> controlList = new List<Control>(50);
-
- /// <summary>
- /// 鍙戦�佹暟鎹紝绛夊緟鏈夊弽棣�
- /// </summary>
- /// <returns>The bytes send has return.</returns>
- static byte[] ControlBytesSendHasReturn(Command command, byte subnetID, byte deviceID, byte[] gatewayBytes, int sendCount = 3)
- {
- Control control = new Control();
- control.Send(new Target()
- {
- IPEndPoint = CommonPage.EndPoint,
- Command = command,
- SubnetID = subnetID,
- DeviceID = deviceID,
- AddData = gatewayBytes,
- }, sendCount, true);
-
- return control.UsefulBytes;
- }
/// <summary>
/// 鍙戦�佹暟鎹紝涓嶉渶瑕佺瓑寰呭洖澶�
@@ -50,6 +33,72 @@
}, sendCount, false);
MainPage.Log(command.ToString() + "::" + CommonPage.EndPoint.ToString());
+ }
+ /// <summary>
+ /// 000E 鎼滅储鍥炲
+ /// </summary>
+ /// <param name="usefullBytes"></param>
+ static void ReceiveReadRemark(byte[] usefullBytes)
+ {
+ try
+ {
+ //璐﹀彿娌$櫥褰曚笉鍥炲
+ if (MainPage.LoginUser == null || !MainPage.LoginUser.IsLogin)
+ {
+ return;
+ }
+
+ //if (!isHttpListenerStart)
+ //{
+ // //鏁版嵁鎺ユ敹绔彛娌℃墦寮�锛屼笉鍥炲
+ // return;
+ //}
+
+ var sendStr = MainPage.LoginUser.accountString;
+
+
+ //濡傛灉IP鍦板潃鑾峰彇鎴愬姛 鏄剧ず鏈�鍚庝竴浣�
+ var mAddressBytes = new Shared.Net.NetWiFi().IpAddress.GetAddressBytes();
+ if (mAddressBytes != null && mAddressBytes.Length == 4)
+ {
+ sendStr = (mAddressBytes[3] & 0xFF).ToString() + ":" + sendStr;
+ }
+
+ if (usefullBytes.Length <= 2)
+ {
+ byte[] sendBytes = new byte[20];
+ byte[] b1 = CommonPage.MyEncodingGB2312.GetBytes(sendStr);
+ Array.Copy(b1, 0, sendBytes, 0, 20 < b1.Length ? 20 : b1.Length);
+ Control.ControlBytesSend(Command.ReadRemarkACK, 0xFF, 0xFF, sendBytes, 1);
+
+ }
+ else
+ {
+
+ for (int i = 2, len = usefullBytes.Length; i < len; i++)
+ {
+ if (i % 2 == 0)
+ {
+ if ((usefullBytes[i] & 0xFF) == 0xFC
+ && (usefullBytes[i + 1] & 0xFF) == 0xFC
+ )
+ {
+
+ byte[] sendBytes = new byte[20];
+ byte[] b1 = CommonPage.MyEncodingGB2312.GetBytes(sendStr);
+ //Remote_GroupName = CommonPage.MyEncodingGB2312.GetString (b1);
+ Array.Copy(b1, 0, sendBytes, 0, 20 < b1.Length ? 20 : b1.Length);
+ Control.ControlBytesSend(Command.ReadRemarkACK, 0xFF, 0xFF, sendBytes, 1);
+
+ break;
+ }
+ }
+ }
+
+ }
+
+ }
+ catch { }
}
/// <summary>
@@ -74,7 +123,17 @@
case Command.SetLogicLoopColorACK:
receiveFlag += string.Format("{0},{1},{2}", usefulBytes[0], usefulBytes[1], usefulBytes[2]);
break;
-
+ case Command.ReadLogicLoopColorACK:
+ case Command.ReadACModeACK:
+ case Command.SetACModeACK:
+ case Command.ReadFloorHeatACK:
+ case Command.SetFloorHeatACK:
+ receiveFlag += string.Format("{0}", usefulBytes[0]);
+ break;
+ case Command.ReadRemark:
+ //buspro 璇诲娉ㄥ洖澶�
+ ReceiveReadRemark(usefulBytes);
+ break;
//case Command.YIPanelDeviceInofACK:
// for (int i = 0; i < 4; i++)
// {
@@ -132,8 +191,6 @@
// break;
//case Command.SetCommonACK:
//case Command.InfraredChannelControlACK:
- //case Command.ReadACModeACK:
- //case Command.SetACModeACK:
//case Command.Serverx_FH_CMD_ACK:
//case Command.ReadSensorHistoryACK:
//case Command.SetSensorAutomationTargetLevelEnableACK:
@@ -254,7 +311,6 @@
//case Command.AssignedAddressACK:
//case Command.UpdataCurtainModelRunTimeACK:
//case Command.ReadCurtainStutasACK:
- //case Command.ReadLogicLoopColorACK:
//case Command.ReadPanleTempACK:
//case Command.FreshAirReadACK:
//case Command.FreshAirControlACK:
@@ -460,6 +516,11 @@
switch (target.Command)
{
case Command.SetSingleLight:
+ case Command.ReadLogicLoopColor:
+ case Command.ReadACMode:
+ case Command.SetACMode:
+ case Command.ReadFloorHeat:
+ case Command.SetFloorHeat:
this.sendFlag += string.Format("{0}", target.AddData[0]);
break;
case Command.SetLogicLoopColor:
@@ -496,8 +557,6 @@
// break;
//case Command.SetCommonSwitch:
//case Command.InfraredChannelControl:
- //case Command.ReadACMode:
- //case Command.SetACMode:
//case Command.ReadFoolHeat:
//case Command.SetFoolHeat:
//case Command.Serverx_FH_CMD:
@@ -620,7 +679,6 @@
//case Command.AssignedAddress:
//case Command.UpdataCurtainModelRunTime:
//case Command.ReadCurtainStatus:
- //case Command.ReadLogicLoopColor:
//case Command.ReadPanleTemp:
//case Command.FreshAirRead:
//case Command.FreshAirControl:
@@ -665,14 +723,21 @@
/// <param name="sendCount">閲嶅彂娆℃暟</param>
public void Send(Target target, int sendCount, bool isWait)
{
- Packet = new Packet(target.SendBytes, target.IPEndPoint);
- Packet.HaveSendCount = 3 - sendCount;
-
- ini(target);
-
- if (isWait)
+ try
{
- this.wait();
+ Packet = new Packet(target.SendBytes, target.IPEndPoint);
+ Packet.HaveSendCount = 3 - sendCount;
+
+ ini(target);
+
+ if (isWait)
+ {
+ this.wait();
+ }
+ }
+ catch(Exception ex)
+ {
+ MainPage.Log($"Send bus data error {ex.Message}");
}
}
--
Gitblit v1.8.0