// 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; }
public void Set5MinAvgData(VD1MinCycleEventData data) { lock (lockobj) { LastVDDateTime = data.datatime; queue.Enqueue(data); System.Threading.Monitor.PulseAll(lockobj); } }
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; }
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(); }
//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 { ;} //} }
public void Set5MinAvgData(VD1MinCycleEventData data) { Set5MinAvgDataTask(data); //latest5minAvgVdData = data; //lock (FiveMinLockObj) //{ // System.Threading.Monitor.Pulse(FiveMinLockObj); //} }
// 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); }
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); }