Ejemplo n.º 1
0
 //  public event OnNew5MinAvgDataInHandler On5MinAvdData;
 public VDDeviceWrapper(string mfccid, string devicename, string deviceType, string ip, int port, string location, string lineid, int mile_m, byte[] hw_status, byte opmode, byte opstatus,string direction,int start_mileage,int end_mileage)
     : base(mfccid, devicename, deviceType, ip, port, location, lineid, mile_m, hw_status, opmode, opstatus,direction)
 {
     latest5minAvgVdData = new VD1MinCycleEventData(this.deviceName, System.DateTime.Now, -1, -1, -1, -1, -1, null,null ,false);
        jamLevel = -1;
        this.start_mileage = start_mileage;
        this.end_mileage = end_mileage;
 }
Ejemplo n.º 2
0
 public void Set5MinAvgData(VD1MinCycleEventData data)
 {
     lock (lockobj)
        {
        LastVDDateTime = data.datatime;
        queue.Enqueue(data);
        System.Threading.Monitor.PulseAll(lockobj);
        }
 }
Ejemplo n.º 3
0
 public VD1MinCycleEventData(string devName,DateTime dt,int speed,int vol ,int occupancy,int length,int interval,VD1MinCycleEventData[]lanedata,System.Data.DataSet orgds,bool isValid)
 {
     this.devName = devName;
      this.speed = speed;
      this.vol = vol;
      this.occupancy = occupancy;
      this.datatime = dt;
      this.orgds=orgds;
      this.lanedata = lanedata;
      this.interval = interval;
      this.length = length;
      this.IsValid = isValid;
 }
Ejemplo n.º 4
0
        public VDDeviceWrapper(string mfccid, string devicename, string deviceType, string ip, int port, string location, string lineid, int mile_m, byte[] hw_status, byte opmode, byte opstatus,string direction,int start_mileage,int end_mileage)
            : base(mfccid, devicename, deviceType, ip, port, location, lineid, mile_m, hw_status, opmode, opstatus,direction)
        {
            try
               {
               this.aidobject = new AID.AIDobject(this.deviceName);
               }
               catch(Exception ex)
               {
                   ConsoleServer.WriteLine(ex.Message);
               }

               latest5minAvgVdData = new VD1MinCycleEventData(this.deviceName, System.DateTime.Now, -1, -1, -1, -1, -1, null,null ,false);
               jamLevel = -1;
               this.start_mileage = start_mileage;
               this.end_mileage = end_mileage;
               //    new System.Threading.Thread(SetVD5MinAvgDataTask1).Start();
        }
Ejemplo n.º 5
0
        //void SetVD5MinAvgDataTask1( )
        //{
        //    while (true)
        //    {
        //        lock (FiveMinLockObj)
        //        {
        //            System.Threading.Monitor.Wait(FiveMinLockObj);
        //        }
        //        Set5MinAvgDataTask(latest5minAvgVdData);
        //    }
        //}
        private void Set5MinAvgDataTask(VD1MinCycleEventData data )
        {
            // VD1MinCycleEventData data;

             //while (true)
             //{
                 try
                 {
                     //lock (FiveMinLockObj)
                     //{
                     //    System.Threading.Monitor.Wait(FiveMinLockObj);
                     //}

                    this.latest5minAvgVdData=data;

                     //int speed;

                     #region body
                     if (data.IsValid)
                     {
                         int tmp, tmpcslcLevel;
                         if (data.vol != 0)
                         {    //jamLevel = Program.matrix.vd_jam_eval.getLevel(this.location, data.speed, data.occupancy);

                             tmp = Program.matrix.vd_jam_eval.getLevel(this.location, this.AvgSpeed, this.AvgOcc);
                             //  tmp = jamLevel;

                             if (tmp != jamLevel)
                             {
                                 jamLevel = tmp;
                                 if (this.OnEvent != null)
                                     this.OnEvent(this, null);
                             }
                             if (this.latest5minAvgVdData != null && this.latest5minAvgVdData.lanedata != null && this.latest5minAvgVdData.lanedata[0].lanedata != null && this.latest5minAvgVdData.lanedata[0].lanedata.Length != 0)
                             {
                                 tmpcslcLevel = GetCSLSControlLevel(this.AvgSpeed, this.AvgVol / this.latest5minAvgVdData.lanedata[0].lanedata.Length);
                                 if (tmpcslcLevel != this.cslsControlLevel)
                                 {
                                     this.cslsControlLevel = tmpcslcLevel;
                                     if (this.OnCSLSControlEvent != null)
                                         this.OnCSLSControlEvent(this, this.cslsControlLevel);
                                 }

                             }

                         }
                         else
                         {
                             if (jamLevel != 0)
                             {
                                 jamLevel = 0;
                                 if (this.OnEvent != null)
                                     this.OnEvent(this, null);
                             }

                             if (cslsControlLevel != 0)
                             {
                                 cslsControlLevel = 0;
                                 if (this.OnCSLSControlEvent != null)
                                     this.OnCSLSControlEvent(this, cslsControlLevel);
                             }

                         }
                     }
                     else
                     {
                         jamLevel = -1;
                     }
                     #endregion

                 }
                 catch
                 { ;}
             //}
        }
