Exemple #1
0
 def __init__(self):
     MicroServerComs.__init__(self, "TurnRateComputed")
     self._raw_heading_rate = list()
     self.last_heading = None
     self.last_time = None
     self.filter_coefficient = .2
     self.turn_rate_computed = 0.0
Exemple #2
0
 def __init__(self, conf_mult=0.01):
     MicroServerComs.__init__(self, "Altitude")
     self.altitude = None
     self.gps_altitude = None
     self.altitude_confidence = 0.0
     # Default 1 degree per minute
     self.confidence_multiplier = conf_mult
 def __init__(self, conf_mult=0.1):
     MicroServerComs.__init__(self, "MagneticDeclination")
     self.gps_lat = None
     self.gps_lng = None
     self.gps_altitude = None
     self.last_time = 0
     self.magnetic_declination = None
 def __init__(self, pubsub_cfg):
     self.temperature = None
     MicroServerComs.__init__(self,
                              "RawTemperatureSensors",
                              channel='temperaturesensors',
                              config=pubsub_cfg)
     SampleCounter.__init__(self, 10)
Exemple #5
0
 def __init__(self, starting_port, config_file=None):
     if config_file is not None:
         with open(config_file, 'r') as yml:
             cfg = yaml.load(yml, Loader=yaml.SafeLoader)
             yml.close()
             assign_all_ports(cfg, starting_port)
     else:
         cfg = None
     self.pubsub_config = cfg
     MicroServerComs.__init__(self, "Display", config=cfg, timeout=0)
     self._system_command = SystemCommand(cfg)
     self.altitude = None
     self.airspeed = None
     self.tas = None
     self.heading = None
     self.roll = None
     self.pitch = None
     self.yaw = None
     self.climb_rate = None
     self.turn_rate = None
     self.gps_utc = None
     self.gps_lat = None
     self.gps_lng = None
     self.gps_ground_speed = None
     self.gps_ground_track = None
     self.ground_vector_confidence = None
     self.magnetic_declination = None
     self.update_period = 1.0 / 30.0
     self.callback = None
Exemple #6
0
 def __init__(self, cfg=None):
     self.command = None
     self.args = None
     MicroServerComs.__init__(self,
                              "SystemCommand",
                              channel='systemcommand',
                              config=cfg)
 def __init__(self, pubsub_cfg):
     self.static_pressure = None
     self.timestamp = None
     MicroServerComs.__init__(self,
                              "RawPressureSensors",
                              channel='pressuresensors',
                              config=pubsub_cfg)
     SampleCounter.__init__(self, 10)
Exemple #8
0
 def __init__(self, input_config, output_config):
     MicroServerComs.__init__(self, "AdmCmdDistributor",
                 config=output_config)
     assert(isinstance(input_config,list))
     self.outputs = list()
     for ic in input_config:
         self.outputs.append(MicroServerComs("AdminCommand",
                 channel="admincommand", config=ic))
 def __init__(self):
     MicroServerComs.__init__(self, "HeadingTasEstimate")
     self.wind_heading = 0
     self.wind_speed = 0
     self.gps_ground_track = None
     self.gps_ground_speed = None
     self.estimated_tas = None
     self.estimated_heading_true = None
Exemple #10
0
 def __init__(self, airspeed_config):
     MicroServerComs.__init__(self, "AirspeedComputed")
     self.static_pressure = None
     self.pitot_pressure = None
     self.airspeed_computed = None
     self.ascurve = None
     if isinstance(airspeed_config, dict):
         self.ascurve = airspeed_config['airspeed_pressure_curve']
Exemple #11
0
 def __init__(self, cor_rate=1.0, conf_mult=1.0):
     MicroServerComs.__init__(self, "RollRate")
     self.roll_rate = None
     self.roll_rate_estimate = None
     self.flight_mode = Globals.FLIGHT_MODE_GROUND
     self.roll_rate_confidence = 0.0
     # Default 1 degree per minute
     self.confidence_multiplier = conf_mult
 def __init__(self, pubsub_cfg):
     self.pitot = None
     self.timestamp = None
     MicroServerComs.__init__(self,
                              "RawPitotSensor",
                              channel='pitotsensor',
                              config=pubsub_cfg)
     SampleCounter.__init__(self, 10)
