From 5cfa5aef3b7d302a8c0f28d44065e7e11b988b05 Mon Sep 17 00:00:00 2001 From: MatthewTaylor24 Date: Sat, 20 Jan 2018 14:27:56 -0800 Subject: [PATCH] created rover_statuses.py for Ground Control data -- very very basic version without any GUI interaction, just data pulling from system_statuses topic --- .../scripts/.idea/workspace.xml | 57 ++++++++++++++++--- .../system_statuses/scripts/rover_statuses.py | 51 +++++++++++++++++ .../scripts/system_statuses_node.py | 10 ++-- 3 files changed, 105 insertions(+), 13 deletions(-) create mode 100755 rover/system_statuses/scripts/rover_statuses.py diff --git a/rover/system_statuses/scripts/.idea/workspace.xml b/rover/system_statuses/scripts/.idea/workspace.xml index f4b4512..36c5d6a 100644 --- a/rover/system_statuses/scripts/.idea/workspace.xml +++ b/rover/system_statuses/scripts/.idea/workspace.xml @@ -11,12 +11,26 @@ - + - - - + + + + + + + + + + + + + + + + + @@ -35,12 +49,21 @@ + + + @@ -159,6 +182,14 @@ + + + + + + + + @@ -171,9 +202,21 @@ - - - + + + + + + + + + + + + + + + diff --git a/rover/system_statuses/scripts/rover_statuses.py b/rover/system_statuses/scripts/rover_statuses.py new file mode 100755 index 0000000..4f57045 --- /dev/null +++ b/rover/system_statuses/scripts/rover_statuses.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python +import rospy, os.path +from system_statuses.msg import RoverSysStatus + + +class RoverStatuses: + + def __init__(self): + + rospy.init_node('RoverStatuses') + + self.pub = rospy.Publisher('rover_statuses_chatter', RoverSysStatus, queue_size=10) + + # Test Subscription for updating camera_undercarriage + rospy.Subscriber('rover_system_status_chatter', RoverSysStatus, self.__sub_callback) + + self.msg = RoverSysStatus() + + def __sub_callback(self, data): + self.msg.UTC_GPS_time = data.UTC_GPS_time + self.msg.bogie_connection_1 = data.bogie_connection_1 + self.msg.bogie_connection_2 = data.bogie_connection_2 + self.msg.bogie_connection_3 = data.bogie_connection_3 + self.msg.arm_connection_status = data.arm_connection_status + self.msg.arm_end_effector_connection_statuses = data.arm_end_effector_connection_statuses + self.msg.camera_zed = data.camera_zed + self.msg.camera_undercarriage = data.camera_undercarriage + self.msg.camera_chassis = data.camera_chassis + self.msg.camera_main_navigation = data.camera_main_navigation + self.msg.sample_containment_connection_status = data.sample_containment_connection_status + self.msg.tower_connection_status = data.tower_connection_status + self.msg.chassis_pan_tilt_connection_status = data.chassis_pan_tilt_connection_status + self.msg.GPS_connection_status = data.GPS_connection_status + self.msg.jetson_CPU = data.jetson_CPU + self.msg.jetson_RAM = data.jetson_RAM + self.msg.jetson_EMMC = data.jetson_EMMC + self.msg.jetson_NVME_SSD = data.jetson_NVME_SSD + self.msg.FrSky_controller_connection_status = data.FrSky_controller_connection_status + rospy.loginfo(self.msg) + + def run(self): + rospy.Subscriber('rover_system_status_chatter', RoverSysStatus, self.__sub_callback) + + # Update GUI Here? (Most likely) + + rospy.spin() + + +if __name__ == '__main__': + rover_statuses = RoverStatuses() + rover_statuses.run() diff --git a/rover/system_statuses/scripts/system_statuses_node.py b/rover/system_statuses/scripts/system_statuses_node.py index 23e8368..382f12a 100755 --- a/rover/system_statuses/scripts/system_statuses_node.py +++ b/rover/system_statuses/scripts/system_statuses_node.py @@ -22,8 +22,6 @@ class SystemStatuses: self.msg = RoverSysStatus() self.__set_msg_values() - # self.__set_cameras() - # self.__UTC_GPS_Time() # Simple Subscriber test boolean -- camera_2_updated.py # self.hasCameraUndercarriageChanged = False @@ -107,16 +105,16 @@ class SystemStatuses: def run(self): r = rospy.Rate(10) - rospy.loginfo(self.msg) - self.pub.publish(self.msg) + # rospy.loginfo(self.msg) + # self.pub.publish(self.msg) while not rospy.is_shutdown(): if (self.msg.camera_zed != os.path.exists(self.system_path_locations[0]) or self.msg.camera_undercarriage != os.path.exists(self.system_path_locations[1]) or self.msg.camera_chassis != os.path.exists(self.system_path_locations[2]) or self.msg.camera_main_navigation != os.path.exists(self.system_path_locations[3])): self.__set_cameras() - rospy.loginfo(self.msg) - self.pub.publish(self.msg) + rospy.loginfo(self.msg) + self.pub.publish(self.msg) r.sleep()