/// <summary> /// 从数据库读取出手机号列表 /// </summary> /// <returns></returns> public static List <GsmMobile> GetGsmMobileList() { return(ServiceBussiness.GetGsmMobileList()); }
/// <summary> /// 上线通知 /// </summary> /// <param name="US">udp服务</param> /// <param name="IpEndPoint">Udp标识</param> public static void UdpConnected(UdpServer US, IPEndPoint IpEndPoint) { string ServiceId = US.ServiceID; ServiceBussiness.WriteQUIM("UDP", ServiceId, IpEndPoint.Address.ToString() + ":" + IpEndPoint.Port, "上线!", new byte[] { }, ServiceBussiness.EnCoderType.HEX, ServiceBussiness.DataType.Text); }
public void PacketArrived(TcpService.TcpServer TS) { string ServiceId = TS.ServiceID; ConcurrentQueue <TcpReceivedData> Qtrd = TS.TQ.Qtrd; List <TcpSocket> Ts = TS.Ts; ConcurrentQueue <TcpSendData> Qtsd = TS.TQ.Qtsd; while (Qtrd.Count > 0) { TcpReceivedData trd = null; Qtrd.TryDequeue(out trd); if (trd != null) { //Frame[] frames = null; try { //注册&透传 Service.ServiceBussiness.RemoteCommand(trd.Data); //Service.ServiceBussiness.Registered30(urd.Data); //ASCII To String string STR = Encoding.ASCII.GetString(trd.Data); string[] STRs = STR.Split(new string[] { "##" }, StringSplitOptions.None); if (STRs.Length > 0) { foreach (var item in STRs) { if (item != "") { string STCD = pd.GetMN(item); InsertNewSTCD(STCD, Service.ServiceEnum.NFOINDEX.TCP, TS); bool B = false; //更新socket列表的stcd、socket TcpBussiness.UpdSocket(TS, trd.SOCKET, STCD, out B); if (!B) { //上线 TcpBussiness.TcpConnected(TS, STCD); } //通知界面 ServiceBussiness.WriteQUIM("TCP", ServiceId, STCD, "接收数据", trd.Data, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); PacketArrived(item, ServiceEnum.NFOINDEX.TCP, TS); } } } else { ServiceBussiness.WriteQUIM("TCP", ServiceId, "", "接收异常数据", trd.Data, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); } } catch (Exception ex) { //通知界面 ServiceBussiness.WriteQUIM("TCP", ServiceId, "", "接收异常数据", trd.Data, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); log.Error(DateTime.Now + "包处理操作异常" + ex.ToString()); } } } //throw new NotImplementedException(); }
//udp发送命令逻辑执行 void StartCommand(System.Threading.Thread thread, UdpService.UdpServer US, UdpService.UdpSendData usd, string COMMANDCODE) { try { #region int count = 2; while (count < 3) { DateTime datetime = DateTime.Now; //判断命令列表里面有没有命令 var command = from com in US.UQ.Qusd where com.STCD == usd.STCD && COMMANDCODE == com.COMMANDCODE select com; List <UdpSendData> Command = command.ToList <UdpSendData>(); //判断有没有在线设备 var udp = from u in US.Us where u.STCD == usd.STCD && u.IpEndPoint != null select u; List <UdpSocket> UDP = udp.ToList <UdpSocket>(); if (Command.Count() > 0 && UDP.Count() > 0) //是否有 { string STCD = Command.First().STCD; byte[] Data = Command.First().Data; //Data ASC string data = Encoding.ASCII.GetString(Data); Command.First().STATE = count + 1; UDP.First().DATATIME = datetime;//更新为当前时间 US.UDPClient.Send(Command.First().Data, Command.First().Data.Length, UDP.First().IpEndPoint); //通知界面 ServiceBussiness.WriteQUIM(Service.ServiceEnum.NFOINDEX.UDP.ToString(), US.ServiceID, STCD, "发送召测命令", Data, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); //写入本地命令列表 ServiceBussiness.WriteListCommand(STCD, Service.ServiceEnum.NFOINDEX.UDP, COMMANDCODE, data, datetime, count + 1); //单条命令状态发送到界面程序 ServiceBussiness.CommandWriteQUIM(STCD, Service.ServiceEnum.NFOINDEX.UDP.ToString(), COMMANDCODE, data, datetime, count + 1); System.Threading.Thread.Sleep(60 * 1000); //可设置 if (count >= 2) //三次后超时 { datetime = DateTime.Now; //再判断一次是否列表中还存在(有回复时,会从列表中将命令删除) command = from com in US.UQ.Qusd where com.STCD == usd.STCD && usd.COMMANDCODE == com.COMMANDCODE select com; Command = command.ToList <UdpSendData>(); if (Command.Count() > 0) { foreach (var item in ServiceControl.udp) { UdpService.UdpBussiness.RemoveUsdQ(item, STCD, COMMANDCODE); } //写入命令列表 状态-1超时 ServiceBussiness.WriteListCommand(STCD, Service.ServiceEnum.NFOINDEX.UDP, COMMANDCODE, data, datetime, -1); //单条命令状态发送到界面程序 ServiceBussiness.CommandWriteQUIM(STCD, Service.ServiceEnum.NFOINDEX.UDP.ToString(), COMMANDCODE, data, datetime, -1); //System.Threading.Thread.Sleep(30 * 1000); //datetime = DateTime.Now; //命令本地列表中删除超时记录 List <Command> lc = ServiceBussiness.RemoveListCommand(STCD, Service.ServiceEnum.NFOINDEX.UDP, COMMANDCODE, -1); foreach (var item in lc) { PublicBD.db.AddDataCommand(item.STCD, item.CommandID, item.DATETIME, datetime, data, (int)Service.ServiceEnum.NFOINDEX.UDP, -1); } } } } else { return; } count++; } #endregion } catch (Exception ex) { Service.ServiceControl.log.Error(DateTime.Now + "udp发送命令逻辑执行异常!", ex); } }
//各信道启动 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 }
/// <summary> /// 上线通知 /// </summary> /// <param name="TS">tcp服务</param> /// <param name="socket">上线的socket</param> public static void TcpConnected(TcpServer TS, Socket socket) { string ServiceId = TS.ServiceID; ServiceBussiness.WriteQUIM("TCP", ServiceId, (socket.RemoteEndPoint as System.Net.IPEndPoint).Address.ToString() + ":" + (socket.RemoteEndPoint as System.Net.IPEndPoint).Port, "上线!", new byte[] { }, ServiceBussiness.EnCoderType.HEX, ServiceBussiness.DataType.Text); }
//提取固态时,无查询结果或发送查询结果至最后一条时rtu上报7(中心端不用处理) internal static void Process_07(DLYY.Protocol.Solution <DLYY.Model.WaterLevelInfo> solution, Service.ServiceEnum.NFOINDEX NFOINDEX, object Server) { try{ string STCD = SetSTCD(solution, NFOINDEX, Server); if (solution.IsUnpack) { int k = 0; if (solution.Items == null) { #region tcp通知界面 if ((int)NFOINDEX == 1) { TcpService.TcpServer TS = Server as TcpService.TcpServer; //回复通知界面 ServiceBussiness.WriteQUIM("TCP", TS.ServiceID, STCD, "召测时间段内没有数据[确认]", new byte[] { }, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); } #endregion #region udp通知界面 if ((int)NFOINDEX == 2) { UdpService.UdpServer US = Server as UdpService.UdpServer; ServiceBussiness.WriteQUIM("UDP", US.ServiceID, STCD, "召测时间段内没有数据[确认]", new byte[] { }, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); } #endregion #region gsm通知界面 if ((int)NFOINDEX == 3) { GsmService.GsmServer GS = Server as GsmService.GsmServer; ServiceBussiness.WriteQUIM("GSM", GS.ServiceID, STCD, "召测时间段内没有数据[确认]", new byte[] { }, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); } #endregion #region com通知界面 if ((int)NFOINDEX == 4) { ComService.ComServer CS = Server as ComService.ComServer; Service.ServiceBussiness.WriteQUIM("COM", CS.ServiceID, STCD, "召测时间段内没有数据[确认]", new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text); } #endregion } else { foreach (DLYY.Model.WaterLevelInfo waterlevel in solution.Items) { int Milliseconds = (Convert.ToInt32(solution.N, 16) % 10) * 100 + (10 * k++); Service.Model.YY_DATA_REM model = new Model.YY_DATA_REM(); model.STCD = STCD; model.DATAVALUE = decimal.Parse(waterlevel.DATAVALUE); model.TM = DateTime.Parse(waterlevel.TM).AddMilliseconds(Milliseconds); model.DOWNDATE = DateTime.Now; model.NFOINDEX = (int)NFOINDEX; model.ItemID = waterlevel.ItemID; PublicBD.db.AddRemData(model); //k++; #region tcp通知界面 if ((int)NFOINDEX == 1) { TcpService.TcpServer TS = Server as TcpService.TcpServer; //回复通知界面 ServiceBussiness.WriteQUIM("TCP", TS.ServiceID, STCD, "提取到固态数据(最后一帧),数据特征[" + waterlevel.ItemID + "],时间[" + model.TM + "],值[" + model.DATAVALUE + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); } #endregion #region udp通知界面 if ((int)NFOINDEX == 2) { UdpService.UdpServer US = Server as UdpService.UdpServer; ServiceBussiness.WriteQUIM("UDP", US.ServiceID, STCD, "提取到固态数据(最后一帧),数据特征[" + waterlevel.ItemID + "],时间[" + model.TM + "],值[" + model.DATAVALUE + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); } #endregion #region gsm通知界面 if ((int)NFOINDEX == 3) { GsmService.GsmServer GS = Server as GsmService.GsmServer; ServiceBussiness.WriteQUIM("GSM", GS.ServiceID, STCD, "提取到固态数据(最后一帧),数据特征[" + waterlevel.ItemID + "],时间[" + model.TM + "],值[" + model.DATAVALUE + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); } #endregion #region com通知界面 if ((int)NFOINDEX == 4) { ComService.ComServer CS = Server as ComService.ComServer; Service.ServiceBussiness.WriteQUIM("COM", CS.ServiceID, STCD, "提取到固态数据(最后一帧),数据特征[" + waterlevel.ItemID + "],时间[" + model.TM + "],值[" + model.DATAVALUE + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text); } #endregion } } } } catch (Exception ex) { log.Error(DateTime.Now + "07操作异常" + ex.ToString()); } }
internal static void Process_06(DLYY.Protocol.Solution <DLYY.Model.WaterLevelInfo> solution, Service.ServiceEnum.NFOINDEX NFOINDEX, object Server) { try{ string STCD = SetSTCD(solution, NFOINDEX, Server); //打回复包 106=006A ---C string Answer = pack.GetAnswer(solution.N, "006A", GetAuto(STCD), GetWaterLevelOrder(STCD), GetRainfallOrder(STCD), GetPowerMode(STCD), GetCenterAddress(STCD), "FFFF", "FFFF", "FFFF"); #region tcp回复 if ((int)NFOINDEX == 1) { TcpService.TcpServer TS = Server as TcpService.TcpServer; List <TcpService.TcpSocket> Ts = TS.Ts; var tcps = from t in Ts where t.STCD == STCD && t.TCPSOCKET != null select t; List <TcpService.TcpSocket> Tcps = tcps.ToList <TcpService.TcpSocket>(); //没有该测站信息,不能向下执行,上“生成回复数据”没成功。 if (Answer == null) { ServiceBussiness.WriteQUIM("TCP", TS.ServiceID, STCD, "生成回复报出现异常!", new byte[] { }, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); return; } if (Tcps.Count() > 0) { byte[] sendData = Encoding.ASCII.GetBytes(Answer); Tcps.First().TCPSOCKET.Send(sendData); //回复通知界面 ServiceBussiness.WriteQUIM("TCP", TS.ServiceID, STCD, "回复数据", sendData, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); } } #endregion #region udp回复 if ((int)NFOINDEX == 2) { UdpService.UdpServer US = Server as UdpService.UdpServer; List <UdpService.UdpSocket> Us = US.Us; var udps = from u in Us where u.STCD == STCD && u.IpEndPoint != null select u; //没有该测站信息,不能向下执行,上“生成回复数据”没成功。 if (Answer == null) { ServiceBussiness.WriteQUIM("UDP", US.ServiceID, STCD, "生成回复报出现异常!", new byte[] { }, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); return; } if (udps.Count() > 0) { byte[] sendData = Encoding.ASCII.GetBytes(Answer); US.UDPClient.Send(sendData, sendData.Length, udps.First().IpEndPoint); ServiceBussiness.WriteQUIM("UDP", US.ServiceID, STCD, "回复数据", sendData, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); } } #endregion if (solution.IsUnpack) { int k = 0; foreach (DLYY.Model.WaterLevelInfo waterlevel in solution.Items) { int Milliseconds = (Convert.ToInt32(solution.N, 16) % 10) * 100 + (10 * k++); Service.Model.YY_DATA_REM model = new Model.YY_DATA_REM(); model.STCD = STCD; model.DATAVALUE = decimal.Parse(waterlevel.DATAVALUE); model.TM = DateTime.Parse(waterlevel.TM).AddMilliseconds(Milliseconds); model.DOWNDATE = DateTime.Now; model.NFOINDEX = (int)NFOINDEX; model.ItemID = waterlevel.ItemID; PublicBD.db.AddRemData(model); //k++; #region tcp通知界面 if ((int)NFOINDEX == 1) { TcpService.TcpServer TS = Server as TcpService.TcpServer; //回复通知界面 ServiceBussiness.WriteQUIM("TCP", TS.ServiceID, STCD, "提取到固态数据(有下一帧),数据特征[" + waterlevel.ItemID + "],时间[" + model.TM + "],值[" + model.DATAVALUE + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); } #endregion #region udp通知界面 if ((int)NFOINDEX == 2) { UdpService.UdpServer US = Server as UdpService.UdpServer; ServiceBussiness.WriteQUIM("UDP", US.ServiceID, STCD, "提取到固态数据(有下一帧),数据特征[" + waterlevel.ItemID + "],时间[" + model.TM + "],值[" + model.DATAVALUE + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); } #endregion #region gsm通知界面 if ((int)NFOINDEX == 3) { GsmService.GsmServer GS = Server as GsmService.GsmServer; ServiceBussiness.WriteQUIM("GSM", GS.ServiceID, STCD, "提取到固态数据(有下一帧),数据特征[" + waterlevel.ItemID + "],时间[" + model.TM + "],值[" + model.DATAVALUE + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); } #endregion #region com通知界面 if ((int)NFOINDEX == 4) { ComService.ComServer CS = Server as ComService.ComServer; Service.ServiceBussiness.WriteQUIM("COM", CS.ServiceID, STCD, "提取到固态数据(有下一帧),数据特征[" + waterlevel.ItemID + "],时间[" + model.TM + "],值[" + model.DATAVALUE + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text); } #endregion } } } catch (Exception ex) { log.Error(DateTime.Now + "06操作异常" + ex.ToString()); } }
//召测当前数据 internal static void Process_03(DLYY.Protocol.Solution <DLYY.Model.WaterLevelInfo> solution, Service.ServiceEnum.NFOINDEX NFOINDEX, object Server) { try{ string STCD = SetSTCD(solution, NFOINDEX, Server); #region //3上报后 中心端不做响应 //打回复包 103=0067 ---C //string Answer = pack.GetAnswer(solution.N, "0067", GetAuto(STCD), GetWaterLevelOrder(STCD), GetRainfallOrder(STCD), GetPowerMode(STCD), GetCenterAddress(STCD), "FFFF", "FFFF", "FFFF"); //#region tcp回复 //if ((int)NFOINDEX == 1) //{ // TcpService.TcpServer TS = Server as TcpService.TcpServer; // List<TcpService.TcpSocket> Ts = TS.Ts; // var tcps = from t in Ts where t.STCD == STCD && t.TCPSOCKET != null select t; // List<TcpService.TcpSocket> Tcps = tcps.ToList<TcpService.TcpSocket>(); // //没有该测站信息,不能向下执行,上“生成回复数据”没成功。 // if (Answer == null) // { // ServiceBussiness.WriteQUIM("TCP", TS.ServiceID, STCD, "生成回复报出现异常!", new byte[] { }, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); // return; // } // if (Tcps.Count() > 0) // { // byte[] sendData = Encoding.ASCII.GetBytes(Answer); // Tcps.First().TCPSOCKET.Send(sendData); // //回复通知界面 // ServiceBussiness.WriteQUIM("TCP", TS.ServiceID, STCD, "回复数据", sendData, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); // } //} //#endregion //#region udp回复 //if ((int)NFOINDEX == 2) //{ // UdpService.UdpServer US = Server as UdpService.UdpServer; // List<UdpService.UdpSocket> Us = US.Us; // var udps = from u in Us where u.STCD == STCD && u.IpEndPoint != null select u; // //没有该测站信息,不能向下执行,上“生成回复数据”没成功。 // if (Answer == null) // { // ServiceBussiness.WriteQUIM("UDP", US.ServiceID, STCD, "生成回复报出现异常!", new byte[] { }, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); // return; // } // if (udps.Count() > 0) // { // byte[] sendData = Encoding.ASCII.GetBytes(Answer); // US.UDPClient.Send(sendData, sendData.Length, udps.First().IpEndPoint); // ServiceBussiness.WriteQUIM("UDP", US.ServiceID, STCD, "回复数据", sendData, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); // } //} //#endregion #endregion if (solution.IsUnpack) { int k = 0; foreach (DLYY.Model.WaterLevelInfo waterlevel in solution.Items) { int Milliseconds = (Convert.ToInt32(solution.N, 16) % 10) * 100 + (10 * k++); PublicBD.db.AddRealTimeData(STCD, waterlevel.ItemID, DateTime.Parse(waterlevel.TM).AddMilliseconds(Milliseconds), DateTime.Now, (int)NFOINDEX, decimal.Parse(waterlevel.DATAVALUE)); //k++; string ItemName = GetItemName(waterlevel.ItemID); #region tcp通知界面 if ((int)NFOINDEX == 1) { TcpService.TcpServer TS = Server as TcpService.TcpServer; //回复通知界面 ServiceBussiness.WriteQUIM("TCP", TS.ServiceID, STCD, "召测到当前数据,数据特征[" + ItemName + "-" + waterlevel.ItemID + "],时间[" + waterlevel.TM + "],值[" + waterlevel.DATAVALUE + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); } #endregion #region udp通知界面 if ((int)NFOINDEX == 2) { UdpService.UdpServer US = Server as UdpService.UdpServer; ServiceBussiness.WriteQUIM("UDP", US.ServiceID, STCD, "召测到当前数据,数据特征[" + ItemName + "-" + waterlevel.ItemID + "],时间[" + waterlevel.TM + "],值[" + waterlevel.DATAVALUE + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); } #endregion #region gsm通知界面 if ((int)NFOINDEX == 3) { GsmService.GsmServer GS = Server as GsmService.GsmServer; ServiceBussiness.WriteQUIM("GSM", GS.ServiceID, STCD, "召测到当前数据,数据特征[" + ItemName + "-" + waterlevel.ItemID + "],时间[" + waterlevel.TM + "],值[" + waterlevel.DATAVALUE + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.ASCII, Service.ServiceEnum.DataType.Text); } #endregion #region com通知界面 if ((int)NFOINDEX == 4) { ComService.ComServer CS = Server as ComService.ComServer; Service.ServiceBussiness.WriteQUIM("COM", CS.ServiceID, STCD, "召测到当前数据,数据特征[" + ItemName + "-" + waterlevel.ItemID + "],时间[" + waterlevel.TM + "],值[" + waterlevel.DATAVALUE + "]", new byte[] { }, Service.ServiceEnum.EnCoderType.HEX, Service.ServiceEnum.DataType.Text); } #endregion } } } catch (Exception ex) { log.Error(DateTime.Now + "03操作异常" + ex.ToString()); } }
public static void Process(IHttpRequest Request, IHttpResponse Response) { bool value = false; string message = LanguageMgr.GetTranslation("Tank.Request.VisualizeRegister.Fail1", new object[0]); XElement result = new XElement("Result"); //try { var para = Request.Uri.QueryString; string name = para["Name"]; string pass = para["Pass"]; string nickName = para["NickName"].Trim().Replace(",", ""); string armColor = para["Arm"]; string hairColor = para["Hair"]; string faceColor = para["Face"]; string ClothColor = para["Cloth"]; string armID = para["ArmID"]; string hairID = para["HairID"]; string faceID = para["FaceID"]; string ClothID = para["ClothID"]; int sex = -1; sex = (bool.Parse(para["Sex"]) ? 1 : 0); using (ServiceBussiness db = new ServiceBussiness()) { string equip = db.GetGameEquip(); string curr_Equip = (sex == 1) ? equip.Split(new char[] { '|' })[0] : equip.Split(new char[] { '|' })[1]; hairID = curr_Equip.Split(new char[] { ',' })[0]; faceID = curr_Equip.Split(new char[] { ',' })[1]; ClothID = curr_Equip.Split(new char[] { ',' })[2]; armID = curr_Equip.Split(new char[] { ',' })[3]; } if (Encoding.Default.GetByteCount(nickName) <= 14) { if (checkIllegalChar(nickName) || nickName.Contains("\r")) { value = false; message = LanguageMgr.GetTranslation("Tank.Request.VisualizeRegister.Illegalcharacters", new object[0]); } else { if (!string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(pass) && !string.IsNullOrEmpty(nickName)) { using (PlayerBussiness db2 = new PlayerBussiness()) { string style = string.Concat(new string[] { armID, ",", hairID, ",", faceID, ",", ClothID }); if (db2.RegisterPlayer(name, pass, nickName, style, style, armColor, hairColor, faceColor, ClothColor, sex, ref message, 30)) { value = true; message = LanguageMgr.GetTranslation("Tank.Request.VisualizeRegister.Success", new object[0]); } } } } } else { message = LanguageMgr.GetTranslation("Tank.Request.VisualizeRegister.Long", new object[0]); } } //catch (Exception ex) //{ //VisualizeRegister.log.Error("VisualizeRegister", ex); //} result.Add(new XAttribute("value", value)); result.Add(new XAttribute("message", message)); Response.Write(result.ToString(false)); }
/// <summary> /// 从数据库读取出卫星号列表 /// </summary> /// <returns></returns> public static List <ComSatellite> GetComSatelliteList() { return(ServiceBussiness.GetComSatelliteList()); }