Newer
Older
SensorHub / SensorHub.Servers / RQServer.cs
root on 17 Sep 2021 1 KB first commit
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SuperSocket.SocketBase;
using SuperSocket.SocketBase.Protocol;
using SensorHub.Servers.Commands;
using SensorHub.Utility;
namespace SensorHub.Servers
{
    //二院,燃气Server
    public class RQServer : AppServer<RQSession, BinaryRequestInfo>, IDispatchServer
    {
        public IDispatchServer predatorServer;

        public RQServer()
            : base(new DefaultReceiveFilterFactory<RQFilter, BinaryRequestInfo>())
        {
        }

        protected override void OnStarted()
        {
            predatorServer = this.Bootstrap.GetServerByName("PredatorServer") as IDispatchServer;
            base.OnStarted();

            ApplicationContext.getInstance().updateSequence("SEQ_XT_RQ_PERIOD", "DBID", "XT_RQ_PERIOD");
            ApplicationContext.getInstance().updateSequence("SEQ_ALARM_RECORD_ID", "DBID", "ALARM_ALARM_RECORD");
            ApplicationContext.getInstance().updateSequence("SEQ_ALARM_DEVICE_LOG_ID", "DBID", "ALARM_DEVICE_LOG");
        }

        //send the config message to the device
        public void DispatchMessage(string deviceCode, string message)
        {
            //convert message type to byte[]
            try
            {
                string[] msgArray = message.Split(new char[] { '-' });
                byte[] msgByte = new byte[msgArray.Length];
                for (int i = 0; i < msgArray.Length; i++)
                {
                    msgByte[i] = byte.Parse(msgArray[i], System.Globalization.NumberStyles.HexNumber);
                }

                var sessions = this.GetSessions(s => s.MacID == deviceCode);
                foreach (var s in sessions)
                {
                    s.Send(msgByte, 0, msgByte.Length);
                }

            }
            catch (Exception e)
            {
                Logger.Error("燃气配置信息发送失败-设备ID:" + deviceCode + "命令内容:" + message);
            }

        }
    }
}