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);
                }
            }
        }
Example #3
0
 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);
 }
Example #7
0
        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;
            }
        }
Example #8
0
 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);
 }