def incomingPacket(self, vehname: str, pkt): """ Incoming packet """ # Send statustext to UI if pkt.get_type() == "STATUSTEXT": self.printVeh(pkt.text, vehname) # Mode change - update prompt (mode and arm status) if pkt.get_type() == "HEARTBEAT": if pkt.base_mode & self.vehObj(vehname).mod.MAV_MODE_FLAG_SAFETY_ARMED: self.changePrompt(vehname, "A|" + mode_toString(pkt, self.getMav(vehname))) else: self.changePrompt(vehname, "D|" + mode_toString(pkt, self.getMav(vehname))) self.application._redraw()
def incomingPacket(self, vehname: str, pkt): """ On new packet """ # if heartbeat if pkt.get_type() == "HEARTBEAT": # if mode changed, tell user if pkt.custom_mode != self.lastMode[vehname]: self.printer(vehname, "Mode changed to: " + str(mode_toString(pkt, self.getMav(vehname)))) self.lastMode[vehname] = pkt.custom_mode
def incomingPacket(self, vehname: str, pkt): """ Incoming packet """ # Send statustext to UI if pkt.get_type() == "STATUSTEXT": self.printVeh(pkt.text, vehname) # Mode change - update prompt if pkt.get_type() == "HEARTBEAT": self.changePrompt(vehname, mode_toString(pkt, self.mod)) self.application._redraw()
def test_modemappings(self): """Test the mode_toString() method""" mavlink = getpymavlinkpackage('ardupilotmega', 2.0) # PX4 pktIn = mavlink.MAVLink_heartbeat_message( mavlink.MAV_TYPE_QUADROTOR, mavlink.MAV_AUTOPILOT_PX4, 0, 0, 0, 2) assert mode_toString(pktIn, mavlink) == "MANUAL" pktIn = mavlink.MAVLink_heartbeat_message( mavlink.MAV_TYPE_QUADROTOR, mavlink.MAV_AUTOPILOT_PX4, 0, 5, 0, 2) assert mode_toString(pktIn, mavlink) == "AUTO_RTL" # APM:Copter pktIn = mavlink.MAVLink_heartbeat_message( mavlink.MAV_TYPE_QUADROTOR, mavlink.MAV_AUTOPILOT_ARDUPILOTMEGA, 0, 0, 0, 2) assert mode_toString(pktIn, mavlink) == "STABILIZE" pktIn = mavlink.MAVLink_heartbeat_message( mavlink.MAV_TYPE_QUADROTOR, mavlink.MAV_AUTOPILOT_ARDUPILOTMEGA, 0, 5, 0, 2) assert mode_toString(pktIn, mavlink) == "LOITER" # APM:Rover pktIn = mavlink.MAVLink_heartbeat_message( mavlink.MAV_TYPE_GROUND_ROVER, mavlink.MAV_AUTOPILOT_ARDUPILOTMEGA, 0, 0, 0, 2) assert mode_toString(pktIn, mavlink) == "MANUAL" pktIn = mavlink.MAVLink_heartbeat_message( mavlink.MAV_TYPE_GROUND_ROVER, mavlink.MAV_AUTOPILOT_ARDUPILOTMEGA, 0, 10, 0, 2) assert mode_toString(pktIn, mavlink) == "AUTO" # APM:Sub pktIn = mavlink.MAVLink_heartbeat_message( mavlink.MAV_TYPE_SUBMARINE, mavlink.MAV_AUTOPILOT_ARDUPILOTMEGA, 0, 0, 0, 2) assert mode_toString(pktIn, mavlink) == "STABILIZE" pktIn = mavlink.MAVLink_heartbeat_message( mavlink.MAV_TYPE_SUBMARINE, mavlink.MAV_AUTOPILOT_ARDUPILOTMEGA, 0, 4, 0, 2) assert mode_toString(pktIn, mavlink) == "GUIDED" # APM:Plane pktIn = mavlink.MAVLink_heartbeat_message( mavlink.MAV_TYPE_FIXED_WING, mavlink.MAV_AUTOPILOT_ARDUPILOTMEGA, 0, 0, 0, 2) assert mode_toString(pktIn, mavlink) == "MANUAL" pktIn = mavlink.MAVLink_heartbeat_message( mavlink.MAV_TYPE_FIXED_WING, mavlink.MAV_AUTOPILOT_ARDUPILOTMEGA, 0, 20, 0, 2) assert mode_toString(pktIn, mavlink) == "QLAND" # APM:Antenna Tracker pktIn = mavlink.MAVLink_heartbeat_message( mavlink.MAV_TYPE_ANTENNA_TRACKER, mavlink.MAV_AUTOPILOT_ARDUPILOTMEGA, 0, 0, 0, 2) assert mode_toString(pktIn, mavlink) == "MANUAL" pktIn = mavlink.MAVLink_heartbeat_message( mavlink.MAV_TYPE_ANTENNA_TRACKER, mavlink.MAV_AUTOPILOT_ARDUPILOTMEGA, 0, 2, 0, 2) assert mode_toString(pktIn, mavlink) == "SCAN"