From c44b10e4447e84dbdfa9105edf460ef364a8f2b3 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 30 十一月 2020 19:53:35 +0800
Subject: [PATCH] Merge branch 'master' into WJC
---
HDL_ON/DAL/DriverLayer/Control_Udp.cs | 85 ++++++++++++++++++++++++------------------
1 files changed, 48 insertions(+), 37 deletions(-)
diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
index c04cb5c..3fcae40 100644
--- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs
+++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
@@ -11,15 +11,14 @@
{
public class Control_Udp
{
-
- public Control_Udp()
- {
- MainPage.Log($"control bus udp 琚垱寤猴紝鏃堕棿锛歿DateTime.Now}");
- }
+ //public Control_Udp()
+ //{
+ // MainPage.Log($"control bus udp 琚垱寤猴紝鏃堕棿锛歿DateTime.Now}");
+ //}
/// <summary>
- /// 閫氳ID
+ /// 閫氳绔彛
/// </summary>
- public const int msg_id = 1;
+ public int port = 0;
/// <summary>
/// 鎺у埗澶辫触娆℃暟
@@ -161,11 +160,11 @@
{
case FunctionType.Curtain:
byte curtainState = 0;
- if (function.trait_on_off.value.ToString() == "on")
+ if (function.trait_on_off.curValue.ToString() == "on")
{
curtainState = 1;
}
- else if (function.trait_on_off.value.ToString() == "off")
+ else if (function.trait_on_off.curValue.ToString() == "off")
{
curtainState = 2;
}
@@ -177,7 +176,7 @@
break;
case FunctionType.AC:
var aC = Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(Newtonsoft.Json.JsonConvert.SerializeObject(function));//as AC;
- ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { 3, aC.trait_on_off.value.ToString() == "on" ? (byte)1 : (byte)0, aC.bus_Data.LoopID });
+ ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { 3, aC.trait_on_off.curValue.ToString() == "on" ? (byte)1 : (byte)0, aC.bus_Data.LoopID });
ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { 6, aC.curModeIndex, aC.bus_Data.LoopID });
ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { 5, aC.curFanIndex, aC.bus_Data.LoopID });
byte modeKey = 4;
@@ -199,18 +198,18 @@
modeKey = 2;
break;
}
- ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { modeKey, Convert.ToByte(aC.trait_temp.value), aC.bus_Data.LoopID });
+ ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { modeKey, Convert.ToByte(aC.trait_temp.curValue), aC.bus_Data.LoopID });
break;
case FunctionType.Relay:
case FunctionType.Dimmer:
byte brightness = 0;
- if (function.trait_on_off.value.ToString() == "on")
+ if (function.trait_on_off.curValue.ToString() == "on")
{
- var brightnessTrait = function.function.Find((obj) => obj.name == "brightness");
+ var brightnessTrait = function.function.Find((obj) => obj.key == "brightness");
if (brightnessTrait != null)
{
- brightness = Convert.ToByte(brightnessTrait.value);
+ brightness = Convert.ToByte(brightnessTrait.curValue);
}
}
ControlBytesSend(Command.SetSingleLight, function.bus_Data.SubnetID, function.bus_Data.DeviceID,
@@ -225,10 +224,10 @@
break;
case FunctionType.FloorHeating:
var fh = Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(Newtonsoft.Json.JsonConvert.SerializeObject(function));//as AC;
- var fhModeTempTrait = function.function.Find((obj) => obj.name == "mode");
- if (fhModeTempTrait.value_key.Count == 4)
+ var fhModeTempTrait = function.function.Find((obj) => obj.key == "mode");
+ if (fhModeTempTrait.value.Count == 4)
{
- byte b1 = function.trait_on_off.value.ToString() == "on" ? (byte)1 : (byte)0;
+ byte b1 = function.trait_on_off.curValue.ToString() == "on" ? (byte)1 : (byte)0;
if (fh.workMode > 0)
{
b1 += (byte)(16 + fh.workMode);
@@ -238,7 +237,7 @@
break;
case FunctionType.Socket:
//var s = function as SwitchSocket;
- ControlBytesSend(Command.SetSingleLight, function.bus_Data.SubnetID, function.bus_Data.DeviceID, new byte[] { function.bus_Data.LoopID, function.trait_on_off.value.ToString() == "on" ? (byte)100 : (byte)0 });
+ ControlBytesSend(Command.SetSingleLight, function.bus_Data.SubnetID, function.bus_Data.DeviceID, new byte[] { function.bus_Data.LoopID, function.trait_on_off.curValue.ToString() == "on" ? (byte)100 : (byte)0 });
break;
}
}
@@ -266,7 +265,7 @@
case FunctionType.RGB:
MainPage.Log($"rgb level : {light.brightness}");
byte b = 100;//寮�鍏虫搷浣滀緷鎹畂n_off瀛楁锛屽疄闄呭紑鍏冲�间緷鎹産rightness锛屽綋on_off涓烘墦寮�锛宐rightness涓嶈兘涓�0
- if (light.trait_on_off.value.ToString() == "off")
+ if (light.trait_on_off.curValue.ToString() == "off")
{
b = 0;
}
@@ -284,7 +283,7 @@
break;
case FunctionType.Dimmer:
byte b1 = 100;
- if (light.trait_on_off.value.ToString() == "off")
+ if (light.trait_on_off.curValue.ToString() == "off")
{
b1 = 0;
}
@@ -299,7 +298,7 @@
//DimmerPage.UpdataStates(light);
break;
case FunctionType.Relay:
- ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus_Data.LoopID, light.trait_on_off.value.ToString() == "on" ? (byte)100 : (byte)0, 0, 0 });
+ ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus_Data.LoopID, light.trait_on_off.curValue.ToString() == "on" ? (byte)100 : (byte)0, 0, 0 });
//RelayPage.UpdataState(light);
break;
}
@@ -310,11 +309,11 @@
{
case FunctionType.Curtain:
byte b1 = 0;
- if (curtain.trait_on_off.value.ToString() == "stop")
+ if (curtain.trait_on_off.curValue.ToString() == "stop")
{
b1 = 0;
}
- else if (curtain.trait_on_off.value.ToString() == "on")
+ else if (curtain.trait_on_off.curValue.ToString() == "on")
{
b1 = 1;
}
@@ -328,7 +327,7 @@
case FunctionType.RollingShutter:
//if (commandDictionary.Count > 0)
//{
- if (curtain.trait_on_off.value.ToString() == "stop")
+ if (curtain.trait_on_off.curValue.ToString() == "stop")
{
ControlBytesSend(Command.SetCurtainModelStutas, subnetId, deviceId, new byte[] { curtain.bus_Data.LoopID, 0 });
}
@@ -361,14 +360,14 @@
{
case FunctionType.AC:
var aC = function as AC;
- ControlBytesSend(Command.SetACMode, subnetId, deviceId, new byte[] { aC.bus_Data.LoopID, (byte)aC.curTempType, 32, 32, 32, 32, 32, 0, aC.trait_on_off.value.ToString() == "on" ? (byte)1 : (byte)0, aC.curModeIndex, aC.curFanIndex, Convert.ToByte(aC.trait_temp.value), 0 });
+ ControlBytesSend(Command.SetACMode, subnetId, deviceId, new byte[] { aC.bus_Data.LoopID, (byte)aC.curTempType, 32, 32, 32, 32, 32, 0, aC.trait_on_off.curValue.ToString() == "on" ? (byte)1 : (byte)0, aC.curModeIndex, aC.curFanIndex, Convert.ToByte(aC.trait_temp.curValue), 0 });
//ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { 3, aC.on_off == "on" ? (byte)1 : (byte)0, aC.bus_Data.LoopID });
foreach (var dic in commandDictionary)
{
switch (dic.Key)
{
case "on_off":
- ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { 3, aC.trait_on_off.value.ToString() == "on" ? (byte)1 : (byte)0, aC.bus_Data.LoopID });
+ ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { 3, aC.trait_on_off.curValue.ToString() == "on" ? (byte)1 : (byte)0, aC.bus_Data.LoopID });
break;
case "mode":
ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { 6, aC.curModeIndex, aC.bus_Data.LoopID });
@@ -396,7 +395,7 @@
modeKey = 2;
break;
}
- ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { modeKey, Convert.ToByte(aC.trait_temp.value), aC.bus_Data.LoopID });
+ ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { modeKey, Convert.ToByte(aC.trait_temp.curValue), aC.bus_Data.LoopID });
break;
default:
MainPage.Log($"鍔熻兘鏈敮鎸� : {dic.Key}");
@@ -409,7 +408,7 @@
var fh = function as FloorHeating;
if (fh.modeTemp.Count == 4)
{
- byte b1 = fh.trait_on_off.value.ToString() == "on" ? (byte)1 : (byte)0;
+ byte b1 = fh.trait_on_off.curValue.ToString() == "on" ? (byte)1 : (byte)0;
if (fh.workMode > 0)
{
b1 += (byte)(16 + fh.workMode);
@@ -419,7 +418,7 @@
var dicTempString = "";
commandDictionary.TryGetValue("temp", out dicTempString);
var dicTemp = Convert.ToByte(dicTempString);
- switch (fh.trait_mode.value)
+ switch (fh.trait_mode.curValue)
{
case "day":
fh.modeTemp["day"] = dicTemp;
@@ -445,7 +444,7 @@
{
case FunctionType.Fan:
var fan = function as Fan;
- if (fan.trait_on_off.value.ToString() == "on")
+ if (fan.trait_on_off.curValue.ToString() == "on")
{
ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { fan.bus_Data.LoopID, (byte)fan.openLevel });
}
@@ -460,7 +459,7 @@
{
case FunctionType.Socket:
var s = function as SwitchSocket;
- ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { s.bus_Data.LoopID, s.trait_on_off.value.ToString() == "on" ? (byte)100 : (byte)0 });
+ ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { s.bus_Data.LoopID, s.trait_on_off.curValue.ToString() == "on" ? (byte)100 : (byte)0 });
break;
}
break;
@@ -652,7 +651,7 @@
new System.Threading.Thread(() =>
{
System.Threading.Thread.Sleep(1000);
- UdpSocket._BusSocket.Start();
+ UdpSocket._BusSocket.Start(6000);
controlLostCount = 0;
})
{ IsBackground = true }.Start();
@@ -769,24 +768,36 @@
{
try
{
- var sendJob = new JObject { { "id", msg_id.ToString() }, { "time_stamp", (DateTime.Now.Ticks / 10000).ToString() } };
+ var sendJob = new JObject { { "id", Control.Ins.msg_id.ToString() }, { "time_stamp", (DateTime.Now.Ticks / 100000).ToString() } };
var bodyString = JsonConvert.SerializeObject(sendJob);
- var bodyBytes = Encoding.ASCII.GetBytes(bodyString);
- var sendBytes = A_Protocal_Common.apc.ConvertSendBodyData(CommunicationTopic.SearchLoaclGateway, bodyString);
+
+ var sendBytes = Control.Ins.ConvertSendBodyData(CommunicationTopic.SearchLoaclGateway, bodyString);
//缁勬挱鍙戦��
Packet = new Packet(sendBytes, new System.Net.IPEndPoint(System.Net.IPAddress.Parse("239.0.168.188"), 8585));
Packet.HaveSendCount = 4;//ps锛氭病鏈夐噸鍙戯紝鍚庢湡鏈夋椂闂村彲浠ュ鍔犻噸鍙戝垽鏂�
System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(managerSendCount));
thread.IsBackground = true;
thread.Start(Packet);
-
- wait();
+ //wait();涓嶉渶瑕佺瓑寰�
}
catch (Exception ex)
{
MainPage.Log($"Send bus data error {ex.Message}");
}
}
+ /// <summary>
+ /// 鏈湴udp鎺у埗A鍗忚缃戝叧
+ /// </summary>
+ public void SendLocalHdlLinkData(byte[] sendBytes)
+ {
+ Packet = new Packet(sendBytes, new System.Net.IPEndPoint(System.Net.IPAddress.Parse(Control.Ins.reportIp), 8585));
+ Packet.HaveSendCount = 4;//ps锛氭病鏈夐噸鍙戯紝鍚庢湡鏈夋椂闂村彲浠ュ鍔犻噸鍙戝垽鏂�
+ System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(managerSendCount));
+ thread.IsBackground = true;
+ thread.Start(Packet);
+ //wait();涓嶉渶瑕佺瓑寰�
+ MainPage.Log($"鍙戦�丠dl-Link鏁版嵁锛孖P:{Control.Ins.reportIp}:8585");
+ }
}
--
Gitblit v1.8.0