Exemple #13
0
 def __init__(self, conf_mult=1.0):
     MicroServerComs.__init__(self, "GroundVector")
     self.gps_lat = None
     self.gps_lng = None
     self.gps_ground_speed = None
     self.gps_ground_track = None
     self.gps_signal_quality = None
     self.confidence_multiplier = conf_mult
Exemple #14
0
 def __init__(self, pressure_calibration):
     MicroServerComs.__init__(self, "PressureFactors")
     self.known_altitude = None
     self.static_pressure = None
     self.sea_level_pressure = None
     self.temperature = None
     self.static_pressure = None
     self.standard_sea_level_temp = None
     self.pressure_calibration = pressure_calibration
Exemple #15
0
 def __init__(self, conf_mult=0.05):
     MicroServerComs.__init__(self, "Airspeed")
     self.airspeed = None
     self.airspeed_estimate = None
     self.airspeed_computed = None
     self.airspeed_is_estimated = True
     self.airspeed_confidence = 0.0
     # Default 1 degree per minute
     self.confidence_multiplier = conf_mult
Exemple #16
0
 def __init__(self, conf_mult=0.01):
     MicroServerComs.__init__(self, "ClimbRate")
     self.last_time = None
     self.last_altitude = None
     self.climb_rate = None
     self.climb_rate_estimate = None
     self._raw_alt_rate = list()
     self.climb_rate_confidence = 0.0
     # Default 1 degree per minute
     self.confidence_multiplier = conf_mult
 def __init__(self, pubsub_cfg):
     self.a_x = None
     self.a_y = None
     self.a_z = None
     self.timestamp = None
     MicroServerComs.__init__(self,
                              "RawAccelerometers",
                              channel='accelerometers',
                              config=pubsub_cfg)
     SampleCounter.__init__(self)
Exemple #18
0
 def __init__(self, conf_mult=0.1):
     MicroServerComs.__init__(self, "Heading")
     self.heading = None
     self.estimated_heading_true = None
     self.magnetic_variation = None
     self.flight_mode = Globals.FLIGHT_MODE_GROUND
     self.heading_confidence = 0.0
     self.gps_magnetic_variation = 0
     # Default 1 degree per minute
     self.confidence_multiplier = conf_mult
 def __init__(self, pubsub_cfg):
     self.m_x = None
     self.m_y = None
     self.m_z = None
     self.samples = [list(), list(), list()]
     self.timestamp = None
     MicroServerComs.__init__(self,
                              "RawMagneticSensors",
                              channel='magneticsensors',
                              config=pubsub_cfg)
     SampleCounter.__init__(self)
Exemple #20
0
 def __init__(self):
     MicroServerComs.__init__(self, "WindEstimate")
     self.airspeed_is_estimated = False
     self.winds_aloft_reports = dict()
     self.gps_ground_track = None
     self.gps_ground_speed = None
     self.airspeed = None
     self.true_airspeed = None
     self.cas2tas = None
     self.heading = None
     self.wind_heading = 0
     self.wind_speed = 0
Exemple #21
0
 def __init__(self, airspeed_config):
     MicroServerComs.__init__(self, "AirspeedComputed")
     self.pitot = None
     self.airspeed_computed = None
     self.intercept = None
     self.A = None
     self.in_curve_fitting = False
     if isinstance(airspeed_config,dict):
         self.rais_id = airspeed_config['rais_id']
         if 'intercept' in airspeed_config:
             self.intercept = airspeed_config['intercept']
             self.A = airspeed_config['A']
         else:
             self.compute_curve()
 def __init__(self, pubsub_cfg):
     self.gps_utc = None
     self.gps_lat = None
     self.gps_lng = None
     self.gps_altitude = None
     self.gps_ground_speed = None
     self.gps_ground_track = None
     self.gps_signal_quality = None
     self.HaveNewPosition = False
     self.enable_printing = False
     MicroServerComs.__init__(self,
                              "GPSFeed",
                              channel='gpsfeed',
                              config=pubsub_cfg)
 def __init__(self, pubsub_cfg):
     self.r_x = None
     self.r_y = None
     self.r_z = None
     self.cal_collection_count = 0
     self.current_bias = [0.0, 0.0, 0.0]
     self.samples = [list(), list(), list()]
     self.timestamp = None
     self.print_count = 0
     MicroServerComs.__init__(self,
                              "RawRotationSensors",
                              channel='rotationsensors',
                              config=pubsub_cfg)
     SampleCounter.__init__(self)
