public void SetLogInfo(LEVELINFO lip) { m_levelInfo = lip; /* * r.typelevel >> 16, r.typelevel & 0xffff */ string reason = null; CWorksDoneReg.GetWorksReason(m_levelInfo.t1, m_levelInfo.t2, m_levelInfo.delta, m_levelInfo.tag, m_levelInfo.level, ref reason, m_levelInfo.hValue); this.labReason.Text = reason; CWorksDoneReg.GetWorksDone(m_levelInfo.level, ref reason); this.labShould.Text = reason; sms.siteId = m_levelInfo.site_id; sms.tm1 = m_levelInfo.t1; sms.tm2 = m_levelInfo.t2; sms.value = m_levelInfo.delta; sms.typelevel = (m_levelInfo.tag << 16) | m_levelInfo.level; log.siteId = lip.site_id; log.tm1 = m_levelInfo.t1; log.tm2 = m_levelInfo.t2; log.value = m_levelInfo.delta; log.typelevel = (m_levelInfo.tag << 16) | m_levelInfo.level; log.hourValue = m_levelInfo.hValue; m_nLevel = m_levelInfo.level; this.btnOk.Text = Warn[m_nLevel - 1]; m_nLevel = m_levelInfo.level; this.lbTimeCaption.Text = WarnType[m_nLevel - 1]; this.lbKm.Text = m_pSectonObj.SectionName; this.lbTime.Text = DateTime.Now.ToString(); m_nShowTime++; m_rainfallsDbHelper.WriteRunLogInfoDB(m_pSectonObj.SectionName + "报警=" + m_pSectonObj.SectionName, m_pSectonObj.SectionName + "开始报警:警戒级别=" + lip.level.ToString()); m_soundPlay.AppendSoundAcc(); }
public void WriteSms(_SMS sms, LEVELINFO li) { sms.bulidTime = Time.DateTime2DbTime(System.DateTime.Now); ExchangeTime(ref sms.tm1, ref sms.tm2, sms.typelevel, li); string sql = string.Format("insert into site_log_sms values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}')", sms.bulidTime, sms.railLine, sms.km, sms.tm1, sms.tm2, sms.typelevel, sms.value, sms.hourValue); string szData = string.Format("{0}&{1}&{2}&{3}&{4}&{5}&{6}&{7}&{8}&BE", sms.siteId, sms.bulidTime, sms.railLine, sms.km, sms.tm1, sms.tm2, sms.typelevel, sms.value, sms.hourValue); WriteToTempDB(szData); m_sqliteManager.ExcuteSql(sql); }
public override void SaveLevelInfo(LEVELINFO li) { PostHideLiftControlMessage(); RefStack(); if (li.level == 1) { PatrolledTime = li.t2; // li.liftValue = 2;//出巡自动解除为2毫米 } //SectionAlarmLevel = li.level; //m_pSectionSerializer.UpdateData(li.level, li.liftValue, Time.DateTime2DbTime(DateTime.Now), li.site_id); //SaveJson(); }
public override void AlarmComputer(LEVELINFO li) { if (li.level > 0) { if (li.level > SectionAlarmLevel) { SectionAlarmLevel = li.level; LevelFormat = worksdone[SectionAlarmLevel]; HadMeasure = todo[SectionAlarmLevel]; LastLevelInfo = li; PostShowRegFormMessage(); PostHideLiftControlMessage(); } } }
public void ExchangeTime(ref long t1, ref long t2, int typelevel, LEVELINFO li) { int type = typelevel >> 16; if (type == TagType.tag_cont) { t2 = t1; t1 = li.contJmp; } if (type == TagType.tag_daily) { long t = t2; t2 = t1; t1 = t;// li.numJmp; } }
public void SetLogInfo(LEVELINFO lip) { m_pLevelInfo = lip; /* * r.typelevel >> 16, r.typelevel & 0xffff */ string reason = null; CWorksDoneReg.GetWorksReason(m_pLevelInfo.t1, m_pLevelInfo.t2, m_pLevelInfo.delta, m_pLevelInfo.tag, m_pLevelInfo.level, ref reason, m_pLevelInfo.hValue); this.labReason.Text = reason; CWorksDoneReg.GetWorksDone(m_pLevelInfo.level, ref reason); this.labShould.Text = reason; if (m_pLevelInfo.level == 1) { string _pGqInfos = CINIFile.IniReadValue(m_pSectonObj.ID, "出巡工区", paths.GqInfos); this.labShould.Text = "通知" + _pGqInfos + "," + reason; } //m_pSMS.siteId = m_pLevelInfo.site_id; //m_pSMS.km = m_pSectonObj.ID;//将区间ID //m_pSMS.tm1 = m_pLevelInfo.t1; //m_pSMS.tm2 = m_pLevelInfo.t2; //m_pSMS.value = m_pLevelInfo.delta; //m_pSMS.typelevel = (m_pLevelInfo.tag << 16) | m_pLevelInfo.level; m_pWorksDoneLog.siteId = lip.site_id; m_pWorksDoneLog.tm1 = m_pLevelInfo.t1; m_pWorksDoneLog.tm2 = m_pLevelInfo.t2; m_pWorksDoneLog.value = m_pLevelInfo.delta; m_pWorksDoneLog.typelevel = (m_pLevelInfo.tag << 16) | m_pLevelInfo.level; m_pWorksDoneLog.hourValue = m_pLevelInfo.hValue; m_nLevel = m_pLevelInfo.level; this.m_pLbOKHandle.Text = m_pWarns[m_nLevel - 1]; m_nLevel = m_pLevelInfo.level; this.lbTimeCaption.Text = m_pWarnTypes[m_nLevel - 1]; this.lbCaption.Text = string.Format("{0}[{1}]", m_pSectonObj.XingBieName, m_pSectonObj.SectionName); this.lbTime.Text = DateTime.Now.ToString(); lbName.Text = CINIFile.IniReadValue("基本信息", "当前值班负责人", paths.baseInfoPath); m_pWorksDoneLog.name = string.Format("{0},{1}", lbName.Text, m_pSectonObj.SectionName); m_nShowTime++; m_pRainfallsDbHelper.WriteRunLogInfoDB(m_pSectonObj.SectionName + "报警=" + m_pSectonObj.SectionName, m_pSectonObj.SectionName + "开始报警:警戒级别=" + lip.level.ToString()); m_soundPlay.AppendSoundAcc(); }
public override LEVELINFO LevelCalc(ALARMLEVEL[] alarmLevels, int rows, AVirtualSection avobj) { LEVELINFO m_pLastLevelInfo = new LEVELINFO(); LEVELINFO li = new LEVELINFO(); int lvl = -1; int maxLevel = -1; foreach (ILevelCalc obj in m_pLeveCalcs) { lvl = obj.Calc(alarmLevels, rows, g_nRecords, g_pList, this, ref li, avobj); if (lvl > maxLevel) { maxLevel = lvl; m_pLastLevelInfo = li; } } return(m_pLastLevelInfo); }
public override void OnSectionAlarm(LEVELINFO li) { if (m_pFrmReg.IsDisposed) { m_pFrmReg = new frmRegDlg(OwnSectionObj); // m_frmReg.btnClickEvent += new onBtnClickHandler(frmReg_btnClickEvent); } if (m_pFrmReg.rainfallsDbHelper == null) { m_pFrmReg.rainfallsDbHelper = RainfallsDbHelper; } if (m_pFrmReg.SoundPlay == null) { m_pFrmReg.SoundPlay = SoundPlay; } m_pFrmReg.setLocation(OffsetX, OffsetY); m_pFrmReg.SetLogInfo(li); m_pFrmReg.Show(); }
public override void Update(string id) { if (RainMapObj != null) { RainMapObj.DrawRainMap(id); } foreach (ASectionObj section in m_pSectionObjList) { foreach (AVirtualSection avs in section.VirtualSectionList) { if (avs.SiteID.Equals(id)) { LEVELINFO li = avs.VirtualLevelCalc(section.AlarmLevels, section.AlarmLevelsCount); section.AlarmComputer(li); } } } }
public override LEVELINFO VirtualLevelCalc(ALARMLEVEL[] alarmLevels, int rows) { LEVELINFO li = SiteObj.LevelCalc(alarmLevels, rows, this); long now = Time.DateTime2DbTime(DateTime.Now); long N = SiteObj.Records; if (0 == SiteObj.LastTime) { if (N > 1) { SiteObj.LastTime = SiteObj.RainClickLists[N - 2].tm; } } if (li.level > 0) { if (now - SiteObj.LastTime > 24 * 3600 || li.level > m_pSectionObj.SectionAlarmLevel) { VirtualLevelInfo = li;//save } } SiteObj.LastTime = now; return(li); }
public int Calc(ALARMLEVEL[] alarmLevels, int rows, int nRecords, RFCLICK[] g_pList, ASiteObj obj, ref LEVELINFO pLevelinfo, AVirtualSection avobj) { int i, hourRain, d; hourRain = 0; long N = nRecords; for (i = 0; i < rows; ++i) { if (alarmLevels[i].tag != TagType.tag_daily) { continue; } hourRain = alarmLevels[i].dur * 10; long _nLiftTime = 0; //int span = 0; //d = alarmLevels[i].delta * 10; //switch (alarmLevels[i].level) //{ // case 1: // span = d + avobj.PatrolValue; // break; // case 2: // span = d + avobj.LiftSpeedValue; // _nLiftTime = avobj.LiftSpeedTime; // break; // case 3: // span = d + avobj.BreakOpenValue; // break; // case 4: // span = d + avobj.FreightBreakOpenValue; // break; //} long _nNow = g_pList[N - 1].tm; if (_nNow - _nLiftTime >= alarmLevels[i].dur * 24 * 3600) { long _nStart = _nNow - alarmLevels[i].dur * 24 * 3600; int _nRain = 0; while (N >= 1) { if (g_pList[N - 1].tm <= _nNow && g_pList[N - 1].tm >= _nStart) { _nRain++; if (N == 1) { break; } if (g_pList[N - 1].tm - g_pList[N - 2].tm >= 48 * 3600) { break; } } else { break; } N--; } if (_nRain >= alarmLevels[i].delta * 10) { if (i < rows) { pLevelinfo.site_id = obj.SiteID; pLevelinfo.t1 = Time.DateTime2DbTime(System.DateTime.Now); pLevelinfo.t2 = alarmLevels[i].dur; pLevelinfo.delta = alarmLevels[i].delta * 10; pLevelinfo.level = alarmLevels[i].level; pLevelinfo.tag = TagType.tag_daily; pLevelinfo.liftValue = alarmLevels[i].liftValue; pLevelinfo.liftTime = 600; pLevelinfo.TRAIN = alarmLevels[i].TRAIN; } else { return(-1); } } } } return(pLevelinfo.level); }
public static extern int PostMessage( IntPtr hWnd, // 信息发往的窗口的句柄 int Msg, // 消息ID int wParam, // 参数1 ref LEVELINFO lParam //参数2 );
public int Calc(ALARMLEVEL[] alarmLevels, int rows, int nRecords, RFCLICK[] g_pList, ASiteObj obj, ref LEVELINFO pLevelinfo, AVirtualSection avobj) { /* * int i; * int hourRain = 0; * long N = nRecords; * for (i = 0; i < rows; ++i) * { * if (alarmLevels[i].tag != TagType.tag_hourcont) * continue; * hourRain = alarmLevels[i].dur * 10; * if (g_pList[N - 1].contJmp >= alarmLevels[i].delta * 10) * { * if (g_pList[N - 1].tm - g_pList[N - alarmLevels[i].delta * 10].tm < alarmLevels[i].c_time * 60) * { * int nDouble = 0; * switch (alarmLevels[i].level) * { * * case 3: * nDouble = hourRain + avobj.BreakOpenValue; * break; * case 4: * nDouble = hourRain + avobj.FreightBreakOpenValue; * break; * } * if (N >= nDouble) * { * long span = 0; * if (hourRain > 0) * span = g_pList[N - 1].tm - g_pList[N - hourRain].tm; * else * span = g_pList[N - 1].tm - g_pList[N - 1].tm; * if (span <= 3600) * { * if (i < rows) * { * pLevelinfo.site_id = obj.SiteID; * pLevelinfo.t1 = Time.DateTime2DbTime(System.DateTime.Now); * pLevelinfo.t2 = 0; * pLevelinfo.delta = g_pList[N - 1].contJmp; * pLevelinfo.level = alarmLevels[i].level; * pLevelinfo.tag = TagType.tag_hourcont; * pLevelinfo.hValue = hourRain; * pLevelinfo.liftValue = alarmLevels[i].liftValue; * pLevelinfo.liftTime = 600; * pLevelinfo.TRAIN = alarmLevels[i].TRAIN; * } * else * return -1; * } * } * } * * } * } * return pLevelinfo.level; */ return(0); }
public int Calc(ALARMLEVEL[] alarmLevels, int rows, int nRecords, RFCLICK[] g_pList, ASiteObj obj, ref LEVELINFO pLevelinfo, AVirtualSection avobj) { int i, hourRain; hourRain = 0; long N = nRecords; for (i = 0; i < rows; ++i) { if (alarmLevels[i].tag != TagType.tag_cont) { continue; } hourRain = alarmLevels[i].dur * 10; if (alarmLevels[i].level == 1) { if (g_pList[N - 1].contJmp == alarmLevels[i].delta * 10) { if (i < rows) { pLevelinfo.site_id = obj.SiteID; pLevelinfo.t1 = Time.DateTime2DbTime(System.DateTime.Now); pLevelinfo.t2 = 0; pLevelinfo.delta = g_pList[N - 1].contJmp; pLevelinfo.level = alarmLevels[i].level; pLevelinfo.tag = TagType.tag_cont; pLevelinfo.TRAIN = alarmLevels[i].TRAIN; } else { return(-1); } } } else { if (hourRain <= 0) { if (g_pList[N - 1].contJmp == alarmLevels[i].delta * 10) { if (i < rows) { pLevelinfo.site_id = obj.SiteID; pLevelinfo.t1 = Time.DateTime2DbTime(System.DateTime.Now); pLevelinfo.t2 = 0; pLevelinfo.delta = g_pList[N - 1].contJmp; pLevelinfo.level = alarmLevels[i].level; pLevelinfo.tag = TagType.tag_cont; pLevelinfo.hValue = hourRain; pLevelinfo.liftValue = alarmLevels[i].liftValue; pLevelinfo.liftTime = 600; pLevelinfo.TRAIN = alarmLevels[i].TRAIN; } else { return(-1); } } } else { if (g_pList[N - 1].contJmp >= alarmLevels[i].delta * 10) { int nDouble = 0; switch (alarmLevels[i].level) { case 2: nDouble = hourRain + avobj.LiftSpeedValue; break; case 3: nDouble = hourRain + avobj.BreakOpenValue; break; case 4: nDouble = hourRain + avobj.FreightBreakOpenValue; break; } if (N >= nDouble) { long span = 0; if (hourRain > 0) { span = g_pList[N - 1].tm - g_pList[N - hourRain].tm; } else { span = g_pList[N - 1].tm - g_pList[N - 1].tm; } if (span <= 3600) { if (i < rows) { pLevelinfo.site_id = obj.SiteID; pLevelinfo.t1 = Time.DateTime2DbTime(System.DateTime.Now); pLevelinfo.t2 = 0; pLevelinfo.delta = g_pList[N - 1].contJmp; pLevelinfo.level = alarmLevels[i].level; pLevelinfo.tag = TagType.tag_cont; pLevelinfo.hValue = hourRain; pLevelinfo.liftValue = alarmLevels[i].liftValue; pLevelinfo.liftTime = 600; pLevelinfo.TRAIN = alarmLevels[i].TRAIN; } else { return(-1); } } } } } } } return(pLevelinfo.level); }
public abstract void AlarmComputer(LEVELINFO li);
public abstract void SaveLevelInfo(LEVELINFO li);
public int Calc(ALARMLEVEL[] alarmLevels, int rows, int nRecords, RFCLICK[] g_pList, ASiteObj obj, ref LEVELINFO pLevelinfo, AVirtualSection avobj) { int i, d, h; int N = nRecords; for (i = 0; i < rows; i++) { if (alarmLevels[i].tag != TagType.tag_delta) { continue; } int span = 0; d = alarmLevels[i].delta * 10; switch (alarmLevels[i].level) { case 1: span = d + avobj.PatrolValue; break; case 2: span = d + avobj.LiftSpeedValue; break; case 3: span = d + avobj.BreakOpenValue; break; case 4: span = d + avobj.FreightBreakOpenValue; break; } if (N >= span) { if (g_pList[N - 1].tm - g_pList[N - d].tm <= alarmLevels[i].dur * 60) { if (alarmLevels[i].level > pLevelinfo.level) { pLevelinfo.dur = alarmLevels[i].dur.ToString(); pLevelinfo.level = alarmLevels[i].level; pLevelinfo.delta = d; pLevelinfo.t1 = g_pList[N - d].tm; pLevelinfo.t2 = g_pList[N - 1].tm; pLevelinfo.tag = TagType.tag_delta; pLevelinfo.liftValue = alarmLevels[i].liftValue; pLevelinfo.liftTime = 600; pLevelinfo.site_id = obj.SiteID; pLevelinfo.TRAIN = alarmLevels[i].TRAIN; } } } } return(pLevelinfo.level); }