wxr
2020-11-20 e2ffb5fce53119f5cb36e3b2466becbefa096842
HDL_ON/DriverLayer/Control_Udp_Bus.cs
File was renamed from HDL_ON/DAL/DriverLayer/Control_Udp_Bus.cs
@@ -1,7 +1,7 @@
using System;
using System.Collections.Generic;
using System.Text;
using HDL_ON.Common;
using HDL_ON.DAL.Net;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using Newtonsoft.Json;
@@ -12,12 +12,6 @@
{
    public class Control_Udp_Bus
    {
        /// <summary>
        /// 通讯ID
        /// </summary>
        public const int msg_id = 1;
        /// <summary>
        /// 控制失败次数
        /// </summary>
@@ -97,7 +91,7 @@
                    return;
                }
                Control.ins.OpenTcpServer();
                Control.ins.ChangeCommunicationMode(CommunicationMode.tcp_local_server);
                var sendStr = MainPage.LoginUser.accountString;
                if (usefullBytes.Length == 0)
                {
@@ -177,7 +171,7 @@
                            });
                        break;
                    case FunctionType.AC:
                        var aC = JsonConvert.DeserializeObject<AC>(Newtonsoft.Json.JsonConvert.SerializeObject(function));//as 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[] { 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 });
@@ -715,20 +709,186 @@
                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;
            }
@@ -763,20 +923,18 @@
        }
        /// <summary>
        /// 搜索网关
        /// 读取网关IP
        /// </summary>
        public void SearchLocalGateway()
        public void ReadGatewayIP()
        {
            try
            {
                var sendJob = new JObject {
                                            {"id",msg_id.ToString() } ,{"time_stamp",(DateTime.Now.Ticks / 10000).ToString()}
                                            {"type","device" },{"from_oid","020101" },{"to_oid",null },{"time_stamp","46A3B99F" },{"command","search"}
                                        };
                var bodyString = JsonConvert.SerializeObject(sendJob);
                var bodyBytes = Encoding.ASCII.GetBytes(bodyString);
                var sendBytes = A_Protocal_Common.apc.ConvertSendBodyData(CommunicationTopic.SearchLoaclGateway, bodyString);
                //组播发送
                Packet = new Packet(sendBytes, new System.Net.IPEndPoint(System.Net.IPAddress.Parse("239.0.168.188"), 8585));
                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;