Example #1
0
        private void InitializationSiteList()
        {
            siteInfo comm_site = CRainfallXmlHelper.getInstance().GetCommSiteInfo();
            ASiteObj obj       = InitializationComSite(comm_site);

            obj.DbHelper = m_pDbHelper;
            obj.InitializeComponent();
            m_pSiteObjList.Add(obj);
            obj.SiteName     = CRainfallXmlHelper.getInstance().siteName + "(" + obj.SiteKM + ")";
            obj.SiteObserver = m_pSiteObserver;
            AddSiteObjToSectinObj(obj);
            List <siteInfo> psslist = CRainfallXmlHelper.getInstance().GetRTUSiteInfo();

            foreach (siteInfo si in psslist)
            {
                ASiteObj asj = new CSiteObj();
                asj.SiteID    = si.id;
                asj.SiteKM    = si.km;
                asj.SectionID = si.section_id;
                asj.Type      = "ssl";
                asj.DbHelper  = m_pDbHelper;
                asj.InitializeComponent();
                asj.SiteName     = CRainfallXmlHelper.getInstance().siteName + "(" + si.km + ")";
                asj.SiteObserver = m_pSiteObserver;
                asj.RTUdaemon    = new rtu_daemon();
                m_pSiteObjList.Add(asj);
                AddSiteObjToSectinObj(asj);
            }
        }
        public string GetJSON(ASiteObj obj)
        {
            this.ContJumpTime = obj.ContJumpTime;
            this.NumJumpTime  = obj.NumJumpTime;
            JavaScriptSerializer serializer = new JavaScriptSerializer();

            return(serializer.Serialize(this));
        }
Example #3
0
        public int getMaxUnits(long start_time, int sec, _maxunit[] unit, ASiteObj site)
        {
            long h1, h2;
            int  s, e;
            int  delta;

            RFCLICK[] g_pList    = site.RainClickLists;
            int       g_nRecords = site.Records;

            if (0 == g_nRecords)
            {
                return(0);
            }

            for (s = 0, e = 1; s < g_nRecords - 1 && e < g_nRecords; ++s)
            {
                h1 = (g_pList[s].tm - start_time);
                if (h1 >= 0)
                {
                    h1 /= 3600;
                }
                h2 = (g_pList[e].tm - start_time);
                if (h2 >= 0)
                {
                    h2 /= 3600;
                }

                if (h1 >= 0 && h1 < 25 && h2 >= 0 && h2 < 25)
                {
                    while (e < g_nRecords && (g_pList[e].tm - g_pList[s].tm) < sec && h1 == h2)
                    {
                        delta = g_pList[e].numJmp - g_pList[s].numJmp + 1;
                        if (delta > unit[h1].max)
                        {
                            unit[h1].idx_end   = (short)e;
                            unit[h1].idx_start = (short)s;
                            unit[h1].max       = delta;
                            unit[h1].start     = g_pList[s].tm;
                            unit[h1].end       = g_pList[e].tm;
                        }
                        ++e;
                        if (e < g_nRecords)
                        {
                            h2 = (long)difftime(g_pList[e].tm, start_time) / 3600;
                        }
                    } // while
                }
                else
                {
                    ++e;
                }
            }
            int[] _start_mm = new int[48];
            int[] _mm       = new int[48];
            getMMByHour(start_time, 25, _start_mm, _mm, site);

            return(1);
        }
Example #4
0
 public override void  runninng(ASiteObj obj)
 {
     m_pHttpAsyncAliyun = new HttpAsyncAliyun();
     m_pHttpAsyncAliyun.onCompleteEvent  += new OnComplete(rtu_daemon_OnCompleteEvent);
     m_pHttpAsyncAliyun.onExceptionEvent += new OnException(rtu_daemon_onExceptionEvent);
     m_pSiteObj = obj;
     t          = new Thread(new ThreadStart(run));
     t.Name     = "RTU站点Request初始化";
     t.Start();
 }
Example #5
0
        public void ChangeActiveSite(string id)
        {
            foreach (ASiteObj obj in m_pSiteObjList)
            {
                if (obj.SiteID.Equals(id))
                {
                    m_pActiveSiteObj = obj;
                }
            }

            m_pToolBarControl.SetActivitySite(m_pActiveSiteObj);
            AsyncDrawRainMapImage();
        }
Example #6
0
 private void AddSiteObjTosectionObj(ASiteObj obj, string section_id)
 {
     foreach (ASectionObj sec in m_pSectionObjList)
     {
         if (obj.Type.Equals("ssl"))
         {
             if (sec.ID.Equals(section_id))
             {
                 sec.AddSiteObject(obj);
                 obj.SectionsName += string.Format("[{0}]", sec.SectionName);
             }
         }
     }
 }
Example #7
0
 private void InitializationSiteList()
 {
     #region 添加本地Comm采集对象
     siteInfo comm_site = CRainfallXmlHelper.getInstance().GetCommSiteInfo();
     if (!string.IsNullOrEmpty(comm_site.id))
     {
         ASiteObj obj = InitializationComSite(comm_site);
         obj.DbHelper = m_pDbHelper;
         obj.InitializeComponent();
         m_pSiteObjList.Add(obj);
         obj.SiteName     = string.Format("{0}", obj.SiteKM);
         obj.SiteObserver = m_pSiteObserver;
         AddSiteObjToSectinObj(obj);
         m_pDefaultSiteName = obj.SiteName;
     }
     #endregion
     List <siteInfo> psslist = CRainfallXmlHelper.getInstance().GetRTUSiteInfo();
     foreach (siteInfo si in psslist)
     {
         ASiteObj asj = new CSiteObj();
         asj.SiteID    = si.id;
         asj.SiteKM    = si.km;
         asj.SectionID = si.section_id;
         asj.Type      = "ssl";
         asj.DbHelper  = m_pDbHelper;
         asj.InitializeComponent();
         asj.SiteName     = string.Format("{0}", si.km);
         asj.SiteObserver = m_pSiteObserver;
         asj.RTUdaemon    = new rtu_daemon();
         // aliyun_daemon.getInstance().AddRTUObj(asj);
         bool bIsExist = false;
         foreach (ASiteObj ObjExist in m_pSiteObjList)
         {
             if (ObjExist.SiteID.Equals(asj.SiteID))
             {
                 bIsExist = true;
                 AddSiteObjTosectionObj(ObjExist, asj.SectionID);
                 break;
             }
         }
         if (!bIsExist)
         {
             m_pSiteObjList.Add(asj);
             AddSiteObjToSectinObj(asj);
         }
     }
 }
