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)); }
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(); }
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(); }