wxr
2020-09-11 8df24b0a3dfd5b6f39c5393ef24eab25b70ab858
HDL_ON/DriverLayer/Control_Bus.cs
@@ -1,14 +1,11 @@
using System;
using System.Collections.Generic;
using System.Net.Sockets;
using System.Text;
using HDL_ON.DAL;
using HDL_ON.DAL.Net;
using HDL_ON.Entity;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Shared;
using Shared.Net;
namespace HDL_ON
{
@@ -39,7 +36,6 @@
                DeviceID = deviceID,
                AddData = gatewayBytes,
            }, sendCount, false);
            MainPage.Log(command.ToString() + "::" + CommonPage.EndPoint.ToString());
        }
        public static byte[] ReadGatewayIPAddress()
@@ -71,11 +67,11 @@
                    tcpListener.OpenServer(8586);
                }
                if (!CommonPage.isHttpListenerStart)
                {
                    //数据接收端口没打开,不回复
                    CommonPage.InitHttpListener();
                }
                //if (!CommonPage.isHttpListenerStart)
                //{
                //    //数据接收端口没打开,不回复
                //    CommonPage.InitHttpListener();
                //}
                var sendStr = MainPage.LoginUser.accountString;
                if (usefullBytes.Length == 0)
                {
@@ -84,7 +80,6 @@
                else
                {
                    bool isExit = false;
                    for (int i = 0, len = usefullBytes.Length; i < len; i++)
                    {
                        if (i % 2 == 0)
@@ -97,17 +92,16 @@
                            }
                        }
                    }
                    if (!isExit)
                    {
                        //不存在,代表没收到本机的发送,继续回复
                        SenRemark(sendStr);
                    }
                }
            }
            catch { }
            catch (Exception ex) {
                Console.WriteLine($"回复bus搜索异常 : {ex.Message}");
            }
        }
        /// <summary>
@@ -509,9 +503,24 @@
        void managerSendCount(object o)
        {
            add();
            if (CommonPage.IsRemote)
            if (MainPage.IsRemote)
            {
             
            }
                System.Console.WriteLine("远程发送数据:" + SendFlag);
                Mqtt_Cloud.MqttRemoteSend(Packet.Bytes);
                Packet.FlagDateTime = DateTime.Now;
                Packet.HaveSendCount--;
                //这里是重发两次
                while (Packet.HaveSendCount < 3)
                {
                    if (Packet.FlagDateTime.AddMilliseconds(1000).Ticks <= System.DateTime.Now.Ticks)
                    {
                        Mqtt_Cloud.MqttRemoteSend(Packet.Bytes);
                        System.Console.WriteLine("重发远程发送数据:" + SendFlag);
                        Packet.FlagDateTime = DateTime.Now;
                        Packet.HaveSendCount++;
                    }
                    System.Threading.Thread.Sleep(100);
                }
                allDone.Set();
            }
            else
            {
                //Bus socket无法控制,重启机制
@@ -801,10 +810,10 @@
        {
            try
            {
                var sendJob = new JObject { { "vendor_code", "HDL" }, { "command", "search" } };
                var sendJob = new JObject {{ "command", "search" } };
                var SearchGateway = JsonConvert.SerializeObject(sendJob);
                var SearchGatewayPayload = Encoding.ASCII.GetBytes(SearchGateway);
                Packet = new Packet(SearchGatewayPayload, CommonPage.GetGatewayIP_EndPoint);
                Packet = new Packet(SearchGatewayPayload, new System.Net.IPEndPoint(System.Net.IPAddress.Parse("224.0.168.188"), 6688));
                System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(managerSendCount));
                thread.IsBackground = true;
                thread.Start(Packet);