Ejemplo n.º 6
0
 public void Set5MinAvgData(VD1MinCycleEventData data)
 {
     Set5MinAvgDataTask(data);
        //latest5minAvgVdData = data;
        //lock (FiveMinLockObj)
        //{
        //    System.Threading.Monitor.Pulse(FiveMinLockObj);
        //}
 }
Ejemplo n.º 7
0
        // for client event use!
        public RemoteInterface.MFCC.VD1MinCycleEventData ToVD1MinCycleEventData()
        {
            RemoteInterface.MFCC.VD1MinCycleEventData[] lanedata = null;

            try
            {

                if (this.orgds != null)
                    this.orgds.AcceptChanges();
                if (this.orgVDLaneData != null)
                {
                    lanedata = new RemoteInterface.MFCC.VD1MinCycleEventData[this.orgVDLaneData.Length];
                    for (int i = 0; i < this.orgVDLaneData.Length; i++)
                    {
                        VD1MinCycleEventData[] subLanedata=null;
                        if (orgVDLaneData[i].orgVDLaneData != null)
                        {
                            subLanedata = new VD1MinCycleEventData[orgVDLaneData[i].orgVDLaneData.Length];
                            for (int j = 0; j < orgVDLaneData[i].orgVDLaneData.Length; j++)
                                subLanedata[j] = orgVDLaneData[i].orgVDLaneData[j].ToVD1MinCycleEventData();
                        }
                        lanedata[i] = new RemoteInterface.MFCC.VD1MinCycleEventData(devName, new DateTime(this.year, this.month, this.day, this.hour, this.min, 0), orgVDLaneData[i].speed, orgVDLaneData[i].vol, orgVDLaneData[i].occupancy, orgVDLaneData[i].length, orgVDLaneData[i].interval,subLanedata, null, orgVDLaneData[i].IsValid);
                    }
                }
            }
            catch (Exception ex)
            {
                RemoteInterface.ConsoleServer.WriteLine(ex.Message+ex.StackTrace);
            }

                return new RemoteInterface.MFCC.VD1MinCycleEventData(this.devName, new DateTime(this.year, this.month, this.day, this.hour, this.min, 0), speed, vol, occupancy, length, interval, lanedata, this.orgds, this.IsValid);
        }
Ejemplo n.º 8
0
        public void Set5MinAvgData(VD1MinCycleEventData data)
        {
            this.latest5minAvgVdData = data;

               //int speed;

               if (data.IsValid)
               {
               int tmp;
               if (data.vol != 0)
               {    //jamLevel = Program.matrix.vd_jam_eval.getLevel(this.location, data.speed, data.occupancy);

                   tmp = Program.matrix.vd_jam_eval.getLevel(this.location, this.AvgSpeed, this.AvgOcc);
                   //  tmp = jamLevel;

                   if (tmp != jamLevel)
                   {
                       jamLevel = tmp;
                       if (this.OnEvent != null)
                           this.OnEvent(this, null);
                   }

               }
               else
               {
                   if (jamLevel != 0)
                   {
                       jamLevel = 0;
                       if (this.OnEvent != null)
                           this.OnEvent(this, null);
                   }

               }
               }
               else
               {
               jamLevel = -1;
               }
               //if(this.On5MinAvdData!=null)
               //    this.On5MinAvdData(data);
        }