コード例 #1
0
ファイル: Analys.cs プロジェクト: SaintLoong/TDTK.MSCM
 /// <summary>
 /// 新增煤矿上传监控数据
 /// </summary>
 /// <param name="mess"></param>
 public void AddNewData(System.Messaging.Message mess)
 {
     titles = mess.Label;
     datas = mess.Body.ToString();
     string[] titleList = titles.Split(',');
     string[] rtmRows = datas.Split('\r');
     string[] columns;
     try
     {
         foreach (string row in rtmRows)
         {
             if (!string.IsNullOrEmpty(row))
             {
                 columns = row.Split(',');
                 if (columns.Length > 10)
                 {
                     MRtm rtm = new MRtm
                     {
                         CoalCode = titleList[0],
                         CoalName = titleList[1],
                         MonitorLRV = columns[6],
                         MonitorURV = columns[7],
                         AlarmURV = columns[8],
                         AlarmLRV = columns[9],
                         TurnOffValue = columns[10],
                         TurnOnValue = columns[11],
                         DevCode = columns[1],
                         DevName = columns[2],
                         DevAddress = columns[4],
                         DevType = columns[3],
                         DevUnit = columns[5],
                         DevValue = decimal.Parse(columns[12]),
                         DevState = columns[13],
                         RealTime = columns[14],
                         ChageStateTime = DateTime.Parse(columns[16]),
                         MinValue = decimal.Parse(columns[12]),
                         MinValueTime = columns[14],
                         MaxValue = decimal.Parse(columns[12]),
                         MaxValueTime = columns[14]
                     };
                     rtmList.Add(rtm);                    
                 }
             }
         }
     }
     catch (IndexOutOfRangeException) { }
     catch (NullReferenceException) { }
     catch (Exception) { }
 }
コード例 #2
0
ファイル: Analys.cs プロジェクト: SaintLoong/TDTK.MSCM
 private string GetFinishSql(MRtm mrtm,CacheModel cm)
 {
     string sqlString = string.Empty;
     if (int.Parse(cm.State) > 4)//故障
         sqlString = "UPDATE [TN_FaultRecode] SET [EndTime] = '" + mrtm.RealTime + "',[Duration] = '" + GetDuration(mrtm.RealTime, cm.Atime) + "' WHERE [CoalCode]='" + mrtm.CoalCode + "' AND [DevCode] = '" + mrtm.DevCode + "' AND [StartTime] = '" + cm.Atime + "';";
     else if(int.Parse(cm.State) > 0)//报警 [AlarmETime] ,[Duration] ,[SwitchCount] ,[SwitchDetails] ,[DevMaxValue] ,[DevMaxTime]
         sqlString = "UPDATE [TN_AlarmRecode] SET [AlarmETime] = '" + mrtm.RealTime + "',[Duration] = '" + GetDuration(mrtm.RealTime, cm.Atime) + "',[SwitchCount]='0',[SwitchDetails]='',[DevMaxValue]='" + cm.MaxValue + "',[DevMaxTime]='" + cm.MaxValueTime + "' WHERE [CoalCode]='" + mrtm.CoalCode + "' AND [DevCode] = '" + mrtm.DevCode + "' AND [AlarmSTime] = '" + cm.Atime + "';";
     return sqlString;
 }
コード例 #3
0
ファイル: Analys.cs プロジェクト: SaintLoong/TDTK.MSCM
 private void MinuteDataAnaly(MRtm mrtm)
 {
     MRtm rtm = MinuteList.Find(m => m.CoalCode == mrtm.CoalCode && m.DevCode == mrtm.DevCode);
     if (rtm == null)
         MinuteList.Add(mrtm);
     else
     {
         if (mrtm.DevValue > rtm.MaxValue)
         {
             rtm.MaxValue = mrtm.DevValue;
             rtm.MaxValueTime = mrtm.RealTime;
         }
         else if (mrtm.DevValue < rtm.MinValue)
         {
             rtm.MinValue = mrtm.DevValue;
             rtm.MinValueTime = mrtm.RealTime;
         }
         rtm.DevAvgValue = (rtm.DevValue + mrtm.DevValue) / 2;
         rtm.DevAvgTime = DateTime.Parse(mrtm.RealTime);
     }
 }
