コード例 #1
0
        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();
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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();
        }
コード例 #4
0
 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();
         }
     }
 }
コード例 #5
0
        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;
            }
        }
コード例 #6
0
        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();
        }
コード例 #7
0
        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);
        }
コード例 #8
0
 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();
 }
コード例 #9
0
        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);
                    }
                }
            }
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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);
        }
コード例 #12
0
 public static extern int PostMessage(
     IntPtr hWnd,         // 信息发往的窗口的句柄
     int Msg,             // 消息ID
     int wParam,          // 参数1
     ref LEVELINFO lParam //参数2
     );
コード例 #13
0
 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);
 }
コード例 #14
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);
        }
コード例 #15
0
 public abstract void AlarmComputer(LEVELINFO li);
コード例 #16
0
 public abstract void SaveLevelInfo(LEVELINFO li);
コード例 #17
0
        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);
        }