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/Packet.cs | 115 +++++++++++++++++++++++++++++++++------------------------
1 files changed, 67 insertions(+), 48 deletions(-)
diff --git a/HDL_ON/DriverLayer/Packet.cs b/HDL_ON/DAL/DriverLayer/Packet.cs
similarity index 87%
rename from HDL_ON/DriverLayer/Packet.cs
rename to HDL_ON/DAL/DriverLayer/Packet.cs
index d957a86..6fce368 100644
--- a/HDL_ON/DriverLayer/Packet.cs
+++ b/HDL_ON/DAL/DriverLayer/Packet.cs
@@ -5,10 +5,10 @@
using HDL_ON.UI;
using Shared;
-namespace HDL_ON
+namespace HDL_ON.DriverLayer
{
/// <summary>
- /// bus鎺у埗鏁版嵁鍖�
+ /// bus鏁版嵁鍖�
/// </summary>
public class Packet
{
@@ -54,12 +54,7 @@
public virtual void Manager()
{
try
- {
- //濡傛灉褰撳墠閫氳鏂瑰紡涓嶆槸鏈湴bus udp鍒欓��鍑�
- if(DriverLayer.Control.ins.communicationMode == DriverLayer.CommunicationMode.local_BusUdp)
- {
- return;
- }
+ {
//瀵逛簬鎿嶄綔鏁版嵁搴撶殑鏃堕棿姣旇緝闀跨殑锛屽彲浠ュ垱寤哄彟涓�涓嚎绋嬪鐞�
if (!"HDLMIRACLE".Equals(Encoding.ASCII.GetString(Bytes, 4, 10)))
{
@@ -78,7 +73,7 @@
byte targetDeviceID = this.Bytes[24];
//涓嶆槸瑕佹帴鏀剁殑鎸囦护灏辫繑鍥�
- if (!((targetSubnetID == 252 && targetDeviceID == 252) || (targetSubnetID == 0xff && targetDeviceID == 0xff)))
+ if (!((targetSubnetID == 0 && targetDeviceID == 252) || (targetSubnetID == 0xff && targetDeviceID == 0xff)))
{
return;
}
@@ -129,17 +124,19 @@
{
if (updataObj.functionType != FunctionType.RGB)
{
- if (updataObj.trait_on_off.value.ToString() == "on")
+ updataObj.trait_on_off.curValue = receiveBytes[2] > 0 ? "on" : "off";
+ if (updataObj.trait_on_off.curValue.ToString() == "on")
{
- if (updataObj.functionType == FunctionType.Fan)
+ switch (updataObj.functionType)
{
- (updataObj as Fan).openLevel = receiveBytes[2];
- updataObj.lastState = Language.StringByID(StringId.Level) + " : " + receiveBytes[2];
- }
- else
- {
- (updataObj as Light).brightness = receiveBytes[2];
- updataObj.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[2] + "%";
+ case FunctionType.Fan:
+ (updataObj as Fan).openLevel = receiveBytes[2];
+ updataObj.lastState = Language.StringByID(StringId.Level) + " : " + receiveBytes[2];
+ break;
+ case FunctionType.Dimmer:
+ (updataObj as Light).brightness = receiveBytes[2];
+ updataObj.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[2] + "%";
+ break;
}
}
HomePage.UpdataFunctionStates(updataObj);
@@ -171,8 +168,8 @@
{
if (light.functionType != FunctionType.RGB)
{
- light.trait_on_off.value = receiveBytes[light.bus_Data.LoopID] == 0 ? "off" : "on";
- if (light.trait_on_off.value.ToString() == "on")
+ light.trait_on_off.curValue = receiveBytes[light.bus_Data.LoopID] == 0 ? "off" : "on";
+ if (light.trait_on_off.curValue.ToString() == "on")
{
light.brightness = receiveBytes[2];
light.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[2] + "%";
@@ -198,8 +195,8 @@
if (e != null)
{
var fan = e as Fan;
- fan.trait_on_off.value = receiveBytes[2] == 0 ? "off" : "on";
- if (fan.trait_on_off.value.ToString() == "on")
+ fan.trait_on_off.curValue = receiveBytes[2] == 0 ? "off" : "on";
+ if (fan.trait_on_off.curValue.ToString() == "on")
{
fan.openLevel = receiveBytes[2];
fan.lastState = Language.StringByID(StringId.Level) + " : " + receiveBytes[2];
@@ -229,7 +226,7 @@
{
if (rgb.functionType == FunctionType.RGB)
{
- rgb.trait_on_off.value = receiveBytes[1] > 0 ? "on" : "off";
+ rgb.trait_on_off.curValue = receiveBytes[1] > 0 ? "on" : "off";
if (receiveBytes[1] > 0)
{
rgb.brightness = receiveBytes[1];
@@ -258,11 +255,11 @@
{
if (receiveBytes[1] > 1)
{
- curtain.trait_on_off.value = "on";
+ curtain.trait_on_off.curValue = "on";
}
else
{
- curtain.trait_on_off.value = "off";
+ curtain.trait_on_off.curValue = "off";
}
curtain.percent = receiveBytes[1];
curtain.lastState = Language.StringByID(StringId.Open) + curtain.percent + "%";
@@ -274,14 +271,14 @@
switch (receiveBytes[1])
{
case 0:
- curtain.trait_on_off.value = "stop";
+ curtain.trait_on_off.curValue = "stop";
break;
case 1:
- curtain.trait_on_off.value = "on";
+ curtain.trait_on_off.curValue = "on";
curtain.lastState = Language.StringByID(StringId.Open);
break;
case 2:
- curtain.trait_on_off.value = "off";
+ curtain.trait_on_off.curValue = "off";
curtain.lastState = Language.StringByID(StringId.Close);
break;
}
@@ -313,12 +310,12 @@
{
ac.curTempType = receiveBytes[1];
ac.indoorTemp = receiveBytes[2];
- ac.trait_on_off.value = receiveBytes[8] == 1 ? "on" : "off";
+ ac.trait_on_off.curValue = receiveBytes[8] == 1 ? "on" : "off";
ac.curModeIndex = receiveBytes[9];
ac.curFanIndex = receiveBytes[10];
- ac.trait_temp.value = receiveBytes[11];
+ ac.trait_temp.curValue = receiveBytes[11];
ac.lastState = "";
- switch (ac.trait_mode.value.ToString())
+ switch (ac.trait_mode.curValue.ToString())
{
case "cool":
ac.lastState = Language.StringByID(StringId.Cool);
@@ -336,7 +333,7 @@
ac.lastState = Language.StringByID(StringId.AirSupply);
break;
}
- switch (ac.trait_fan.value.ToString())
+ switch (ac.trait_fan.curValue.ToString())
{
case "high":
ac.lastState += " " + Language.StringByID(StringId.HighWindSpeed);
@@ -351,7 +348,7 @@
ac.lastState += " " + Language.StringByID(StringId.Auto);
break;
}
- ac.lastState += " " + ac.trait_temp.value + ac.tempUnitString;
+ ac.lastState += " " + ac.trait_temp.curValue + ac.tempUnitString;
RoomPage.UpdataStates(ac);
FunctionPage.UpdataStates(ac);
HomePage.UpdataFunctionStates(ac);
@@ -367,7 +364,7 @@
if (fh.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0])
{
fh.curTempType = receiveBytes[2];
- fh.trait_on_off.value = receiveBytes[1] % 2 == 0 ? "off" : "on";
+ fh.trait_on_off.curValue = receiveBytes[1] % 2 == 0 ? "off" : "on";
fh.curModeIndex = receiveBytes[3];
if (fh.modeTemp.ContainsKey("normal"))
{
@@ -402,39 +399,39 @@
fh.modeTemp.Add("away", receiveBytes[7]);
}
- switch (fh.trait_mode.value)
+ switch (fh.trait_mode.curValue)
{
case "normal":
fh.lastState = Language.StringByID(StringId.Normal);
- fh.trait_temp.value = receiveBytes[4];
+ fh.trait_temp.curValue = receiveBytes[4];
break;
case "day":
fh.lastState = Language.StringByID(StringId.Day);
- fh.trait_temp.value = receiveBytes[5];
+ fh.trait_temp.curValue = receiveBytes[5];
break;
case "night":
fh.lastState = Language.StringByID(StringId.Night);
- fh.trait_temp.value = receiveBytes[6];
+ fh.trait_temp.curValue = receiveBytes[6];
break;
case "timer":
fh.lastState = Language.StringByID(StringId.Auto);
if (receiveBytes[8] == 0)
{
fh.timeFlag = 0;
- fh.trait_temp.value = receiveBytes[5];
+ fh.trait_temp.curValue = receiveBytes[5];
}
else
{
fh.timeFlag = 1;
- fh.trait_temp.value = receiveBytes[6];
+ fh.trait_temp.curValue = receiveBytes[6];
}
break;
case "away":
- fh.trait_temp.value = receiveBytes[7];
+ fh.trait_temp.curValue = receiveBytes[7];
fh.lastState = Language.StringByID(StringId.Away);
break;
}
- fh.lastState += " " + fh.trait_temp.value + fh.tempUnitString;
+ fh.lastState += " " + fh.trait_temp.curValue + fh.tempUnitString;
RoomPage.UpdataStates(fh);
FunctionPage.UpdataStates(fh);
HomePage.UpdataFunctionStates(fh);
@@ -534,13 +531,13 @@
switch (receiveBytes[0])
{
case 3://
- ac.trait_on_off.value = receiveBytes[1] == 1 ? "on" : "off";
+ ac.trait_on_off.curValue = receiveBytes[1] == 1 ? "on" : "off";
break;
case 4:
case 7:
case 8:
case 19:
- ac.trait_temp.value = receiveBytes[1];
+ ac.trait_temp.curValue = receiveBytes[1];
break;
case 5:
ac.curFanIndex = receiveBytes[1];
@@ -551,7 +548,7 @@
}
ac.lastState = "";
- ac.lastState += " " + ac.trait_temp.value + ac.tempUnitString;
+ ac.lastState += " " + ac.trait_temp.curValue + ac.tempUnitString;
RoomPage.UpdataStates(ac);
FunctionPage.UpdataStates(ac);
HomePage.UpdataFunctionStates(ac);
@@ -571,6 +568,15 @@
}
}
break;
+ case Command.ReadGatewayACK:
+ var mac = ByteToHex16(receiveBytes[5]) + ByteToHex16(receiveBytes[6]) + ByteToHex16(receiveBytes[7]) + ByteToHex16(receiveBytes[8]) + ByteToHex16(receiveBytes[9]) + ByteToHex16(receiveBytes[10]) + ByteToHex16(receiveBytes[11]) + ByteToHex16(receiveBytes[12]);
+ var Name = Encoding.GetEncoding("gb2312").GetString(receiveBytes, 13, 20).Trim('\0'); ;
+ MainPage.Log($"name : {Name} ; mac : {mac}");
+ if (DB_ResidenceData.residenceData.residenceGatewayMAC == mac)
+ {
+ DriverLayer.Control.Ins.GatewayOnline = true;
+ }
+ break;
}
}
catch (Exception ex)
@@ -578,7 +584,20 @@
MainPage.Log($"Bus Rev Erorr : {ex.Message}");
}
}
-
+ /// <summary>
+ /// byte杞�16杩涘埗瀛楃涓�
+ /// </summary>
+ /// <param name="b"></param>
+ /// <returns></returns>
+ string ByteToHex16(byte b)
+ {
+ string s = Convert.ToString(b, 16).ToUpper();
+ if (s.Length <= 1)
+ {
+ return "0" + s;
+ }
+ return s;
+ }
/// <summary>
/// 澶勭悊鎺ユ敹鍥炴潵鐨勬暟鎹�
@@ -623,12 +642,12 @@
receiveFlag += string.Format("{0},{1}", usefulBytes[0], usefulBytes[1]);
break;
case Command.ReadRemark:
- DriverLayer.Control.ins.myUdp.ReceiveReadRemark(usefulBytes);
+ DriverLayer.Control.Ins.myUdp.ReceiveReadRemark(usefulBytes);
break;
default:
break;
}
- DriverLayer.Control.ins.myUdp.ReceiveRepeatManager(receiveFlag);
+ DriverLayer.Control.Ins.myUdp.ReceiveRepeatManager(receiveFlag);
}
catch (Exception ex)
{
--
Gitblit v1.8.0