1
wxr
2022-06-22 52bbfcf4c9430de96e7a8addb65b18fb97ee43d3
Crabtree/SmartHome/HDL/Operation/Control.cs
@@ -79,6 +79,14 @@
                string receiveFlag = string.Format ("{0},{1},{2},", subnetID, deviceID, (int)command);
                switch ((Command)command) {
                case Command.enjoyUpgradeACK:
                case Command.enjoyUpgrade2ACK:
                case Command.readGatewayVisionACK:
                case Command.InitializationGatewayACK:
                case Command.WriteSecretKeyACK:
                case Command.WriteHomeIdACK:
                    receiveFlag += "";
                    break;
                case Command.ReadDoorLockSceneObjACK:
                    receiveFlag += string.Format ("{0},{1},{2},{3},{4}", usefulBytes [0], usefulBytes [1], usefulBytes [2], usefulBytes [3], usefulBytes [4]);
                    break;
@@ -271,7 +279,7 @@
                default:
                    break;
                }
                //System.Console.WriteLine ("接收到数据:" + receiveFlag);
                System.Console.WriteLine ("接收到数据:" + receiveFlag);
                for (int i = 0; i < controlList.Count; i++) {
                    try {
@@ -393,8 +401,43 @@
                    //MainPage.AddTip (Language.StringByID (SimpleControl.R.MyInternationalizationString.OperationFailed));
                }
            }
        }
            return;
            //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) {
            //            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--;
            //        //这里是重发两次
            //        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>
@@ -405,6 +448,16 @@
            this.SendFlag = string.Format ("{0},{1},{2},", target.SubnetID, target.DeviceID, (int)target.Command + 1);
            switch (target.Command) {
            case Command.readGatewayVision:
            case Command.enjoyUpgrade:
            case Command.InitializationGateway:
            case Command.WriteSecretKey:
            case Command.WriteHomeId:
                this.SendFlag += "";
                break;
            case Command.enjoyUpgrade2:
                this.SendFlag = string.Format ("{0},{1},{2},", target.SubnetID, target.DeviceID, (int)target.Command - 1);
                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;
@@ -586,8 +639,9 @@
        /// </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;
@@ -597,5 +651,6 @@
                this.wait ();
            }
        }
        bool isLocal = false;
    }
}