From e08a444a9d7acea0cf39f50d22d29179f6a59292 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期二, 01 十二月 2020 09:37:11 +0800 Subject: [PATCH] 2020-12-1 --- HDL_ON/DAL/DriverLayer/Control_Udp.cs | 299 +++++++++++++++-------------------------------------------- 1 files changed, 75 insertions(+), 224 deletions(-) diff --git a/HDL_ON/DriverLayer/Control_Udp_Bus.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs similarity index 72% rename from HDL_ON/DriverLayer/Control_Udp_Bus.cs rename to HDL_ON/DAL/DriverLayer/Control_Udp.cs index 27a9243..3fcae40 100644 --- a/HDL_ON/DriverLayer/Control_Udp_Bus.cs +++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs @@ -1,17 +1,25 @@ 锘縰sing System; using System.Collections.Generic; using System.Text; -using HDL_ON.DAL.Net; using HDL_ON.DriverLayer; using HDL_ON.Entity; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Shared.Net; -namespace HDL_ON +namespace HDL_ON.DriverLayer { - public class Control_Udp_Bus + public class Control_Udp { + //public Control_Udp() + //{ + // MainPage.Log($"control bus udp 琚垱寤猴紝鏃堕棿锛歿DateTime.Now}"); + //} + /// <summary> + /// 閫氳绔彛 + /// </summary> + public int port = 0; + /// <summary> /// 鎺у埗澶辫触娆℃暟 /// </summary> @@ -20,7 +28,7 @@ /// <summary> /// 鎵�鏈夊涓�绔彛鐨勬帶鍒堕兘浼氭斁鍒拌繖涓泦鍚堥噷 /// </summary> - List<Control_Udp_Bus> controlList = new List<Control_Udp_Bus>(50); + static List<Control_Udp> controlList = new List<Control_Udp>(50); public System.Net.IPEndPoint EndPoint { @@ -40,11 +48,10 @@ /// <summary> /// 鍙戦�佹暟鎹紝涓嶉渶瑕佺瓑寰呭洖澶� - /// ps:鍏佽涓存椂鍏紑锛屼粎渚泃v鍙戦�乥us鍛戒护浣跨敤锛屽悗鏈熼渶瑕佹洿鏂板埌A鍗忚鏁版嵁鏍煎紡鎺у埗 /// </summary> public void ControlBytesSend(Command command, byte subnetID, byte deviceID, byte[] gatewayBytes, int sendCount = 3) { - var control = new Control_Udp_Bus(); + var control = new Control_Udp(); control.Send(new Target() { IPEndPoint = EndPoint , @@ -86,13 +93,13 @@ try { //璐﹀彿娌$櫥褰曚笉鍥炲 - if (MainPage.LoginUser == null || !MainPage.LoginUser.IsLogin) + if ( UserInfo.Current == null || ! UserInfo.Current.IsLogin) { return; } - Control.ins.ChangeCommunicationMode(CommunicationMode.tcp_local_server); - var sendStr = MainPage.LoginUser.accountString; + Control.Ins.OpenTcpServer(); + var sendStr = UserInfo.Current.AccountString; if (usefullBytes.Length == 0) { SendRemark(sendStr); @@ -127,14 +134,11 @@ /// </summary> void SendRemark(string sendStr) { - //if (System.Globalization.CultureInfo.InstalledUICulture.EnglishName.ToUpper().StartsWith("CZECH")) - // Encoding.GetEncoding(1250); - byte[] sendBytes = new byte[20]; byte[] b1 = Encoding.GetEncoding("gb2312").GetBytes(sendStr); Array.Copy(b1, 0, sendBytes, 0, 20 < b1.Length ? 20 : b1.Length); - var control = new Control_Udp_Bus(); + var control = new Control_Udp(); control.Send(new Target() { IPEndPoint = EndPoint, @@ -156,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; } @@ -172,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; @@ -194,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, @@ -220,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); @@ -233,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; } } @@ -261,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; } @@ -279,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; } @@ -294,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; } @@ -305,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; } @@ -323,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 }); } @@ -356,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 }); @@ -391,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}"); @@ -404,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); @@ -414,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; @@ -440,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 }); } @@ -455,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; @@ -575,7 +579,6 @@ } } - //System.MainPage.WriteLog ("++++++++"+controlList.Count.ToString ()); } controlList.Add(this); } @@ -628,7 +631,6 @@ allDone.WaitOne(); } - /// <summary> /// 璁╁綋鍓嶇嚎绋嬬户缁墽琛� /// </summary> @@ -638,8 +640,7 @@ Packet.HaveSendCount = 4; } - - //鏁版嵁閲嶅彂澶勭悊 + //鏁版嵁鍙戦�佸鐞� void managerSendCount(object o) { add(); @@ -650,7 +651,7 @@ new System.Threading.Thread(() => { System.Threading.Thread.Sleep(1000); - UdpSocket._BusSocket.Start(); + UdpSocket._BusSocket.Start(6000); controlLostCount = 0; }) { IsBackground = true }.Start(); @@ -688,8 +689,11 @@ /// 褰撳墠鏁版嵁鍖� /// </summary> Packet Packet; - - private void ini(Target target) + /// <summary> + /// 璁板綍鍙戦�佹暟鎹寘 + /// </summary> + /// <param name="target"></param> + private void signPacket(Target target) { this.SendFlag = string.Format("{0},{1},{2},", target.SubnetID, target.DeviceID, (int)target.Command + 1); @@ -709,196 +713,27 @@ case Command.ReadLightAllLoopBrightness: this.SendFlag += ""; break; - //case Command.YIPanelDeviceInof: - // for (int i = 0; i < 4; i++) - // { - // this.sendFlag += string.Format("{0}", target.AddData[i]); - // } - // break; - //case Command.ReadDoorLockSceneObj: - // this.SendFlag += string.Format("{0},{1},{2},{3},{4}", target.AddData[0], target.AddData[1], target.AddData[2], target.AddData[3], target.AddData[4]); - // break; - //case Command.ReadDoorLockClock: - //case Command.CreatConnection: - // this.SendFlag += string.Format("{0}", target.AddData[0]); - // break; - //case Command.ReadDoorLockUseRemark: - //case Command.ReadSensorPushMessage: - //case Command.SetSensorPushMessage: - //case Command.SetSensorScence: - //case Command.ReadAnalog: - // this.sendFlag += string.Format("{0},{1},{2}", target.AddData[0], target.AddData[1], target.AddData[2]); - // break; - //case Command.ReadSensorScence: - // this.sendFlag += string.Format("{0},{1},{2}", target.AddData[0], target.AddData[1], target.AddData[2]); - // break; - //case Command.SendRemoteInfoToServer: - // for (int i = 40; i < 48; i++) - // { - // this.sendFlag += string.Format("{0}", target.AddData[i]); - // } - // break; - //case Command.SetCommonSwitch: - //case Command.InfraredChannelControl: - //case Command.ReadFoolHeat: - //case Command.SetFoolHeat: - //case Command.Serverx_FH_CMD: - //case Command.SetArm: - //case Command.ReadArm: - //case Command.ReadSensorHistory: - //case Command.SetSensorAutomationTargetLevelEnable: - //case Command.ReadSensorAutomationLevelTargetEnable: - // this.SendFlag += string.Format("{0}", target.AddData[0]); - // break; - //case Command.ReadDeviceModul: - //case Command.ReadSecurityStatus: - //case Command.ReadHornTargetState: case Command.ReadGateway: this.SendFlag = string.Format("{0},{1}", target.AddData[0], target.AddData[1]); break; - //case Command.SetScene: - //case Command.SetSeries: - //case Command.SetHotelCurtain: - //case Command.ReadAnalogValue: - //case Command.SetSensorPushValues: - //case Command.ReadSensorPushValues: - // this.SendFlag += string.Format("{0},{1}", target.AddData[0], target.AddData[1]); - // break; - ////case Command.ReadOnePortWirelessFROtherInfo: - //case Command.UpdataRemake: - //case Command.WriteManageWirelessNet: - //case Command.UpdataLightDimmingTheLargestLevel: - //case Command.UpdataLightDimmingMaximumOrMinimum: - //case Command.ReadGateWayModelInfo: - //case Command.ReadGatewayServerIP: - //case Command.SetGateWayModelInfo: - //case Command.SetGateWayModelInternetInfo: - //case Command.ReadDeviceMac: - //case Command.SetDeviceSubnetID: - //case Command.PositioningEquipment: - //case Command.PositioningPanel: - //case Command.CheckConfigSuccess: - //case Command.GotoConfigMode: - //case Command.ReadACPanel: - //case Command.SetACPanel: - //case Command.ReadTerrestriaHeatRemark: - //case Command.UpdateGatewayIp: - //case Command.ReadWirelessPanelMode: - //case Command.ReadDrycontactMode: - //case Command.ReadACFloorHeatingSettingEquipment: - //case Command.SetACFloorHeatingSettingEquipment: - //case Command.Read43FloorHeatingSettingEquipment: - //case Command.Set43FloorHeatingSettingEquipment: - //case Command.READ_AIR_ALL_Parameter: - //case Command.Set_AIR_ALL_Parameter: - //case Command.ReadFloorHeatProbe: - //case Command.ControlMusicModel: - //case Command.ReadButtonKeyEnable: - //case Command.UpdateEquipmentLoopRemake: - //case Command.SetGateway: - //case Command.ReadMusicPanelSetting: - //case Command.ReadMusicPanelEnable: - //case Command.SetMusicPanelEnable: - //case Command.SetMusicPanelSetting: - //case Command.ReadGatewayProgrammingMode: - //case Command.RED_HSFH_TOTAL: - //case Command.RED_HSFH_INFORMATION: - //case Command.RED_HSRM_TOTAL: - //case Command.RED_HSRM_INFORMATION: - //case Command.CLEAR_SYSTEM_HISTORY: - //case Command.SetSensorTargetRemark: - //case Command.ReadSensorAutomationEnableList: - //case Command.SetSensorAutomationEnableList: - //case Command.SetSensorAutomationListID: - //case Command.ReadSensorAutomationListID: - //case Command.SetSensorAutomationName: - //case Command.ReadSensorAutomationName: - //case Command.Set_Floor_Heat_State: - //case Command.Read_Floor_Heat_State: - //case Command.Read_Air_Condition_Set: - //case Command.UpdateHornLoopRemake: - //case Command.ReadHornLoopCount: - //case Command.ReadPanelTempType: - // this.SendFlag += ""; - // break; - //case Command.ControlMusicModel2: - // for (int i = 1; i < target.AddData.Length; i++) - // { - // if (target.AddData[i + 1] == 0x0D) - // { - // break; - // } - // this.sendFlag += string.Format("{0},", target.AddData[i]); - // } - // break; - //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.SetDeviceLoopInfo: - //case Command.InfraredControl: - //case Command.SetSecurityByPass: - //case Command.SetSensorAutomationDateTimeCycle: - //case Command.ReadSensorAutomationDateTimeCycle: - // this.sendFlag += string.Format("{0},{1},{2}", target.AddData[0], target.AddData[1], target.AddData[2]); - // break; - //case Command.ReadWirelessPanelButtonKey: - //case Command.WriteWirelessPanelButtonKey: - //case Command.ReadDryContactStatus: - //case Command.SetCurtainModelStutas: - //case Command.DownloadInfrared: - //case Command.UpLoadInfrared: case Command.InstructionPanelKey: case Command.ReadInstructionPanelKey: - //case Command.ReadSensorTargetRemark: - //case Command.SetHornTargetState: this.sendFlag += string.Format("{0},{1}", target.AddData[0], target.AddData[1]); break; - //case Command.AssignedAddress: - //case Command.UpdataCurtainModelRunTime: - //case Command.ReadCurtainStatus: - //case Command.ReadPanleTemp: - //case Command.FreshAirRead: - //case Command.FreshAirControl: - //case Command.Set_Air_State_New: - //case Command.ReadHornTargetEnable: - //case Command.SetHornTargetEnable: - //case Command.ReadHornLoopAlarm: - //case Command.SetHornPush: - //case Command.ReadHornPush: - //case Command.ReadHornHistory: - //case Command.ReadHornLoopsStatus: - // this.sendFlag += string.Format("{0}", target.AddData[0]); - // break; - //case Command.RemoteFirst: - // for (int i = 0; i < 28; i++) - // { - // this.sendFlag += string.Format("{0}", target.AddData[i]); - // } - // break; - //case Command.RemoteSecoud: - // for (int i = 0; i < 7; i++) - // { - // this.sendFlag += string.Format("{0}", target.AddData[i]); - // } - // break; default: - //return; break; } - System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(managerSendCount)); - thread.IsBackground = true; - thread.Start(Packet); } /// <summary> - /// 鍙戦�丅us鏁版嵁锛屽彂閫佷簡涓嶉渶瑕佺瓑寰� + /// 鍙戦�佹暟鎹� /// </summary> /// <param name="target">鍙戦�佸璞�</param> /// <param name="sendCount">閲嶅彂娆℃暟</param> @@ -909,7 +744,11 @@ Packet = new Packet(target.SendBytes, target.IPEndPoint); Packet.HaveSendCount = 3 - sendCount; - ini(target); + signPacket(target); + + System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(managerSendCount)); + thread.IsBackground = true; + thread.Start(Packet); if (isWait) { @@ -925,28 +764,40 @@ /// <summary> /// 璇诲彇缃戝叧IP /// </summary> - public void ReadGatewayIP() + public void SearchLocalGateway() { try { - var sendJob = new JObject { - {"type","device" },{"from_oid","020101" },{"to_oid",null },{"time_stamp","46A3B99F" },{"command","search"} - }; - var SearchGateway = JsonConvert.SerializeObject(sendJob); - var SearchGatewayPayload = Encoding.ASCII.GetBytes(SearchGateway); - Packet = new Packet(SearchGatewayPayload, new System.Net.IPEndPoint(System.Net.IPAddress.Parse("239.0.168.188"), 8585)); + var sendJob = new JObject { { "id", Control.Ins.msg_id.ToString() }, { "time_stamp", (DateTime.Now.Ticks / 100000).ToString() } }; + var bodyString = JsonConvert.SerializeObject(sendJob); + + 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