| | |
| | | case Command.UpdataLightDimmingTheLargestLevelACK: |
| | | case Command.UpdataLightDimmingMaximumOrMinimumACK: |
| | | case Command.WriteManageWirelessNetACK: |
| | | //**********新增mqtt上位机协议********** |
| | | case Command.ReadGateWayURLACK: |
| | | case Command.SetGateWayURLACK: |
| | | case Command.ReadGateWayClientIDUsernamePasswordACK: |
| | | case Command.SetGateWayClientIDUsernamePasswordACK: |
| | | case Command.ReadGateWayAESEncryptionACK: |
| | | case Command.SetGateWayAESEncryptionACK: |
| | | case Command.ReadGateWayTopicACK: |
| | | case Command.SetGateWayTopicACK: |
| | | case Command.ReadGateWayAdminInfoACK: |
| | | case Command.SetGateWayAdminInfoACK: |
| | | //************************************ |
| | | case Command.ReadGateWayModelInfoACK: |
| | | case Command.ReadGatewayServerIPACK: |
| | | case Command.SetGateWayModelInfoACK: |
| | |
| | | void managerSendCount (object o) |
| | | { |
| | | add (); |
| | | try { |
| | | System.Console.WriteLine ("发送数据:" + SendFlag); |
| | | BusSocket.AsyncBeginSend (Packet); |
| | | if (Shared.SimpleControl.CommonPage.IsRemote && !isLocal) { |
| | | System.Console.WriteLine ("远程发送数据:" + SendFlag); |
| | | SmartHome.MqttCommon.MqttRemoteSend (Packet.Bytes); |
| | | Packet.FlagDateTime = DateTime.Now; |
| | | Packet.HaveSendCount--; |
| | | |
| | | //这里是重发两次 |
| | | while (Packet.HaveSendCount < 3) { |
| | | if (Packet.FlagDateTime.AddMilliseconds (1000).Ticks <= System.DateTime.Now.Ticks) { |
| | | //System.Console.WriteLine ("重发数据:" + SendFlag); |
| | | BusSocket.AsyncBeginSend (Packet); |
| | | SmartHome.MqttCommon.MqttRemoteSend (Packet.Bytes); |
| | | System.Console.WriteLine ("重发远程发送数据:" + SendFlag); |
| | | Packet.FlagDateTime = DateTime.Now; |
| | | Packet.HaveSendCount++; |
| | | } |
| | | System.Threading.Thread.Sleep (100); |
| | | } |
| | | }
allDone.Set ();
} else { |
| | | try { |
| | | System.Console.WriteLine ("发送数据:" + SendFlag); |
| | | BusSocket.AsyncBeginSend (Packet); |
| | | Packet.HaveSendCount--; |
| | | |
| | | } catch (Exception ex) { |
| | | Console.WriteLine ("managerSendCount:" + ex.ToString ()); |
| | | } finally { |
| | | allDone.Set (); |
| | | if (Packet.HaveSendCount == 3 && IsCanShowTip) { |
| | | //MainPage.AddTip (Language.StringByID (SimpleControl.R.MyInternationalizationString.OperationFailed)); |
| | | //这里是重发两次 |
| | | while (Packet.HaveSendCount < 3) { |
| | | if (Packet.FlagDateTime.AddMilliseconds (1000).Ticks <= System.DateTime.Now.Ticks) { |
| | | System.Console.WriteLine ("重发数据:" + SendFlag); |
| | | BusSocket.AsyncBeginSend (Packet); |
| | | } |
| | | System.Threading.Thread.Sleep (100); |
| | | } |
| | | |
| | | } catch (Exception ex) { |
| | | Console.WriteLine ("managerSendCount:" + ex.ToString ()); |
| | | } finally { |
| | | allDone.Set (); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 当前数据包 |
| | | /// </summary> |
| | |
| | | case Command.WriteManageWirelessNet: |
| | | case Command.UpdataLightDimmingTheLargestLevel: |
| | | case Command.UpdataLightDimmingMaximumOrMinimum: |
| | | //**********新增mqtt上位机协议********** |
| | | case Command.ReadGateWayURL: |
| | | case Command.SetGateWayURL: |
| | | case Command.ReadGateWayClientIDUsernamePassword: |
| | | case Command.SetGateWayClientIDUsernamePassword: |
| | | case Command.ReadGateWayAESEncryption: |
| | | case Command.SetGateWayAESEncryption: |
| | | case Command.ReadGateWayTopic: |
| | | case Command.SetGateWayTopic: |
| | | case Command.ReadGateWayAdminInfo: |
| | | case Command.SetGateWayAdminInfo: |
| | | //************************************ |
| | | case Command.ReadGateWayModelInfo: |
| | | case Command.ReadGatewayServerIP: |
| | | case Command.SetGateWayModelInfo: |
| | |
| | | /// </summary> |
| | | /// <param name="target">发送对象</param> |
| | | /// <param name="sendCount">重发次数</param> |
| | | public void Send (Target target, SendCount sendCount, bool isWait) |
| | | public void Send (Target target, SendCount sendCount, bool isWait, bool needLocal = false) |
| | | { |
| | | isLocal = needLocal; |
| | | Packet = new Packet (target.SendBytes, target.IPEndPoint); |
| | | Packet.HaveSendCount = 3 - (int)sendCount; |
| | | |
| | |
| | | this.wait (); |
| | | } |
| | | } |
| | | bool isLocal = false; |
| | | } |
| | | } |