def link_add(self, device): '''add new link''' try: print("Connect %s source_system=%d" % (device, self.settings.source_system)) conn = mavutil.mavlink_connection( device, autoreconnect=True, source_system=self.settings.source_system, baud=self.settings.baudrate) conn.mav.srcComponent = self.settings.source_component except Exception as msg: print("Failed to connect to %s : %s" % (device, msg)) return False if self.settings.rtscts: conn.set_rtscts(True) conn.linknum = len(self.mpstate.mav_master) conn.mav.set_callback(self.master_callback, conn) if hasattr(conn.mav, 'set_send_callback'): conn.mav.set_send_callback(self.master_send_callback, conn) conn.linknum = len(self.mpstate.mav_master) conn.linkerror = False conn.link_delayed = False conn.last_heartbeat = 0 conn.last_message = 0 conn.highest_msec = 0 self.mpstate.mav_master.append(conn) self.status.counters['MasterIn'].append(0) try: mp_util.child_fd_list_add(conn.port.fileno()) except Exception: pass return True
def link_add(self, device): '''add new link''' try: print("Connect %s source_system=%d" % (device, self.settings.source_system)) conn = mavutil.mavlink_connection(device, autoreconnect=True, source_system=self.settings.source_system, baud=self.settings.baudrate) conn.mav.srcComponent = self.settings.source_component except Exception as msg: print("Failed to connect to %s : %s" % (device, msg)) return False if self.settings.rtscts: conn.set_rtscts(True) conn.linknum = len(self.mpstate.mav_master) conn.mav.set_callback(self.master_callback, conn) if hasattr(conn.mav, 'set_send_callback'): conn.mav.set_send_callback(self.master_send_callback, conn) conn.linknum = len(self.mpstate.mav_master) conn.linkerror = False conn.link_delayed = False conn.last_heartbeat = 0 conn.last_message = 0 conn.highest_msec = 0 self.mpstate.mav_master.append(conn) self.status.counters['MasterIn'].append(0) try: mp_util.child_fd_list_add(conn.port.fileno()) except Exception: pass return True
def link_add(self, descriptor, force_connected=False): '''add new link''' try: (device, optional_attributes) = self.parse_link_descriptor(descriptor) # if there's only 1 colon for port:baud # and if the first string is a valid serial port, it's a serial connection if len(device.split(':')) == 2: ports = mavutil.auto_detect_serial( preferred_list=preferred_ports) for p in ports: if p.device == device.split(':')[0]: # it's a valid serial port, reformat arguments to fit self.settings.baudrate = int(device.split(':')[1]) device = device.split(':')[0] break print("Connect %s source_system=%d" % (device, self.settings.source_system)) try: conn = mavutil.mavlink_connection( device, autoreconnect=True, source_system=self.settings.source_system, baud=self.settings.baudrate, force_connected=force_connected) except Exception as e: # try the same thing but without force-connected for # backwards-compatability conn = mavutil.mavlink_connection( device, autoreconnect=True, source_system=self.settings.source_system, baud=self.settings.baudrate) conn.mav.srcComponent = self.settings.source_component except Exception as msg: print("Failed to connect to %s : %s" % (descriptor, msg)) return False if self.settings.rtscts: conn.set_rtscts(True) conn.mav.set_callback(self.master_callback, conn) if hasattr(conn.mav, 'set_send_callback'): conn.mav.set_send_callback(self.master_send_callback, conn) conn.linknum = len(self.mpstate.mav_master) conn.linkerror = False conn.link_delayed = False conn.last_heartbeat = 0 conn.last_message = 0 conn.highest_msec = {} conn.target_system = self.settings.target_system self.apply_link_attributes(conn, optional_attributes) self.mpstate.mav_master.append(conn) self.status.counters['MasterIn'].append(0) self.status.bytecounters['MasterIn'].append(self.status.ByteCounter()) self.mpstate.vehicle_link_map[conn.linknum] = set(()) try: mp_util.child_fd_list_add(conn.port.fileno()) except Exception: pass return True
def handle_remove(self, device): for i, conn in enumerate(self.mpstate.mav_outputs): if str(i) == device or conn.address == device: print(f"Removing breaker {conn.address}") try: mp_util.child_fd_list_add(conn.port.fileno()) except Exception: pass conn.close() self.mpstate.mav_outputs.pop(i) self._devices.discard(device)
def cmd_output_remove(self, args): '''remove an output''' device = args[0] for i in range(len(self.mpstate.mav_outputs)): conn = self.mpstate.mav_outputs[i] if str(i) == device or conn.address == device: print("Removing output %s" % conn.address) try: mp_util.child_fd_list_add(conn.port.fileno()) except Exception: pass conn.close() self.mpstate.mav_outputs.pop(i) return
def cmd_output_remove(self, args): """remove an output""" device = args[0] for i in range(len(self.mpstate.mav_outputs)): conn = self.mpstate.mav_outputs[i] if str(i) == device or conn.address == device: print("Removing output %s" % conn.address) try: mp_util.child_fd_list_add(conn.port.fileno()) except Exception: pass conn.close() self.mpstate.mav_outputs.pop(i) return
def cmd_output_add(self, args): '''add new output''' device = args[0] print("Adding output %s" % device) try: conn = mavutil.mavlink_connection(device, input=False) except Exception: print("Failed to connect to %s" % device) return self.mpstate.mav_outputs.append(conn) try: mp_util.child_fd_list_add(conn.port.fileno()) except Exception: pass
def cmd_output_add(self, args): """add new output""" device = args[0] print("Adding output %s" % device) try: conn = mavutil.mavlink_connection(device, input=False, source_system=self.settings.source_system) conn.mav.srcComponent = self.settings.source_component except Exception: print("Failed to connect to %s" % device) return self.mpstate.mav_outputs.append(conn) try: mp_util.child_fd_list_add(conn.port.fileno()) except Exception: pass
def cmd_output_add(self, args): '''add new output''' device = args[0] print(("Adding output %s" % device)) try: conn = mavutil.mavlink_connection( device, input=False, source_system=self.settings.source_system) conn.mav.srcComponent = self.settings.source_component except Exception: print(("Failed to connect to %s" % device)) return self.mpstate.mav_outputs.append(conn) try: mp_util.child_fd_list_add(conn.port.fileno()) except Exception: pass
def link_add(self, descriptor, force_connected=False): '''add new link''' try: (device, optional_attributes) = self.parse_link_descriptor(descriptor) print("Connect %s source_system=%d" % (device, self.settings.source_system)) try: conn = mavutil.mavlink_connection( device, autoreconnect=True, source_system=self.settings.source_system, baud=self.settings.baudrate, force_connected=force_connected) except Exception as e: # try the same thing but without force-connected for # backwards-compatability conn = mavutil.mavlink_connection( device, autoreconnect=True, source_system=self.settings.source_system, baud=self.settings.baudrate) conn.mav.srcComponent = self.settings.source_component except Exception as msg: print("Failed to connect to %s : %s" % (descriptor, msg)) return False if self.settings.rtscts: conn.set_rtscts(True) conn.mav.set_callback(self.master_callback, conn) if hasattr(conn.mav, 'set_send_callback'): conn.mav.set_send_callback(self.master_send_callback, conn) conn.linknum = len(self.mpstate.mav_master) conn.linkerror = False conn.link_delayed = False conn.last_heartbeat = 0 conn.last_message = 0 conn.highest_msec = 0 conn.target_system = self.settings.target_system self.apply_link_attributes(conn, optional_attributes) self.mpstate.mav_master.append(conn) self.status.counters['MasterIn'].append(0) self.status.bytecounters['MasterIn'].append(self.status.ByteCounter()) try: mp_util.child_fd_list_add(conn.port.fileno()) except Exception: pass return True
def handle_add(self, device): print(f"Adding breaker {device}") try: conn = mavutil.mavlink_connection( device, input=False, source_system=self.settings.source_system) conn.mav.srcComponent = self.settings.source_component except Exception: print(f"Breaker failed to connect to {device}") return self.mpstate.mav_outputs.append(conn) try: mp_util.child_fd_list_add(conn.port.fileno()) except Exception: # TODO: Huh? Why is this ignored? pass self._devices.add(device)
def cmd_output_sysid(self, args): '''add new output for a specific MAVLink sysID''' sysid = int(args[0]) device = args[1] print("Adding output %s for sysid %u" % (device, sysid)) try: conn = mavutil.mavlink_connection(device, input=False, source_system=self.settings.source_system) conn.mav.srcComponent = self.settings.source_component except Exception: print("Failed to connect to %s" % device) return try: mp_util.child_fd_list_add(conn.port.fileno()) except Exception: pass if sysid in self.mpstate.sysid_outputs: self.mpstate.sysid_outputs[sysid].close() self.mpstate.sysid_outputs[sysid] = conn
def cmd_output_sysid(self, args): """add new output for a specific MAVLink sysID""" sysid = int(args[0]) device = args[1] print("Adding output %s for sysid %u" % (device, sysid)) try: conn = mavutil.mavlink_connection(device, input=False, source_system=self.settings.source_system) conn.mav.srcComponent = self.settings.source_component except Exception: print("Failed to connect to %s" % device) return try: mp_util.child_fd_list_add(conn.port.fileno()) except Exception: pass if sysid in self.mpstate.sysid_outputs: self.mpstate.sysid_outputs[sysid].close() self.mpstate.sysid_outputs[sysid] = conn
def handle_sysid(self, sysid, device): print(f"Adding breaker {device} for sysid {sysid}") try: conn = mavutil.mavlink_connection( device, input=False, source_system=self.settings.source_system) conn.mav.srcComponent = self.settings.source_component except Exception: print(f"Breaker failed to connect to {device}") return try: mp_util.child_fd_list_add(conn.port.fileno()) except Exception: pass if sysid in self.mpstate.sysid_outputs: self.mpstate.sysid_outputs[sysid].close() self.mpstate.sysid_outputs[sysid] = conn self._devices.add(device)
def link_add(self, descriptor, force_connected=False): '''add new link''' try: (device, optional_attributes) = self.parse_link_descriptor(descriptor) print("Connect %s source_system=%d" % (device, self.settings.source_system)) try: conn = mavutil.mavlink_connection(device, autoreconnect=True, source_system=self.settings.source_system, baud=self.settings.baudrate, force_connected=force_connected) except Exception as e: # try the same thing but without force-connected for # backwards-compatability conn = mavutil.mavlink_connection(device, autoreconnect=True, source_system=self.settings.source_system, baud=self.settings.baudrate) conn.mav.srcComponent = self.settings.source_component except Exception as msg: print("Failed to connect to %s : %s" % (descriptor, msg)) return False if self.settings.rtscts: conn.set_rtscts(True) conn.mav.set_callback(self.master_callback, conn) if hasattr(conn.mav, 'set_send_callback'): conn.mav.set_send_callback(self.master_send_callback, conn) conn.linknum = len(self.mpstate.mav_master) conn.linkerror = False conn.link_delayed = False conn.last_heartbeat = 0 conn.last_message = 0 conn.highest_msec = 0 conn.target_system = self.settings.target_system self.apply_link_attributes(conn, optional_attributes) self.mpstate.mav_master.append(conn) self.status.counters['MasterIn'].append(0) try: mp_util.child_fd_list_add(conn.port.fileno()) except Exception: pass return True