private bool readNewVehicleDatas() { bool bRet = false; int iVhclCount = 0; try { List <AVEHICLE> lstEq = mainForm.BCApp.SCApplication.getEQObjCacheManager().getAllVehicle(); iVhclCount = lstEq.Count; m_objItemNewVhcl = new uctlNewVehicle[iVhclCount]; m_objItemPic = new PictureBox[iVhclCount * 2]; for (int ii = 0; ii < iVhclCount; ii++) { PictureBox pic_AlarmStatus = new PictureBox(); //pic_AlarmStatus.Size = new Size(64, 48); pic_AlarmStatus.SizeMode = PictureBoxSizeMode.Zoom; pic_AlarmStatus.BackColor = Color.Transparent; pic_AlarmStatus.Visible = false; PictureBox pic_CstIcon = new PictureBox(); pic_CstIcon.Size = new Size(Resources.Action__Cassette_.Size.Width / 2, Resources.Action__Cassette_.Size.Height / 2); pic_CstIcon.SizeMode = PictureBoxSizeMode.Zoom; pic_CstIcon.BackColor = Color.Transparent; pic_CstIcon.Visible = false; pic_CstIcon.Image = Resources.Action__Cassette_; m_objItemNewVhcl[ii] = new uctlNewVehicle(lstEq[ii], this, pic_AlarmStatus, pic_CstIcon); m_objItemNewVhcl[ii].Num = ii + 1; //m_objItemNewVhcl[ii].p_SizeW = m_objItemVhcl[ii].Width; //m_objItemNewVhcl[ii].p_SizeH = m_objItemVhcl[ii].Height; //m_objItemNewVhcl[ii].Width = Resources.Vehicle__Unconnected_.Width / 2; //m_objItemNewVhcl[ii].Height = Resources.Vehicle__Unconnected_.Height / 2; //m_objItemNewVhcl[ii].Left = m_objItemNewVhcl[ii].Width / 2; //m_objItemNewVhcl[ii].Top = m_objItemNewVhcl[ii].Height / 2; // m_objItemNewVhcl[ii].p_Presence = false; m_objItemPic[ii * 2] = pic_AlarmStatus; m_objItemPic[(ii * 2) + 1] = pic_CstIcon; } if (iVhclCount > 0) { this.pnl_Map.Controls.AddRange(m_objItemNewVhcl); } if (m_objItemPic.Length > 0) { this.pnl_Map.Controls.AddRange(m_objItemPic); } bRet = true; } catch (Exception ex) { logger.Error(ex, "Exception"); bRet = false; } return(bRet); }
private void WalkingForward(uctlNewVehicle vh, double distance_scale, uctlRail matchRail, int railInterval_Pix) { int Location_X = (int)matchRail.p_Points[0].RealPointf.X; int Location_Y = (int)matchRail.p_Points[0].RealPointf.Y; if (matchRail.p_RailType == E_RAIL_TYPE.Straight_Horizontal) { vh.PrcSetLocation(Location_X + railInterval_Pix, Location_Y); } else if (matchRail.p_RailType == E_RAIL_TYPE.Straight_Vertical) { vh.PrcSetLocation(Location_X, Location_Y + railInterval_Pix); } else { if (distance_scale == 1) { vh.PrcSetLocation((int)matchRail.p_Points[1].RealPointf.X, (int)matchRail.p_Points[1].RealPointf.Y); } else { vh.PrcSetLocation((int)matchRail.p_RealCenterPoint.X, (int)matchRail.p_RealCenterPoint.Y); } } }
public void VehicleEnterSection(uctlNewVehicle vh, string address_id, double sec_dis) { //vehicles.Add(vh); if (!dicVehicles.ContainsKey(address_id)) { dicVehicles.Add(address_id, new List <uctlVehicle>()); } // dicVehicles[address_id].Add(vh); vh.CurrentSecID = Section_ID; refreshVehicleLoaction(vh, sec_dis); }
public void VehicleEnterSection(uctlNewVehicle vh, string address_id, double sec_dis , sc.ProtocolFormat.OHTMessage.DriveDirction driveDirction) { //vehicles.Add(vh); if (!dicVehicles.ContainsKey(address_id)) { dicVehicles.Add(address_id, new List <uctlVehicle>()); } // dicVehicles[address_id].Add(vh); vh.CurrentSecID = Section_ID; refreshVehicleLoaction(vh, sec_dis, driveDirction); }
private void refreshVehicleLoaction(uctlNewVehicle vh, double sec_dis, sc.ProtocolFormat.OHTMessage.DriveDirction driveDirction) { //if (driveDirction == sc.ProtocolFormat.OHTMessage.DriveDirction.DriveDirReverse) //{ // if (RealDistance >= sec_dis)//確保不會一減 ,就變負的 // sec_dis = RealDistance - sec_dis; // else // sec_dis = 0; //} double distance_scale = 1; double distanceTemp = 0; if (RealDistance > 10) { distance_scale = sec_dis / RealDistance; } else { } distanceTemp = Distance * distance_scale; int railInterval = 0; uctlRail matchRail = findTheMatchingRail((int)distanceTemp, out railInterval); int railInterval_Pix = (int)BCUtility.RealLengthToPixelsWidthByScale((double)railInterval); //int Location_X = 0; //int Location_Y = 0; KeyValuePair <uctlRail, E_RAIL_DIR> keyValuePairTemp = uctlRails.Where(keyValue => keyValue.Key == matchRail).SingleOrDefault(); if (keyValuePairTemp.Equals(default(KeyValuePair <uctlRail, E_RAIL_DIR>))) { return; } E_RAIL_DIR railDIR = keyValuePairTemp.Value; //switch (RailDircetion) switch (railDIR) { case E_RAIL_DIR.F: WalkingForward(vh, distance_scale, matchRail, railInterval_Pix); break; case E_RAIL_DIR.R: ReverseWalking(vh, distance_scale, matchRail, railInterval_Pix); break; } }
public void VehicleLeave(uctlNewVehicle vh) { //vehicles.Remove(vh); }
private void refreshVehicleLoaction(uctlNewVehicle vh, double sec_dis) { double distance_scale = 1; double distanceTemp = 0; if (RealDistance > 10) { distance_scale = sec_dis / RealDistance; } else { } distanceTemp = Distance * distance_scale; int railInterval = 0; uctlRail matchRail = findTheMatchingRail((int)distanceTemp, out railInterval); int railInterval_Pix = (int)BCUtility.RealLengthToPixelsWidthByScale((double)railInterval); int Location_X = 0; int Location_Y = 0; KeyValuePair <uctlRail, E_RAIL_DIR> keyValuePairTemp = uctlRails.Where(keyValue => keyValue.Key == matchRail).SingleOrDefault(); if (keyValuePairTemp.Equals(default(KeyValuePair <uctlRail, E_RAIL_DIR>))) { return; } E_RAIL_DIR railDIR = keyValuePairTemp.Value; //switch (RailDircetion) switch (railDIR) { case E_RAIL_DIR.F: Location_X = (int)matchRail.p_Points[0].RealPointf.X; Location_Y = (int)matchRail.p_Points[0].RealPointf.Y; if (matchRail.p_RailType == E_RAIL_TYPE.Straight_Horizontal) { vh.PrcSetLocation(Location_X + railInterval_Pix, Location_Y); } else if (matchRail.p_RailType == E_RAIL_TYPE.Straight_Vertical) { vh.PrcSetLocation(Location_X, Location_Y + railInterval_Pix); } else { if (distance_scale == 1) { vh.PrcSetLocation((int)matchRail.p_Points[1].RealPointf.X, (int)matchRail.p_Points[1].RealPointf.Y); } else { vh.PrcSetLocation((int)matchRail.p_RealCenterPoint.X, (int)matchRail.p_RealCenterPoint.Y); } } break; case E_RAIL_DIR.R: Location_X = (int)matchRail.p_Points[1].RealPointf.X; Location_Y = (int)matchRail.p_Points[1].RealPointf.Y; if (matchRail.p_RailType == E_RAIL_TYPE.Straight_Horizontal) { vh.PrcSetLocation(Location_X - railInterval_Pix, Location_Y); } else if (matchRail.p_RailType == E_RAIL_TYPE.Straight_Vertical) { vh.PrcSetLocation(Location_X, Location_Y - railInterval_Pix); } else { if (distance_scale == 1) { vh.PrcSetLocation((int)matchRail.p_Points[1].RealPointf.X, (int)matchRail.p_Points[1].RealPointf.Y); } else { vh.PrcSetLocation((int)matchRail.p_RealCenterPoint.X, (int)matchRail.p_RealCenterPoint.Y); } } break; } }
public void VehicleEnterSection(uctlNewVehicle vh, string address_id, double sec_dis , sc.ProtocolFormat.OHTMessage.DriveDirction driveDirction) { vh.CurrentSecID = Section_ID; refreshVehicleLoaction(vh, sec_dis, driveDirction); }