Пример #1
0
 public void subCallback(Messages.std_msgs.UInt8MultiArray msg)
 {
     App.Current.Dispatcher.Invoke(new Action(() =>
     {
         //msg.data[0]
         if (receive != null)
         {
             receive(msg.data);
         }
     }), new TimeSpan(0, 0, 1));
 }
Пример #2
0
        void publishCameraThread()
        {
            if (pubthreadCamara != null)
            {
                pubthreadCamara.Abort();
            }
            pubthreadCamara = new Thread(() =>
            {
                Thread download = null;
                while (ROS.ok && !closing)
                {
                    Messages.std_msgs.UInt8MultiArray msg = new Messages.std_msgs.UInt8MultiArray();
                    msg.data = camera_data;

                    pub_camera.publish(msg);



                    if (camera_data[0] == System.Text.Encoding.Default.GetBytes("d")[0])
                    {
                        if (download != null)
                        {
                            download.Abort();
                        }
                        download = new Thread(() =>
                        {
                            //Thread.Sleep(200);
                            string date   = string.Format("{0:yyyyMMddHHmmss}", DateTime.Now);
                            var remoteAvi = System.Configuration.ConfigurationManager.AppSettings["remoteAvi"];
                            var localAvi  = System.Configuration.ConfigurationManager.AppSettings["localAvi"];
                            for (int i = 1; i < 7; i++)
                            {
                                string errorinfo;
                                string localfile  = localAvi + date + "_" + i + ".avi";
                                string filename   = remoteAvi + "camera" + i + ".avi";
                                SFTPOperation ftp = new SFTPOperation(host, "22", "fanfan", "fanfan");
                                ftp.Get(filename, localfile);
                            }
                        });
                        download.Start();
                    }
                    //for (int i = 0; i < camera_data.Length; i++)
                    //{
                    //    camera_data[i] = 0;
                    //}

                    autoEvent_pub_camera.WaitOne();
                }
            });
            pubthreadCamara.Start();
        }
Пример #3
0
 void publishControlThread()
 {
     if (pubthread != null)
     {
         pubthread.Abort();
     }
     pubthread = new Thread(() =>
     {
         while (ROS.ok && !closing)
         {
             Messages.std_msgs.UInt8MultiArray msg;
             msg      = new Messages.std_msgs.UInt8MultiArray();
             msg.data = control_data;
             pub_control.publish(msg);
             Thread.Sleep(100);
             //autoEvent_pub_control.WaitOne();
         }
     });
     pubthread.Start();
 }