示例#1
0
 private void refreshAgv()
 {
     if (_map != null)
     {
         foreach (AgvMarker marker in agvLayer.Children)
         {
             AgvInfo agv = marker.AgvInfo;
             if (agv.Online)
             {
                 UInt16 cardId = agv.PositionCardId;
                 Point  position;
                 if (_map.getCardPosition(cardId, out position))
                 {
                     marker.SetValue(Canvas.LeftProperty, position.X - marker.OffsetX);
                     marker.SetValue(Canvas.TopProperty, position.Y - marker.OffsetY);
                     marker.Visibility = Visibility.Visible;
                 }
             }
             else
             {
                 marker.Visibility = Visibility.Collapsed;
             }
         }
     }
 }
示例#2
0
        private void agvListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            AgvInfo agvinfo = agvListView.SelectedItem as AgvInfo;

            AgvInfoManager.instance.SetCurrent(agvinfo.Id);

            currentAgvChanged();
        }
示例#3
0
        private AgvInfoManager()
        {
            _agvs = new ObservableCollection <AgvInfo>();

            List <Agv> agvs = getAgvs();

            foreach (Agv agv in agvs)
            {
                AgvInfo info = new AgvInfo();
                info.Id     = agv.Id;
                info.Online = false;
                _agvs.Add(info);
            }
        }
示例#4
0
 public void AddOrUpdate(ushort agvId, AgvInfo info)
 {
     if (vehicleInited == false)
     {
         return;
     }
     if (agvId >= vehicles.Length)
     {
         Logs.Error("程序预设的agv数量少了");
         return;
     }
     if (info == null)
     {
         return;
     }
     vehicles[(int)agvId].agvInfo = info;
 }
 public void AddOrUpdate(ushort agvId, AgvInfo info)
 {
     if (vehicleInited == false)
     {
         return;
     }
     //if (agvId >= vehicles.Length)
     //{
     //    Logs.Error("程序预设的agv数量少了");
     //    return;
     //}
     if (info == null)
     {
         return;
     }
     //
     vehicles[(int)agvId].agvInfo = info;
     // Console.WriteLine(info.CurLocation.AgvAngle.Angle);
 }
        protected override void Run()
        {
            try
            {
                if (sqlConn != null && sqlConn.State == ConnectionState.Open)
                {
                    //if (CmdTxtQueue.Instance.IsHasData())
                    //{
                    //    string cmdStr = CmdTxtQueue.Instance.Dequeue();
                    //    SqlHelper.ExecNonQuery(sqlConn, cmdStr);
                    //}

                    ConcurrentDictionary <ushort, AgvInfo> agvInfo = AgvServerManager.Instance.GetAgvInfo;
                    foreach (var key in agvInfo.Keys)
                    {
                        int     id   = key;
                        AgvInfo info = null;
                        agvInfo.TryGetValue(key, out info);
                        if (info != null)
                        {
                            string str = string.Format("update Vehicle set CurX={0} ,CurY={1}, DesX={2}, DesY={3} where Id={4}",
                                                       info.CurLocation.CurNode.X, info.CurLocation.CurNode.Y,
                                                       info.CurLocation.DesNode.X, info.CurLocation.DesNode.Y,
                                                       id);
                            SqlHelper.ExecNonQuery(sqlConn, str);
                        }
                    }
                }
                else
                {
                    Console.WriteLine("数据库未连接");
                }
                Thread.Sleep(ConstDefine.UPDATA_SQL_TIME);
            }
            catch (Exception ex)
            {
                Logs.Error("更新小车信息到数据库异常,退出UpdatasqlThread线程,异常:" + ex.ToString());
            }
        }
示例#7
0
 public AgvInfoPacket(byte[] data)
     : base("AgvInfoPacket", data)
 {
     this.info     = new AgvInfo(data, 7);
     this.CheckSum = data[NeedLen() - 1];
 }