public static void RealCollect() { RealTimePacket RPacket = new RealTimePacket(); DensityPacket DPacket = new DensityPacket(); while (SysFlag.ServiceStart) { if (Configs.RealTimePacketQueue.Count > 0) { lock (Configs.RealTimePacketQueue) { RPacket = (RealTimePacket)Configs.RealTimePacketQueue.Dequeue(); SysFlag.RealTimePacketCount++; } InsertToRealTimeSheet(RPacket); Oracle.InsertToRealTimeSheet(RPacket); Oracle.UpdataToRealTimeSheet(RPacket); } if (Configs.DensityPacketQueue.Count > 0) { lock (Configs.DensityPacketQueue) { DPacket = (DensityPacket)Configs.DensityPacketQueue.Dequeue(); SysFlag.DensityPacketCount++; } InsertToDensitySheet(DPacket); } else { System.Threading.Thread.Sleep(100); } } SqlConn.Close(); }
private static bool InsertToRealTimeSheet(RealTimePacket Packet) { string sCommand = ""; try { Packet.StationId = ASearchBInSheet(Configs.SqlStationInforSheet, "StationNumber", Packet.StationNumber); sCommand = "INSERT INTO " + Configs.SqlRealTimeSheet + " VALUES(" + Packet.StationId + "," + Packet.StationNumber + "," + AddHead(Packet.RecordDataTime).ToString() + "," + Packet.RecordWaterLevel + "," + Packet.RecordRainFall + "," + Packet.RecordTemperature + "," + Packet.RecordDimension + "," + Packet.RecordLongitude + "," + Packet.RecordVoltage + "," + AddHead(Packet.RecordOther).ToString() + "," + AddHead(Packet.Note).ToString() + ")"; TryOpen(); SqlCommand objSqlCommand = new SqlCommand(sCommand, Sql.SqlConn); objSqlCommand.ExecuteNonQuery(); TryClose(); } catch (Exception E) { CreateInfor.WriteLogs(E.Message + "->导致【" + sCommand + "】入库失败!"); return(false); } return(true); }
public static bool InsertToRealTimeSheet(RealTimePacket Packet) { string sCommand = ""; try { int.Parse(Packet.RecordExplain); } catch { Packet.RecordExplain = "0"; } try { Packet.RecordDataTime = DateTime.Parse(Packet.RecordDataTime).AddSeconds(double.Parse(Packet.RecordExplain)).ToString(); sCommand = "INSERT INTO " + SheetName.ST_GRW_R + "(STCD,TM,GWBD,GWBDRMK) VALUES(" + Tools.GetSqlString(Packet.StationNumber) + "," + "to_date(" + Tools.GetSqlString(Packet.RecordDataTime) + ",'yyyy-mm-dd hh24:mi:ss')," + Tools.GetSqlString(Packet.RecordWaterLevel) + "," + Tools.GetSqlString(Packet.RecordExplain) + ")"; TryOpen(); OracleCommand objSqlCommand = new OracleCommand(sCommand, OracleConn); objSqlCommand.ExecuteNonQuery(); TryClose(); } catch (Exception E) { CreateInfor.WriteLogs(E.Message + "->导致【" + sCommand + "】入库失败或数据被更新!"); return(false); } return(true); }
public static bool UpdataToRealTimeSheet(RealTimePacket Packet) { string sCommand = ""; try { int.Parse(Packet.RecordExplain); } catch { Packet.RecordExplain = "0"; } try { Packet.RecordDataTime = DateTime.Parse(Packet.RecordDataTime).AddSeconds(double.Parse(Packet.RecordExplain)).ToString(); sCommand = "UPDATE " + SheetName.ST_GRW_R + " SET " + " STCD=" + Tools.GetSqlString(Packet.StationNumber) + "," + " TM=" + "to_date(" + Tools.GetSqlString(Packet.RecordDataTime) + ",'yyyy-mm-dd hh24:mi:ss')," + " GWBD=" + Tools.GetSqlString(Packet.RecordWaterLevel) + "," + " GWBDRMK=" + Tools.GetSqlString(Packet.RecordExplain) + " WHERE STCD=" + Tools.GetSqlString(Packet.StationNumber) + " AND TM=to_date(" + Tools.GetSqlString(Packet.RecordDataTime) + ",'yyyy-mm-dd hh24:mi:ss')"; TryOpen(); OracleCommand objSqlCommand = new OracleCommand(sCommand, OracleConn); objSqlCommand.ExecuteNonQuery(); TryClose(); } catch (Exception E) { CreateInfor.WriteLogs(E.Message + "->导致【" + sCommand + "】更新失败!"); return(false); } return(true); }
public static bool ExpendWithAAA(byte[] RxBuffer, int Length) { if (!IfTrueWithAAA(RxBuffer, Length)) { return(false); } RealTimePacket TempPacket = new RealTimePacket(); string Msg = Encoding.GetEncoding("gb2312").GetString(RxBuffer, 0, Length); string[] Arry = Msg.Split(';'); int i = 1; ClearRealTimePacket(ref TempPacket); TempPacket.StationNumber = Arry[i++]; TempPacket.StationOrder = Arry[i++]; TempPacket.StationPosition = Arry[i++]; TempPacket.StationName = Arry[i++]; TempPacket.RecordDataTime = Arry[i++].ToString(); string[] DataArry = Arry[i++].Split(','); string[] InfoArry = Arry[i++].Split(','); TempPacket.RecordRainFall = SelectDataFromArry(InfoArry, DataArry, "雨量"); TempPacket.RecordWaterLevel = SelectDataFromArry(InfoArry, DataArry, "水位"); TempPacket.RecordDimension = SelectDataFromArry(InfoArry, DataArry, "经度"); TempPacket.RecordLongitude = SelectDataFromArry(InfoArry, DataArry, "纬度"); TempPacket.RecordTemperature = SelectDataFromArry(InfoArry, DataArry, "温度"); TempPacket.RecordVoltage = SelectDataFromArry(InfoArry, DataArry, "电压"); TempPacket.RecordExplain = SelectDataFromArry(InfoArry, DataArry, "水势"); lock (Configs.RealTimePacketQueue) { Configs.RealTimePacketQueue.Enqueue(TempPacket); } return(true); }
public static void ClearRealTimePacket(ref RealTimePacket Packet) { Packet.RecordOther = "NULL"; Packet.RecordRainFall = "NULL"; Packet.RecordTemperature = "NULL"; Packet.RecordVoltage = "NULL"; Packet.RecordWaterLevel = "NULL"; Packet.RecordDimension = "NULL"; Packet.RecordLongitude = "NULL"; Packet.StationPosition = "NULl"; Packet.Note = "NULL"; }