Exemplo n.º 1
0
        void gsm_OnReceivedData(object sender, GsmService.ReceivedDataEventArgs e)
        {
            GsmServer gsm = sender as GsmServer;

            lock (gsm)
            {
                string ss = "Index:" + e.Decodedmessage.SmsIndex + "\r\n 短信中心:" + e.Decodedmessage.ServiceCenterAddress + "\r\n" + "手机号码:" + e.Decodedmessage.PhoneNumber + "\r\n" +
                            "短信内容:" + e.Decodedmessage.SmsContent + "\r\n" + "发送时间:" + e.Decodedmessage.SendTime;

                gsm.TrySmsContent = e.Decodedmessage.TrySmsContent;//中文短信解码方式

                //写入接收数据队列
                byte[] bt = null;
                if (wrx.XMLObj.HEXOrASC == "HEX")
                {
                    bt = EnCoder.HexStrToByteArray(e.Decodedmessage.SmsContent);
                }
                else
                {
                    bt = Encoding.UTF8.GetBytes(e.Decodedmessage.SmsContent);
                }
                GsmBussiness.WriteGrdQ(gsm, e.Decodedmessage.PhoneNumber, e.Decodedmessage.SendTime, bt);

                //写入透传列表
                ServiceBussiness.WriteQDM(bt);
                //写入日志
                LogInfoToTxt(ServiceEnum.NFOINDEX.GSM, e.Decodedmessage.PhoneNumber, bt);

                //解析数据包(更新手机号列表)
                GsmBussiness.ResolvePacket(gsm);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 更新或写入测站手机号码(仅用于短信信道)
        /// </summary>
        /// <param name="GS"></param>
        /// <param name="Mobile">手机号</param>
        /// <param name="STCD">站号</param>
        public void InsertGsmMobile(GsmServer GS, string Mobile, string STCD)
        {
            var temp = from g in GS.Gs where g.MOBILE == Mobile && g.STCD == STCD select g;

            if (temp.Count() == 0)
            {
                Service.Model.YY_RTU_CONFIGDATA Model = new Service.Model.YY_RTU_CONFIGDATA();
                Model.STCD      = STCD;
                Model.ItemID    = "0000000000";
                Model.ConfigID  = "10000000AA07";
                Model.ConfigVal = Mobile;

                Service.PublicBD.db.DelRTU_ConfigData("where STCD='" + STCD + "' and ConfigID = '10000000AA07'");
                Service.PublicBD.db.AddRTU_ConfigData(Model);
            }
        }
Exemplo n.º 3
0
 public void SendCommand(GsmServer GS)
 {
     //throw new NotImplementedException();
 }
Exemplo n.º 4
0
 public void PacketArrived(GsmServer GS)
 {
     //throw new NotImplementedException();
 }
Exemplo n.º 5
0
 public static void SendCommand(GsmServer GS)
 {
     System.Reflection.MethodInfo mi = T.GetMethod("SendCommand", new Type[] { typeof(GsmServer) });
     mi.Invoke(O, new object[] { GS });
 }
Exemplo n.º 6
0
 public static void PacketArrived(GsmServer GS)
 {
     System.Reflection.MethodInfo mi = T.GetMethod("PacketArrived", new Type[] { typeof(GsmServer) });
     mi.Invoke(O, new object[] { GS });
 }
Exemplo n.º 7
0
        //各信道启动
        public void ChannelStart()
        {
            var temp = from t in wrx.XMLObj.LsM where t.SERVICETYPE == "TCP" select t;
            List <OperateXML.serviceModel> TEMP = temp.ToList <OperateXML.serviceModel>();

            tcp = new TcpService.TcpServer[TEMP.Count()];
            int k = 0;


            #region 读取命令列表(接收UI召测和GSM发送召测有定时写操作),因此在gsm服务启动前读取
            ServiceControl.LC = ServiceBussiness.GetCommandTempToLC();
            #endregion

            #region 启动服务
            foreach (var item in TEMP)
            {
                try
                {
                    tcp[k] = new TcpService.TcpServer(item.IP_PORTNAME, item.PORT_BAUDRATE, item.SERVICEID);
                    tcp[k].Start();
                    tcp[k].OnConnected    += new EventHandler <TcpService.ConnectedEventArgs>(tcp_OnConnected);
                    tcp[k].OnReceivedData += new EventHandler <TcpService.ReceivedDataEventArgs>(tcp_OnReceivedData);
                    tcp[k].OnDisconnected += new EventHandler <TcpService.DisconnectedEventArgs>(tcp_OnDisconnected);
                    log.Warn("tcp服务(" + item.IP_PORTNAME + ":" + item.PORT_BAUDRATE + ")启动成功!");
                }
                catch (Exception e)
                {
                    log.Warn("tcp服务(" + item.IP_PORTNAME + ":" + item.PORT_BAUDRATE + ")启动失败!", e);
                    //throw e;  //-------避免配置有误,服务死掉
                }
                k++;
            }

            temp = from t in wrx.XMLObj.LsM where t.SERVICETYPE == "UDP" select t;
            TEMP = temp.ToList <OperateXML.serviceModel>();
            udp  = new UdpServer[TEMP.Count()];
            k    = 0;
            foreach (var item in TEMP)
            {
                try
                {
                    udp[k] = new UdpServer(item.IP_PORTNAME, item.PORT_BAUDRATE, item.SERVICEID);
                    udp[k].Start();
                    udp[k].OnReceivedData += new EventHandler <UdpService.ReceivedDataEventArgs>(udp_OnReceivedData);
                    log.Warn(DateTime.Now + "udp服务(" + item.IP_PORTNAME + ":" + item.PORT_BAUDRATE + ")启动成功!");
                }
                catch (Exception e)
                {
                    log.Warn(DateTime.Now + "udp服务(" + item.IP_PORTNAME + ":" + item.PORT_BAUDRATE + ")启动失败!", e);
                    //throw e;  //-------避免配置有误,服务死掉
                }
                k++;
            }
            temp = from t in wrx.XMLObj.LsM where t.SERVICETYPE == "GSM" select t;
            TEMP = temp.ToList <OperateXML.serviceModel>();
            gsm  = new GsmServer[TEMP.Count()];
            k    = 0;
            foreach (var item in TEMP)
            {
                try
                {
                    gsm[k] = new GsmServer(item.IP_PORTNAME, item.PORT_BAUDRATE, item.SERVICEID);
                    gsm[k].Start();
                    Console.WriteLine(DateTime.Now + "启动各组服务命令," + "Restart!");
                    gsm[k].OnReceivedData += new EventHandler <GsmService.ReceivedDataEventArgs>(gsm_OnReceivedData);
                    log.Warn(DateTime.Now + "gsm服务(" + item.IP_PORTNAME + ":" + item.PORT_BAUDRATE + ")启动成功!");
                }
                catch (Exception e)
                {
                    log.Warn(DateTime.Now + "gsm服务(" + item.IP_PORTNAME + ":" + item.PORT_BAUDRATE + ")启动失败!", e);
                    //throw e;  //-------避免配置有误,服务死掉
                }
                k++;
            }

            temp = from t in wrx.XMLObj.LsM where t.SERVICETYPE == "COM" select t;
            TEMP = temp.ToList <OperateXML.serviceModel>();
            com  = new ComServer[TEMP.Count()];
            k    = 0;
            foreach (var item in TEMP)
            {
                try
                {
                    com[k] = new ComServer(item.IP_PORTNAME, item.PORT_BAUDRATE, item.NUM, item.SERVICEID);
                    com[k].Start();
                    com[k].OnReceivedData += new EventHandler <ComService.ReceivedDataEventArgs>(com_OnReceivedData);
                    log.Warn(DateTime.Now + "com服务(" + item.IP_PORTNAME + ":" + item.PORT_BAUDRATE + ")启动成功!");


                    //byte[] bb = EnCoder.HexStrToByteArray("24 5A 4A 58 58 00 15 03 A0 46 01 00 00 02 04 00 04 00 00 00 C7 ".Replace(" ", ""));
                    //com[k].sp.Write(bb, 0, bb.Length);
                }
                catch (Exception e)
                {
                    log.Warn(DateTime.Now + "com服务(" + item.IP_PORTNAME + ":" + item.PORT_BAUDRATE + ")启动失败!", e);
                    //throw e;  //-------避免配置有误,服务死掉
                }
                k++;
            }

            #endregion
        }