コード例 #1
0
ファイル: JamManager.cs プロジェクト: ufjl0683/Center
        //public void DoVD_InteropDataTask()
        //{
        //}
        public void DoVD_InteropData(string devName, System.DateTime dt)
        {
            VDDeviceWrapper dev = htVDDevices[devName] as VDDeviceWrapper;
               VDDeviceWrapper predev = dev.PreDevice as VDDeviceWrapper;
               VDDeviceWrapper nextdev = dev.NextDevice  as VDDeviceWrapper;
               RemoteInterface.MFCC.VD1MinCycleEventData preData=null, nextData=null;
               if (predev != null && predev.IsConnected &&
               Program.matrix.line_mgr[predev.lineid].getSectionByMile(predev.direction, predev.mile_m).sectionId == Program.matrix.line_mgr[dev.lineid].getSectionByMile(dev.direction, dev.mile_m).sectionId)

               try
               {
                   preData = predev.getRemoteObj().getVDLatest1MinData(predev.deviceName);
               }
               catch { ;}

             if (nextdev != null && nextdev.IsConnected &&
               Program.matrix.line_mgr[nextdev.lineid].getSectionByMile(nextdev.direction, nextdev.mile_m).sectionId == Program.matrix.line_mgr[dev.lineid].getSectionByMile(dev.direction, dev.mile_m).sectionId)
                 try
                 {
                     nextData = nextdev.getRemoteObj().getVDLatest1MinData(nextdev.deviceName);
                 }
                 catch { ;}

             int vol=0, speed=0, occ=0;

             RemoteInterface.MFCC.VD1MinCycleEventData[] data = new RemoteInterface.MFCC.VD1MinCycleEventData[2] { preData, nextData };

            int cnt=0;
               for (int i = 0; i < data.Length; i++)
             {

                 if (data[i] == null ||  !data[i].IsValid) continue;
                 if (System.DateTime.Now.Subtract(data[i].datatime).TotalMinutes > 10)
                     continue;
                 vol += data[i].vol;
                 speed += data[i].speed;
                 occ += data[i].occupancy;

                 cnt++;

             }

             if (cnt == 0)
             {
                 Program.matrix.dbServer.SendSqlCmd("update tblVDData1min set datavalidity='I' where devicename='"+devName+"' and timestamp='"+DbCmdServer.getTimeStampString(dt)+"'");

                 return;
             }

             vol /= cnt;
             speed /= cnt;
             occ /= cnt;

               string sql="update tblVDData1min set Car_Volume={0},Car_Speed={1},Average_Occupancy={2},datavalidity='V',Utility=2 where devicename='{3}' and timestamp='{4}' ";
               Program.matrix.dbServer.SendSqlCmd(string.Format(sql, vol, speed, occ,devName,DbCmdServer.getTimeStampString(dt)));

            //   Util.SysLog("interop.log", predev.deviceName + "," + devName + "," + nextdev.deviceName + ",vol=" + vol + ",spd=" + speed + ",occ=" + occ);
        }
コード例 #2
0
ファイル: FrmSimulate.cs プロジェクト: ufjl0683/Center
        private void tmrvd_Tick(object sender, EventArgs e)
        {
            this.BindingContext[ds, "tblVD5Min"].EndCurrentEdit();
            ds.tblVD5Min.AcceptChanges();

            foreach (DataSet1.tblVD5MinRow r in ds.tblVD5Min.Rows)
            {
                try
                {
                    RemoteInterface.MFCC.VD1MinCycleEventData data = new RemoteInterface.MFCC.VD1MinCycleEventData(r.DeviceName, System.DateTime.Now, r.Speed, r.Vol, r.Occupancy, r.Length, r.Interval, null, null, true);
                    (this.MdiParent as FrmMain).rhost.setVDFiveMinData(r.DeviceName, data);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }