private void Window_Loaded(object sender, RoutedEventArgs e) { controllerUpdater = new DispatcherTimer() { Interval = new TimeSpan(0, 0, 0, 0, 10) }; controllerUpdater.Tick += Link; controllerUpdater.Start(); new Thread(() => { // ROS stuff ROS.ROS_MASTER_URI = "http://10.0.3.5:11311"; ROS.Init(new string[0], "The_Cam_Tester_" + System.Environment.MachineName.Replace("-", "__")); nh = new NodeHandle(); tilt_pub = new Publisher<m.Int32>[4]; recalPub0 = nh.advertise<Messages.rock_publisher.recalibrateMsg>("/camera0/recalibrate", 4); recalPub1 = nh.advertise<Messages.rock_publisher.recalibrateMsg>("/camera1/recalibrate", 4); recalPub2 = nh.advertise<Messages.rock_publisher.recalibrateMsg>("/camera2/recalibrate", 4); recalPub3 = nh.advertise<Messages.rock_publisher.recalibrateMsg>("/camera3/recalibrate", 4); for (int i = 0; i < 4; i++) { tilt_pub[i] = nh.advertise<m.Int32>("camera" + i + "/tilt", 1); } Dispatcher.Invoke(new Action(() => { mainCameras = new TabItem[] { MainCamera1, MainCamera2, MainCamera3, MainCamera4 }; subCameras = new TabItem[] { SubCamera1, SubCamera2, SubCamera3, SubCamera4 }; mainImages = new ROS_ImageWPF.CompressedImageControl[] { camImage0, camImage1, camImage2, camImage3 }; subImages = new ROS_ImageWPF.SlaveImage[] { camImageSlave0, camImageSlave1, camImageSlave2, camImageSlave3 }; for (int i = 0; i < mainCameras.Length; i++) { mainImages[i].AddSlave(subImages[i]); } subCameras[1].Focus(); // instantiating some global helpers detectors = new DetectionHelper[4]; for (int i = 0; i < 4; ++i) { detectors[i] = new DetectionHelper(nh, i, this); } })); while (ROS.ok) { Dispatcher.Invoke(new Action(() => { for (int i = 0; i < 4; ++i) { detectors[i].churnAndBurn(); } })); Thread.Sleep(100); } }).Start(); }
private void Window_Loaded(object sender, RoutedEventArgs e) { controllerUpdater = new DispatcherTimer() { Interval = new TimeSpan(0, 0, 0, 0, 10) }; controllerUpdater.Tick += Link; controllerUpdater.Start(); new Thread(() => { // ROS stuff ROS.ROS_MASTER_URI = "http://10.0.3.5:11311"; ROS.Init(new string[0], "The_Cam_Tester_" + System.Environment.MachineName.Replace("-", "__")); nh = new NodeHandle(); tilt_pub = new Publisher <m.Int32> [4]; recalPub0 = nh.advertise <Messages.rock_publisher.recalibrateMsg>("/camera0/recalibrate", 4); recalPub1 = nh.advertise <Messages.rock_publisher.recalibrateMsg>("/camera1/recalibrate", 4); recalPub2 = nh.advertise <Messages.rock_publisher.recalibrateMsg>("/camera2/recalibrate", 4); recalPub3 = nh.advertise <Messages.rock_publisher.recalibrateMsg>("/camera3/recalibrate", 4); for (int i = 0; i < 4; i++) { tilt_pub[i] = nh.advertise <m.Int32>("camera" + i + "/tilt", 1); } Dispatcher.Invoke(new Action(() => { mainCameras = new TabItem[] { MainCamera1, MainCamera2, MainCamera3, MainCamera4 }; subCameras = new TabItem[] { SubCamera1, SubCamera2, SubCamera3, SubCamera4 }; mainImages = new ROS_ImageWPF.CompressedImageControl[] { camImage0, camImage1, camImage2, camImage3 }; subImages = new ROS_ImageWPF.SlaveImage[] { camImageSlave0, camImageSlave1, camImageSlave2, camImageSlave3 }; for (int i = 0; i < mainCameras.Length; i++) { mainImages[i].AddSlave(subImages[i]); } subCameras[1].Focus(); // instantiating some global helpers detectors = new DetectionHelper[4]; for (int i = 0; i < 4; ++i) { detectors[i] = new DetectionHelper(nh, i, this); } })); while (ROS.ok) { Dispatcher.Invoke(new Action(() => { for (int i = 0; i < 4; ++i) { detectors[i].churnAndBurn(); } })); Thread.Sleep(100); } }).Start(); }