From ed3bfb7462d44747230437717e8673a5192f833f Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期一, 30 十一月 2020 20:34:51 +0800 Subject: [PATCH] 2020-11-30-2 --- HDL_ON/DriverLayer/Control_Udp_Bus.cs | 299 ++++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 224 insertions(+), 75 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DriverLayer/Control_Udp_Bus.cs similarity index 72% rename from HDL_ON/DAL/DriverLayer/Control_Udp.cs rename to HDL_ON/DriverLayer/Control_Udp_Bus.cs index 3fcae40..27a9243 100644 --- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs +++ b/HDL_ON/DriverLayer/Control_Udp_Bus.cs @@ -1,25 +1,17 @@ 锘縰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.DriverLayer +namespace HDL_ON { - public class Control_Udp + public class Control_Udp_Bus { - //public Control_Udp() - //{ - // MainPage.Log($"control bus udp 琚垱寤猴紝鏃堕棿锛歿DateTime.Now}"); - //} - /// <summary> - /// 閫氳绔彛 - /// </summary> - public int port = 0; - /// <summary> /// 鎺у埗澶辫触娆℃暟 /// </summary> @@ -28,7 +20,7 @@ /// <summary> /// 鎵�鏈夊涓�绔彛鐨勬帶鍒堕兘浼氭斁鍒拌繖涓泦鍚堥噷 /// </summary> - static List<Control_Udp> controlList = new List<Control_Udp>(50); + List<Control_Udp_Bus> controlList = new List<Control_Udp_Bus>(50); public System.Net.IPEndPoint EndPoint { @@ -48,10 +40,11 @@ /// <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(); + var control = new Control_Udp_Bus(); control.Send(new Target() { IPEndPoint = EndPoint , @@ -93,13 +86,13 @@ try { //璐﹀彿娌$櫥褰曚笉鍥炲 - if ( UserInfo.Current == null || ! UserInfo.Current.IsLogin) + if (MainPage.LoginUser == null || !MainPage.LoginUser.IsLogin) { return; } - Control.Ins.OpenTcpServer(); - var sendStr = UserInfo.Current.AccountString; + Control.ins.ChangeCommunicationMode(CommunicationMode.tcp_local_server); + var sendStr = MainPage.LoginUser.accountString; if (usefullBytes.Length == 0) { SendRemark(sendStr); @@ -134,11 +127,14 @@ /// </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(); + var control = new Control_Udp_Bus(); control.Send(new Target() { IPEndPoint = EndPoint, @@ -160,11 +156,11 @@ { case FunctionType.Curtain: byte curtainState = 0; - if (function.trait_on_off.curValue.ToString() == "on") + if (function.trait_on_off.value.ToString() == "on") { curtainState = 1; } - else if (function.trait_on_off.curValue.ToString() == "off") + else if (function.trait_on_off.value.ToString() == "off") { curtainState = 2; } @@ -176,7 +172,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.curValue.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.value.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; @@ -198,18 +194,18 @@ modeKey = 2; break; } - ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { modeKey, Convert.ToByte(aC.trait_temp.curValue), aC.bus_Data.LoopID }); + ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { modeKey, Convert.ToByte(aC.trait_temp.value), aC.bus_Data.LoopID }); break; case FunctionType.Relay: case FunctionType.Dimmer: byte brightness = 0; - if (function.trait_on_off.curValue.ToString() == "on") + if (function.trait_on_off.value.ToString() == "on") { - var brightnessTrait = function.function.Find((obj) => obj.key == "brightness"); + var brightnessTrait = function.function.Find((obj) => obj.name == "brightness"); if (brightnessTrait != null) { - brightness = Convert.ToByte(brightnessTrait.curValue); + brightness = Convert.ToByte(brightnessTrait.value); } } ControlBytesSend(Command.SetSingleLight, function.bus_Data.SubnetID, function.bus_Data.DeviceID, @@ -224,10 +220,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.key == "mode"); - if (fhModeTempTrait.value.Count == 4) + var fhModeTempTrait = function.function.Find((obj) => obj.name == "mode"); + if (fhModeTempTrait.value_key.Count == 4) { - byte b1 = function.trait_on_off.curValue.ToString() == "on" ? (byte)1 : (byte)0; + byte b1 = function.trait_on_off.value.ToString() == "on" ? (byte)1 : (byte)0; if (fh.workMode > 0) { b1 += (byte)(16 + fh.workMode); @@ -237,7 +233,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.curValue.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.value.ToString() == "on" ? (byte)100 : (byte)0 }); break; } } @@ -265,7 +261,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.curValue.ToString() == "off") + if (light.trait_on_off.value.ToString() == "off") { b = 0; } @@ -283,7 +279,7 @@ break; case FunctionType.Dimmer: byte b1 = 100; - if (light.trait_on_off.curValue.ToString() == "off") + if (light.trait_on_off.value.ToString() == "off") { b1 = 0; } @@ -298,7 +294,7 @@ //DimmerPage.UpdataStates(light); break; case FunctionType.Relay: - ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus_Data.LoopID, light.trait_on_off.curValue.ToString() == "on" ? (byte)100 : (byte)0, 0, 0 }); + ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus_Data.LoopID, light.trait_on_off.value.ToString() == "on" ? (byte)100 : (byte)0, 0, 0 }); //RelayPage.UpdataState(light); break; } @@ -309,11 +305,11 @@ { case FunctionType.Curtain: byte b1 = 0; - if (curtain.trait_on_off.curValue.ToString() == "stop") + if (curtain.trait_on_off.value.ToString() == "stop") { b1 = 0; } - else if (curtain.trait_on_off.curValue.ToString() == "on") + else if (curtain.trait_on_off.value.ToString() == "on") { b1 = 1; } @@ -327,7 +323,7 @@ case FunctionType.RollingShutter: //if (commandDictionary.Count > 0) //{ - if (curtain.trait_on_off.curValue.ToString() == "stop") + if (curtain.trait_on_off.value.ToString() == "stop") { ControlBytesSend(Command.SetCurtainModelStutas, subnetId, deviceId, new byte[] { curtain.bus_Data.LoopID, 0 }); } @@ -360,14 +356,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.curValue.ToString() == "on" ? (byte)1 : (byte)0, aC.curModeIndex, aC.curFanIndex, Convert.ToByte(aC.trait_temp.curValue), 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.value.ToString() == "on" ? (byte)1 : (byte)0, aC.curModeIndex, aC.curFanIndex, Convert.ToByte(aC.trait_temp.value), 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.curValue.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.value.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 }); @@ -395,7 +391,7 @@ modeKey = 2; break; } - ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { modeKey, Convert.ToByte(aC.trait_temp.curValue), aC.bus_Data.LoopID }); + ControlBytesSend(Command.InstructionPanelKey, aC.bus_Data.SubnetID, aC.bus_Data.DeviceID, new byte[] { modeKey, Convert.ToByte(aC.trait_temp.value), aC.bus_Data.LoopID }); break; default: MainPage.Log($"鍔熻兘鏈敮鎸� : {dic.Key}"); @@ -408,7 +404,7 @@ var fh = function as FloorHeating; if (fh.modeTemp.Count == 4) { - byte b1 = fh.trait_on_off.curValue.ToString() == "on" ? (byte)1 : (byte)0; + byte b1 = fh.trait_on_off.value.ToString() == "on" ? (byte)1 : (byte)0; if (fh.workMode > 0) { b1 += (byte)(16 + fh.workMode); @@ -418,7 +414,7 @@ var dicTempString = ""; commandDictionary.TryGetValue("temp", out dicTempString); var dicTemp = Convert.ToByte(dicTempString); - switch (fh.trait_mode.curValue) + switch (fh.trait_mode.value) { case "day": fh.modeTemp["day"] = dicTemp; @@ -444,7 +440,7 @@ { case FunctionType.Fan: var fan = function as Fan; - if (fan.trait_on_off.curValue.ToString() == "on") + if (fan.trait_on_off.value.ToString() == "on") { ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { fan.bus_Data.LoopID, (byte)fan.openLevel }); } @@ -459,7 +455,7 @@ { case FunctionType.Socket: var s = function as SwitchSocket; - ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { s.bus_Data.LoopID, s.trait_on_off.curValue.ToString() == "on" ? (byte)100 : (byte)0 }); + ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { s.bus_Data.LoopID, s.trait_on_off.value.ToString() == "on" ? (byte)100 : (byte)0 }); break; } break; @@ -579,6 +575,7 @@ } } + //System.MainPage.WriteLog ("++++++++"+controlList.Count.ToString ()); } controlList.Add(this); } @@ -631,6 +628,7 @@ allDone.WaitOne(); } + /// <summary> /// 璁╁綋鍓嶇嚎绋嬬户缁墽琛� /// </summary> @@ -640,7 +638,8 @@ Packet.HaveSendCount = 4; } - //鏁版嵁鍙戦�佸鐞� + + //鏁版嵁閲嶅彂澶勭悊 void managerSendCount(object o) { add(); @@ -651,7 +650,7 @@ new System.Threading.Thread(() => { System.Threading.Thread.Sleep(1000); - UdpSocket._BusSocket.Start(6000); + UdpSocket._BusSocket.Start(); controlLostCount = 0; }) { IsBackground = true }.Start(); @@ -689,11 +688,8 @@ /// 褰撳墠鏁版嵁鍖� /// </summary> Packet Packet; - /// <summary> - /// 璁板綍鍙戦�佹暟鎹寘 - /// </summary> - /// <param name="target"></param> - private void signPacket(Target target) + + private void ini(Target target) { this.SendFlag = string.Format("{0},{1},{2},", target.SubnetID, target.DeviceID, (int)target.Command + 1); @@ -713,27 +709,196 @@ 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> @@ -744,11 +909,7 @@ Packet = new Packet(target.SendBytes, target.IPEndPoint); Packet.HaveSendCount = 3 - sendCount; - signPacket(target); - - System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(managerSendCount)); - thread.IsBackground = true; - thread.Start(Packet); + ini(target); if (isWait) { @@ -764,39 +925,27 @@ /// <summary> /// 璇诲彇缃戝叧IP /// </summary> - public void SearchLocalGateway() + public void ReadGatewayIP() { try { - 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)); + 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)); 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