Exemple #24
0
    def __init__(self, data_name, dcfg, tm=time.time()):
        self.mock_period = 0
        self.cur_seq = 0
        self.cur_period = 0

        self.channel = data_name
        self.mock_period = dcfg['period']
        self.next_time = tm + self.mock_period
        self.function = dcfg['function']
        self.sequences = dcfg['sequences']

        MicroServerComs.__init__(self, self.function, channel=self.channel)
        print("MockRawData init complete. pub = %s, output values = %s" %
              (self.pubchannel, self.output_values))
 def __init__(self, command_channel, config, pubsub_cfg):
     self._mainCmd = command_channel
     self._config = config
     self._sensors = dict()
     sensor_chnum = 0
     self._accelerometers = Accelerometers(pubsub_cfg)
     self._rotation = Rotation(pubsub_cfg)
     self._magnetic = Magnetic(pubsub_cfg)
     self._pressure = Pressure(pubsub_cfg)
     self._temperature = Temperature(pubsub_cfg)
     self._gps = GPS(pubsub_cfg)
     self._calibrations = dict()
     for config_term, cfg in self._config.items():
         if config_term.startswith('cal'):
             self._calibrations.update(cfg)
         elif cfg[0].startswith('sensor'):
             function = cfg[1]
             if cfg[0] == 'sensor_digital':
                 resp = self._mainCmd.sendCmd("setup_digital_sensor",
                                              [sensor_chnum] + cfg[1:])
                 function = 'd'
             elif cfg[0] == 'sensor_analog':
                 resp = self._mainCmd.sendCmd("setup_analog_sensor",
                                              [sensor_chnum] + cfg[1:])
                 function = 'n'
             elif cfg[0] == 'sensor_i2c':
                 resp = self._mainCmd.sendCmd("setup_i2c_sensor",
                                              [sensor_chnum] + cfg[1:])
             elif cfg[0] == 'sensor_spi':
                 resp = self._mainCmd.sendCmd("setup_spi_sensor",
                                              [sensor_chnum] + cfg[1:])
             elif cfg[0] == 'sensor_serial':
                 resp = self._mainCmd.sendCmd("setup_serial_sensor",
                                              [sensor_chnum] + cfg[1:])
             else:
                 raise RuntimeError("Unsupported sensor type: %s" % cfg[0])
             if resp is not None:
                 for r in resp:
                     self.ProcessResponse(r)
             self._sensors[sensor_chnum] = function
             sensor_chnum += 1
     MicroServerComs.__init__(self, "ControlSlave", config=pubsub_cfg)
Exemple #26
0
 def pub_channel (self, channel):
     if not channel in self.outputs:
         self.outputs[channel] = MicroServerComs(channel, config=self.config)
     o = self.outputs[channel]
     ts_name = channel + '_updated'
     for vname in o.output_values:
         invname = vname
         if 'timestamp' == vname:
             invname = ts_name
         setattr (o, vname, getattr(self, invname))
     o.publish()
Exemple #27
0
 def __init__(self):
     MicroServerComs.__init__(self, "Display")
     self.gps_magnetic_variation = None
     self.altitude = None
     self.airspeed = None
     self.heading = None
     self.roll = None
     self.pitch = None
     self.yaw = None
     self.climb_rate = None
     self.turn_rate = None
     self.gps_utc = None
     self.gps_lat = None
     self.gps_lng = None
     self.gps_ground_speed = None
     self.gps_ground_track = None
     self.gps_signal_quality = None
     self.gps_magnetic_variation = None
     self.display_window = StartDisplayWindow()
     self.update_period = 1.0 / 30.0
     self.next_update_time = time.time() + self.update_period
Exemple #28
0
 def __init__(self, pubsub_cfg=None):
     MicroServerComs.__init__(self, "Autopilot", config=pubsub_cfg)
     self.magnetic_variation = None
     self._known_altitude = KnownAltitude()
     self._flight_mode = FlightModeSource()
     self._wind_report = WindsAloftReport()
     self.altitude = None
     self.airspeed = None
     self.heading = None
     self.roll = None
     self.roll_rate = None
     self.pitch = None
     self.pitch_rate = None
     self.yaw = None
     self.climb_rate = None
     self.turn_rate = None
     self.gps_utc = None
     self.gps_lat = None
     self.gps_lng = None
     self.gps_ground_speed = None
     self.gps_ground_track = None
     self.gps_signal_quality = None