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); } }
/// <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); } }
public void SendCommand(GsmServer GS) { //throw new NotImplementedException(); }
public void PacketArrived(GsmServer GS) { //throw new NotImplementedException(); }
public static void SendCommand(GsmServer GS) { System.Reflection.MethodInfo mi = T.GetMethod("SendCommand", new Type[] { typeof(GsmServer) }); mi.Invoke(O, new object[] { GS }); }
public static void PacketArrived(GsmServer GS) { System.Reflection.MethodInfo mi = T.GetMethod("PacketArrived", new Type[] { typeof(GsmServer) }); mi.Invoke(O, new object[] { GS }); }
//各信道启动 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 }