Example #8
0
 private void AddSiteObjToSectinObj(ASiteObj obj)
 {
     foreach (ASectionObj sec in m_pSectionObjList)
     {
         if (obj.Type.Equals("comm"))
         {
             sec.AddSiteObject(obj);
             obj.SectionsName += "[" + sec.SectionName + "]";
         }
         else
         {
             if (sec.ID.Equals(obj.SectionID))
             {
                 sec.AddSiteObject(obj);
                 obj.SectionsName += "[" + sec.SectionName + "]";
             }
         }
     }
 }
Example #9
0
 private void AddSiteObjToSectinObj(ASiteObj obj)
 {
     foreach (ASectionObj sec in m_pSectionObjList)
     {
         if (obj.Type.Equals("comm"))
         {
             if (CRepair.getInstance().IsInMainSite(sec.ID))
             {
                 sec.AddSiteObject(obj);
                 obj.SectionsName += string.Format("[{0}]", sec.SectionName);
             }
         }
         else
         {
             if (sec.ID.Equals(obj.SectionID))
             {
                 sec.AddSiteObject(obj);
                 obj.SectionsName += string.Format("[{0}]", sec.SectionName);
             }
         }
     }
 }
Example #10
0
        public Bitmap DrawRainMap(ref int nWidth, ref int nHeight, bool bRealtime, ASiteObj site)
        {
            GetParams();
            m_nOneHourWidth    = (m_nParentWidth - m_nHMarigineLeft - m_nHMarigineRight) / 25;
            m_nOneMmRainHeight = (m_nParentHeight - m_nVMarigineTop - m_nVMarigineBottom) / 10;
            m_nMapWidth        = m_nNumOfDays * 25 * m_nOneHourWidth + m_nHMarigineLeft + m_nHMarigineRight;
            m_nMapHeight       = m_nMaxRainHeight * m_nOneMmRainHeight + m_nVMarigineTop + m_nVMarigineBottom;
            nWidth             = m_nMapWidth;
            nHeight            = m_nMapHeight;

            System.Drawing.Bitmap pBitmap = new Bitmap(m_nMapWidth, m_nMapHeight);//

            System.Drawing.Graphics pGraphics = System.Drawing.Graphics.FromImage(pBitmap);
            pGraphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
            if (bRealtime)
            {
            }
            if (OnCountRainStartAndStopTimeEvent != null)
            {
                OnCountRainStartAndStopTimeEvent(m_nBeginTime, bRealtime);
            }

            g_mu       = new _maxunit[100];
            g_start_mm = new int[100];
            g_mm       = new int[100];

            m_pSiteRainCalc.getMaxUnits(m_nBeginTime, 600, g_mu, site);
            m_pSiteRainCalc.getMMByHour(m_nBeginTime, 25, g_start_mm, g_mm, site);
            DrawRainAxis(pGraphics);

            DrawRainLine(pGraphics, site.RainClickLists, site.Records, bRealtime, g_mu);


            pGraphics.Dispose();
            GC.Collect();

            return(pBitmap);
        }
Example #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);
        }
Example #12
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);
 }
Example #13
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);
        }
Example #14
0
        public void getMMByHour(long t0 /* start time */, int hours, int[] start_mm, int[] mm, ASiteObj site)
        {
            long diff;
            int  h;
            int  i;

            RFCLICK[] g_pList    = site.RainClickLists;
            int       g_nRecords = site.Records;
            RFCLICK   m_startClick;

            m_startClick.tm      = 0;
            m_startClick.contJmp = 0;
            for (int j = 0; j < g_nRecords; j++)
            {
                if (g_pList[j].tm < t0)
                {
                    m_startClick.tm      = g_pList[j].tm;
                    m_startClick.contJmp = g_pList[j].contJmp;
                }
                else
                {
                    break;
                }
            }
            diff = m_startClick.tm - t0;
            if (diff > -24 * 3600 && diff < 0)
            {
                for (h = 0; h < (diff + 24 * 3600 + 3599) / 3600; h++)
                {
                    start_mm[h] = m_startClick.contJmp;
                }
            }
            for (i = 0; i < g_nRecords; i++)
            {
                diff = g_pList[i].tm - t0;
                if (diff >= 0 && diff < hours * 3600)
                {
                    for (h = (int)((diff + 3599) / 3600); h <= Math.Min((diff + 24 * 3600 + 3599) / 3600, hours); h++)
                    {
                        start_mm[h] = g_pList[i].contJmp;
                    }
                    mm[diff / 3600]++;
                }
            }
            return;
        }
 public void SetActivitySite(ASiteObj obj)
 {
 }
Example #16
0
 public void SetDefault(ASiteObj site)
 {
     m_pCurSite    = site;
     lbSiteKm.Text = m_pCurSite.SiteName;
 }
Example #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);
        }