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)); }
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); }
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(); }
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(); }
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); } } } }
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); } } }
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 + "]"; } } } }
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); } } } }
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); }
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 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 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) { }
public void SetDefault(ASiteObj site) { m_pCurSite = site; lbSiteKm.Text = m_pCurSite.SiteName; }
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); }