Exemple #1
0
 def check_vitals_front_motors(self, stat):
     try:
         status = roboclaw.ReadError(self.addressFrontMotors)[1]
     except OSError as e:
         rospy.logwarn("Diagnostics OSError: %d", e.errno)
         rospy.logdebug(e)
         return
     state, message = self.ERRORS[status]
     stat.summary(state, message)
     try:
         stat.add("Main Batt V:", float(roboclaw.ReadMainBatteryVoltage(self.addressFrontMotors)[1] / 10))
         stat.add("Logic Batt V:", float(roboclaw.ReadLogicBatteryVoltage(self.addressFrontMotors)[1] / 10))
         stat.add("Temp1 C:", float(roboclaw.ReadTemp(self.addressFrontMotors)[1] / 10))
         stat.add("Temp2 C:", float(roboclaw.ReadTemp2(self.addressFrontMotors)[1] / 10))
     except OSError as e:
         rospy.logwarn("Diagnostics OSError: %d", e.errno)
         rospy.logdebug(e)
     return stat
Exemple #2
0
 def read_status(self, motor):
     status = roboclaw_driver.ReadError(self.address[motor])
     if status[0]:
         return {
             0x0000: 'Normal',
             0x0001: 'Warning: High Current - Motor 1',
             0x0002: 'Warning: High Current - Motor 2',
             0x0004: 'Emergency Stop Triggered',
             0x0008: 'Error: High Temperature - Sensor 1',
             0x0010: 'Error: High Temperature - Sensor 2',
             0x0020: 'Error: High Voltage - Main Battery',
             0x0040: 'Error: High Voltage - Logic Battery',
             0x0080: 'Error: Low Voltage - Logic Battery',
             0x0100: 'Driver Fault - Motor 1 Driver',
             0x0200: 'Driver Fault - Motor 2 Driver',
             0x0400: 'Warning: High Voltage - Main Battery',
             0x0800: 'Warning: Low Voltage - Main Battery',
             0x1000: 'Warning: High Temperature - Sensor 1',
             0x2000: 'Warning: High Temperature - Sensor 2',
             0x4000: 'Home - Motor 1',
             0x8000: 'Home - Motor 2'
         }.get(status[1], 'Unknown Error')