コード例 #4
0
ファイル: Analys.cs プロジェクト: SaintLoong/TDTK.MSCM
 /// <summary>
 /// 获得首次变态、变值的SQL语句
 /// </summary>
 /// <param name="mrtm"></param>
 private string GetSaveSql(MRtm mrtm)
 {
     string sqlString = string.Empty;
     int state = int.Parse(mrtm.DevState);
     if (state > 4)//故障
         sqlString = SQL_INSERT_FAULT + "'" + mrtm.CoalCode + "'," + "'" + mrtm.DevCode + "'," + "'" + mrtm.DevName + "'," + "'" + mrtm.DevType + "'," + "'" + mrtm.DevAddress + "'," + "'" + mrtm.DevUnit + "'," + "'" + mrtm.MonitorLRV + "'," + "'" + mrtm.MonitorURV + "'," + "'" + mrtm.AlarmLRV + "'," + "'" + mrtm.AlarmURV + "'," + "'" + mrtm.TurnOffValue + "'," + "'" + mrtm.TurnOnValue + "','" +mrtm.DevState+ "','" +mrtm.LinkSenId+"','"+ mrtm.ChageStateTime + "'," + "'" + mrtm.RealTime + "'," + "'0');";
     else if(state >0) //报警
         sqlString = SQL_INSERT_ALARMRECODE + "'" + mrtm.CoalCode + "'," + "'" + mrtm.DevCode + "'," + "'" + mrtm.DevName + "'," + "'" + mrtm.DevType + "'," + "'" + mrtm.DevAddress + "'," + "'" + mrtm.DevUnit + "'," + "'" + mrtm.MonitorLRV + "'," + "'" + mrtm.MonitorURV + "'," + "'" + mrtm.AlarmLRV + "'," + "'" + mrtm.AlarmURV + "'," + "'" + mrtm.TurnOffValue + "'," + "'" + mrtm.TurnOnValue + "'," + "'" + mrtm.ChageStateTime + "'," + "'" + mrtm.RealTime + "','0','','','"+mrtm.MaxValue+"','"+mrtm.MaxValueTime+"','"+mrtm.DevState+"');";
     return sqlString;
 }
コード例 #5
0
ファイル: Analys.cs プロジェクト: SaintLoong/TDTK.MSCM
 private void SwitchAnaly(MRtm sRtm, ref StringBuilder strBuilder)
 {
     #region 开关量变动分析
     //开关量在缓存中找他上一次的状态
     string sqlString = string.Empty;
     SwitchModel sm = smList.Find(s => s.CoalCode == sRtm.CoalCode && s.DevCode == sRtm.DevCode);
     if (sm == null)
         smList.Add(new SwitchModel { CoalCode = sRtm.CoalCode, DevCode = sRtm.DevCode, DevValue = sRtm.DevValue.ToString(), StratTime = sRtm.ChageStateTime });
     else
     {
         if (sm.DevValue != sRtm.DevValue.ToString())
         {
             sm.DevValue = sRtm.DevValue.ToString();
             sqlString = SQL_INSERT_TURNANALY + "'" + sRtm.CoalCode + "'," + "'" + sRtm.DevCode + "'," + "'" + sRtm.DevName + "'," + "'" + sRtm.DevType + "'," + "'" + sRtm.DevAddress + "'," + "'" + sRtm.DevUnit + "'," + "'" + sm.DevValue + "'," + "'" + sm.StratTime.ToString() + "'," + "'" + sRtm.RealTime + "'," + "'" + GetDuration(sRtm.RealTime, sm.StratTime) + "');";
             strBuilder.Append(sqlString);
         }
     }
     #endregion
 }