Exemplo n.º 1
0
    def test_normal_write(self):
        self.sock.sendall("IAS;121.2;0000\n".encode())
        time.sleep(0.1)
        x = database.read("IAS")
        self.assertEqual(x, (121.2, False, False, False, False, False))

        self.sock.sendall("IAS;121.3;1000\n".encode())
        time.sleep(0.1)
        x = database.read("IAS")
        self.assertEqual(x, (121.3, True, False, False, False, False))

        self.sock.sendall("IAS;121.4;0100\n".encode())
        time.sleep(0.1)
        x = database.read("IAS")
        self.assertEqual(x, (121.4, False, False, True, False, False))

        self.sock.sendall("IAS;121.5;0010\n".encode())
        time.sleep(0.1)
        x = database.read("IAS")
        self.assertEqual(x, (121.5, False, False, False, True, False))

        self.sock.sendall("IAS;121.6;0001\n".encode())
        time.sleep(0.1)
        x = database.read("IAS")
        self.assertEqual(x, (121.6, False, False, False, False, True))
Exemplo n.º 2
0
    def test_normal_write(self):
        self.sock.sendall("IAS;121.2;0000\n".encode())
        time.sleep(0.1)
        x = database.read("IAS")
        self.assertEqual(x, (121.2, False, False, False, False, False))

        self.sock.sendall("IAS;121.3;1000\n".encode())
        time.sleep(0.1)
        x = database.read("IAS")
        self.assertEqual(x, (121.3, True, False, False, False, False))

        self.sock.sendall("IAS;121.4;0100\n".encode())
        time.sleep(0.1)
        x = database.read("IAS")
        self.assertEqual(x, (121.4, False, False, True, False, False))

        self.sock.sendall("IAS;121.5;0010\n".encode())
        time.sleep(0.1)
        x = database.read("IAS")
        self.assertEqual(x, (121.5, False, False, False, True, False))

        self.sock.sendall("IAS;121.6;0001\n".encode())
        time.sleep(0.1)
        x = database.read("IAS")
        self.assertEqual(x, (121.6, False, False, False, False, True))
Exemplo n.º 3
0
 def test_wrong_datatype(self):
     """test using wrong datatype for item"""
     sf = io.StringIO(general_config)
     database.init(sf)
     database.write("DUMMY", 1234)
     x = database.read("DUMMY")
     self.assertEqual(x[0], "1234")
     database.write("PITCH", "23.4")
     x = database.read("PITCH")
     self.assertEqual(x[0], 23.4)
Exemplo n.º 4
0
 def test_similar_aux_items(self):
     """it would be easy for a single aux array to be pointed to
        by different database items."""
     sf = io.StringIO(variable_config)
     database.init(sf)
     database.write("EGT11.Max", 700)
     database.write("EGT12.Max", 800)
     x = database.read("EGT11.Max")
     y = database.read("EGT12.Max")
     self.assertNotEqual(y, x)
Exemplo n.º 5
0
 def test_timeout_lifetime(self):
     """Test item timeout lifetime"""
     sf = io.StringIO(general_config)
     database.init(sf)
     database.write("PITCH", -11.4)
     x = database.read("PITCH")
     self.assertEqual(x, (-11.4, False, False, False, False, False))
     time.sleep(0.250)
     x = database.read("PITCH")
     self.assertEqual(x, (-11.4, False, True, False, False, False))
     database.write("PITCH", -11.4)
     x = database.read("PITCH")
     self.assertEqual(x, (-11.4, False, False, False, False, False))
Exemplo n.º 6
0
 def test_timeout_lifetime(self):
     """Test item timeout lifetime"""
     sf = io.StringIO(general_config)
     database.init(sf)
     database.write("PITCH", -11.4)
     x = database.read("PITCH")
     self.assertEqual(x, (-11.4, False, False, False, False, False))
     time.sleep(0.250)
     x = database.read("PITCH")
     self.assertEqual(x, (-11.4, False, True, False, False, False))
     database.write("PITCH", -11.4)
     x = database.read("PITCH")
     self.assertEqual(x, (-11.4, False, False, False, False, False))
Exemplo n.º 7
0
 def test_string_datatype(self):
     """test writing a string to an item"""
     sf = io.StringIO(general_config)
     database.init(sf)
     database.write("DUMMY", "test string")
     x = database.read("DUMMY")
     self.assertEqual(x[0], "test string")
Exemplo n.º 8
0
 def test_compute_span(self):
     database.write("EGT11", 300)
     database.write("EGT12", 320)
     database.write("EGT13", 340)
     database.write("EGT14", 360)
     x = database.read("EGTSPAN1")
     self.assertEqual(x, (60, False, False, False, False, False))
     database.write("EGT13", (340, False, True, False, False))
     x = database.read("EGTSPAN1")
     self.assertEqual(x, (60, False, False, True, False, False))
     database.write("EGT13", (340, False, False, True, False))
     x = database.read("EGTSPAN1")
     self.assertEqual(x, (0, False, False, False, True, False))
     database.write("EGT13", (340, False, False, False, True))
     x = database.read("EGTSPAN1")
     self.assertEqual(x, (60, False, False, False, False, True))
Exemplo n.º 9
0
 def test_compute_average(self):
     database.write("EGT11", 300)
     database.write("EGT12", 320)
     database.write("EGT13", 340)
     database.write("EGT14", 360)
     x = database.read("EGTAVG1")
     self.assertEqual(x, (330, False, False, False, False, False))
     database.write("EGT13", (340, False, True, False, False))
     x = database.read("EGTAVG1")
     self.assertEqual(x, (330, False, False, True, False, False))
     database.write("EGT13", (340, False, False, True, False))
     x = database.read("EGTAVG1")
     self.assertEqual(x, (0, False, False, False, True, False))
     database.write("EGT13", (340, False, False, False, True))
     x = database.read("EGTAVG1")
     self.assertEqual(x, (330, False, False, False, False, True))
Exemplo n.º 10
0
 def test_compute_average(self):
     database.write("EGT11", 300)
     database.write("EGT12", 320)
     database.write("EGT13", 340)
     database.write("EGT14", 360)
     x = database.read("EGTAVG1")
     self.assertEqual(x, (330, False, False, False, False, False))
     database.write("EGT13", (340, False, True, False, False))
     x = database.read("EGTAVG1")
     self.assertEqual(x, (330, False, False, True, False, False))
     database.write("EGT13", (340, False, False, True, False))
     x = database.read("EGTAVG1")
     self.assertEqual(x, (0, False, False, False, True, False))
     database.write("EGT13", (340, False, False, False, True))
     x = database.read("EGTAVG1")
     self.assertEqual(x, (330, False, False, False, False, True))
Exemplo n.º 11
0
 def test_compute_span(self):
     database.write("EGT11", 300)
     database.write("EGT12", 320)
     database.write("EGT13", 340)
     database.write("EGT14", 360)
     x = database.read("EGTSPAN1")
     self.assertEqual(x, (60, False, False, False, False, False))
     database.write("EGT13", (340, False, True, False, False))
     x = database.read("EGTSPAN1")
     self.assertEqual(x, (60, False, False, True, False, False))
     database.write("EGT13", (340, False, False, True, False))
     x = database.read("EGTSPAN1")
     self.assertEqual(x, (0, False, False, False, True, False))
     database.write("EGT13", (340, False, False, False, True))
     x = database.read("EGTSPAN1")
     self.assertEqual(x, (60, False, False, False, False, True))
Exemplo n.º 12
0
    def test_compute_min(self):
        database.write("CHT11", 300)
        database.write("CHT12", 320)
        database.write("CHT13", 340)
        database.write("CHT14", 360)
        x = database.read("CHTMIN1")
        self.assertEqual(x, (300, False, False, False, False, False))
        database.write("CHT11", 295)
        x = database.read("CHTMIN1")
        self.assertEqual(x, (295, False, False, False, False, False))
        database.write("CHT12", 290)
        x = database.read("CHTMIN1")
        self.assertEqual(x, (290, False, False, False, False, False))
        database.write("CHT13", 280)
        x = database.read("CHTMIN1")
        self.assertEqual(x, (280, False, False, False, False, False))

        database.write("CHT13", (280, False, True, False, False))
        x = database.read("CHTMIN1")
        self.assertEqual(x, (280, False, False, True, False, False))
        database.write("CHT13", (280, False, False, True, False))
        x = database.read("CHTMIN1")
        self.assertEqual(x, (0, False, False, False, True, False))
        database.write("CHT13", (280, False, False, False, True))
        x = database.read("CHTMIN1")
        self.assertEqual(x, (280, False, False, False, False, True))
Exemplo n.º 13
0
    def test_compute_max(self):
        database.write("CHT11", 300)
        database.write("CHT12", 320)
        database.write("CHT13", 340)
        database.write("CHT14", 360)
        x = database.read("CHTMAX1")
        self.assertEqual(x, (360, False, False, False, False, False))
        database.write("CHT11", 370)
        x = database.read("CHTMAX1")
        self.assertEqual(x, (370, False, False, False, False, False))
        database.write("CHT12", 380)
        x = database.read("CHTMAX1")
        self.assertEqual(x, (380, False, False, False, False, False))
        database.write("CHT13", 390)
        x = database.read("CHTMAX1")
        self.assertEqual(x, (390, False, False, False, False, False))

        database.write("CHT13", (340, False, True, False, False))
        x = database.read("CHTMAX1")
        self.assertEqual(x, (380, False, False, True, False, False))
        database.write("CHT13", (340, False, False, True, False))
        x = database.read("CHTMAX1")
        self.assertEqual(x, (0, False, False, False, True, False))
        database.write("CHT13", (340, False, False, False, True))
        x = database.read("CHTMAX1")
        self.assertEqual(x, (380, False, False, False, False, True))
Exemplo n.º 14
0
    def test_compute_min(self):
        database.write("CHT11", 300)
        database.write("CHT12", 320)
        database.write("CHT13", 340)
        database.write("CHT14", 360)
        x = database.read("CHTMIN1")
        self.assertEqual(x, (300, False, False, False, False, False))
        database.write("CHT11", 295)
        x = database.read("CHTMIN1")
        self.assertEqual(x, (295, False, False, False, False, False))
        database.write("CHT12", 290)
        x = database.read("CHTMIN1")
        self.assertEqual(x, (290, False, False, False, False, False))
        database.write("CHT13", 280)
        x = database.read("CHTMIN1")
        self.assertEqual(x, (280, False, False, False, False, False))

        database.write("CHT13", (280, False, True, False, False))
        x = database.read("CHTMIN1")
        self.assertEqual(x, (280, False, False, True, False, False))
        database.write("CHT13", (280, False, False, True, False))
        x = database.read("CHTMIN1")
        self.assertEqual(x, (0, False, False, False, True, False))
        database.write("CHT13", (280, False, False, False, True))
        x = database.read("CHTMIN1")
        self.assertEqual(x, (280, False, False, False, False, True))
Exemplo n.º 15
0
    def test_compute_max(self):
        database.write("CHT11", 300)
        database.write("CHT12", 320)
        database.write("CHT13", 340)
        database.write("CHT14", 360)
        x = database.read("CHTMAX1")
        self.assertEqual(x, (360, False, False, False, False, False))
        database.write("CHT11", 370)
        x = database.read("CHTMAX1")
        self.assertEqual(x, (370, False, False, False, False, False))
        database.write("CHT12", 380)
        x = database.read("CHTMAX1")
        self.assertEqual(x, (380, False, False, False, False, False))
        database.write("CHT13", 390)
        x = database.read("CHTMAX1")
        self.assertEqual(x, (390, False, False, False, False, False))

        database.write("CHT13", (340, False, True, False, False))
        x = database.read("CHTMAX1")
        self.assertEqual(x, (380, False, False, True, False, False))
        database.write("CHT13", (340, False, False, True, False))
        x = database.read("CHTMAX1")
        self.assertEqual(x, (0, False, False, False, True, False))
        database.write("CHT13", (340, False, False, False, True))
        x = database.read("CHTMAX1")
        self.assertEqual(x, (380, False, False, False, False, True))
Exemplo n.º 16
0
 def test_quality_bits(self):
     """Test quality bits"""
     sf = io.StringIO(general_config)
     database.init(sf)
     i = database.get_raw_item("OILP1")
     database.write("OILP1", 15.4)
     x = database.read("OILP1")
     self.assertEqual(x, (15.4, False, False, False, False, False))
     i.annunciate = True
     x = database.read("OILP1")
     self.assertEqual(x, (15.4, True, False, False, False, False))
     i.annunciate = False
     x = database.read("OILP1")
     self.assertEqual(x, (15.4, False, False, False, False, False))
     i.fail = True
     x = database.read("OILP1")
     self.assertEqual(x, (15.4, False, False, False, True, False))
     i.fail = False
     x = database.read("OILP1")
     self.assertEqual(x, (15.4, False, False, False, False, False))
     i.bad = True
     x = database.read("OILP1")
     self.assertEqual(x, (15.4, False, False, True, False, False))
     i.bad = False
     x = database.read("OILP1")
     self.assertEqual(x, (15.4, False, False, False, False, False))
Exemplo n.º 17
0
 def test_aux_data_read_write(self):
     """Test database auxillary data reading and writing"""
     sf = io.StringIO(general_config)
     database.init(sf)
     tests = [("Min", -160.0), ("Max", -130.0), ("0g", 10.0),
              ("Warn", 23.4), ("Stall", 45.6)]
     for test in tests:
         x = database.write("AOA." + test[0], test[1])
         x = database.read("AOA." + test[0])
         self.assertEqual(x, test[1])
Exemplo n.º 18
0
    def test_database_aux_data_bounds(self):
        """Test database aux data bounds checking"""
        sf = io.StringIO(general_config)
        database.init(sf)
        tests = [(0.0, 0.0), (-180.0, -180.0), (-180.1, -180.0), (0.0, 0, 0),
                 (180.0, 180.0), (180.1, 180.0)]

        for test in tests:
            database.write("AOA.Warn", test[0])
            x = database.read("AOA.Warn")
            self.assertEqual(x, test[1])
Exemplo n.º 19
0
 def test_parameter_writes(self):
     for param in ptests:
         msg = can.Message(is_extended_id = False, arbitration_id = param[1])
         msg.data = string2data(param[2])
         self.bus.send(msg)
         time.sleep(0.03)
         x = database.read(param[0])
         if '.' in param[0]:
             val = x
         else:
             val = x[0]
         self.assertTrue(abs(val-param[3]) <= param[4])
Exemplo n.º 20
0
 def test_parameter_writes(self):
     for param in ptests:
         msg = can.Message(extended_id = False, arbitration_id = param[1])
         msg.data = string2data(param[2])
         self.bus.send(msg)
         time.sleep(0.03)
         x = database.read(param[0])
         if '.' in param[0]:
             val = x
         else:
             val = x[0]
         self.assertTrue(abs(val-param[3]) <= param[4])
Exemplo n.º 21
0
    def test_compute_sum(self):
        database.write("FUELQ1", 10)
        database.write("FUELQ2", 10)
        x = database.read("FUELQT")
        self.assertEqual(x, (20, False, False, False, False, False))

        database.write("FUELQ1", 10)
        database.write("FUELQ2", 0)
        x = database.read("FUELQT")
        self.assertEqual(x, (10, False, False, False, False, False))

        database.write("FUELQ1", 0)
        database.write("FUELQ2", 15)
        x = database.read("FUELQT")
        self.assertEqual(x, (15, False, False, False, False, False))

        database.write("FUELQ1", (10, False, True, False, False))
        x = database.read("FUELQT")
        self.assertEqual(x, (25, False, False, True, False, False))
        database.write("FUELQ1", (10, False, False, True, False))
        x = database.read("FUELQT")
        self.assertEqual(x, (0, False, False, False, True, False))
        database.write("FUELQ1", (10, False, False, False, True))
        x = database.read("FUELQT")
        self.assertEqual(x, (25, False, False, False, False, True))
Exemplo n.º 22
0
    def test_compute_sum(self):
        database.write("FUELQ1", 10)
        database.write("FUELQ2", 10)
        x = database.read("FUELQT")
        self.assertEqual(x, (20, False, False, False, False, False))

        database.write("FUELQ1", 10)
        database.write("FUELQ2", 0)
        x = database.read("FUELQT")
        self.assertEqual(x, (10, False, False, False, False, False))

        database.write("FUELQ1", 0)
        database.write("FUELQ2", 15)
        x = database.read("FUELQT")
        self.assertEqual(x, (15, False, False, False, False, False))

        database.write("FUELQ1", (10, False, True, False, False))
        x = database.read("FUELQT")
        self.assertEqual(x, (25, False, False, True, False, False))
        database.write("FUELQ1", (10, False, False, True, False))
        x = database.read("FUELQT")
        self.assertEqual(x, (0, False, False, False, True, False))
        database.write("FUELQ1", (10, False, False, False, True))
        x = database.read("FUELQT")
        self.assertEqual(x, (25, False, False, False, False, True))
Exemplo n.º 23
0
 def test_aux_data_read_write(self):
     """Test database auxillary data reading and writing"""
     sf = io.StringIO(general_config)
     database.init(sf)
     tests = [("Min",  -160.0),
              ("Max",  -130.0),
              ("0g",    10.0),
              ("Warn",  23.4),
              ("Stall", 45.6)]
     for test in tests:
          x = database.write("AOA." + test[0], test[1])
          x = database.read("AOA." + test[0])
          self.assertEqual(x, test[1])
Exemplo n.º 24
0
 def test_bool_write(self):
     """test using wrong datatype for item"""
     sf = io.StringIO(general_config)
     database.init(sf)
     # Test actual booleans
     database.write("BTN1", True)
     x = database.read("BTN1")
     self.assertEqual(x[0], True)
     database.write("BTN1", False)
     x = database.read("BTN1")
     self.assertEqual(x[0], False)
     # Test strings
     database.write("BTN1", "True")
     x = database.read("BTN1")
     self.assertEqual(x[0], True)
     database.write("BTN1", "False")
     x = database.read("BTN1")
     self.assertEqual(x[0], False)
     database.write("BTN1", "1")
     x = database.read("BTN1")
     self.assertEqual(x[0], True)
     database.write("BTN1", "0")
     x = database.read("BTN1")
     self.assertEqual(x[0], False)
     database.write("BTN1", "Yes")
     x = database.read("BTN1")
     self.assertEqual(x[0], True)
     database.write("BTN1", "No")
     x = database.read("BTN1")
     self.assertEqual(x[0], False)
     # Test integers
     database.write("BTN1", 1)
     x = database.read("BTN1")
     self.assertEqual(x[0], True)
     database.write("BTN1", 0)
     x = database.read("BTN1")
     self.assertEqual(x[0], False)
Exemplo n.º 25
0
    def test_database_aux_data_bounds(self):
        """Test database aux data bounds checking"""
        sf = io.StringIO(general_config)
        database.init(sf)
        tests = [(0.0,     0.0),
                 (-180.0, -180.0),
                 (-180.1, -180.0),
                 (0.0,     0,0),
                 (180.0,   180.0),
                 (180.1,   180.0)]

        for test in tests:
            database.write("AOA.Warn", test[0])
            x = database.read("AOA.Warn")
            self.assertEqual(x, test[1])
Exemplo n.º 26
0
 def update(self):
     for i, key in enumerate(self.dblist):
         x = database.read(key)
         y = self.item(i, 1)
         y.setText(str(x[0]))
Exemplo n.º 27
0
 def func(key, value, parent):
     global AOA_pitch_history, AOA_ias_history, AOA_lift_constant, \
             AOA_acc_history, AOA_vs_history, AOA_heading_history
     nonlocal vals, AOA_pitch_root, AOA_smooth_min_len, \
             AOA_hist_count
     if not isinstance(key, str):
         return
     # This is to set the aux data in the output to one of the inputs
     o = parent.db_get_item(output)
     vals[key] = value
     Vs = read("IAS.Vs")
     if Vs is None:
         Vs = 9999
     #
     # Accumulate history values for estimating a lift constant
     #
     if key == 'PITCH':
         AOA_pitch_history.append(value[0])
         if len(AOA_pitch_history) > AOA_smooth_min_len:
             del AOA_pitch_history[0]
     if key == 'IAS':
         AOA_ias_history.append(value[0])
         if len(AOA_ias_history) > AOA_smooth_min_len:
             del AOA_ias_history[0]
     if key == 'ANORM':
         AOA_acc_history.append(value[0])
         if len(AOA_acc_history) > AOA_smooth_min_len:
             del AOA_acc_history[0]
     if key == 'VS':
         AOA_vs_history.append(value[0])
         if len(AOA_vs_history) > AOA_smooth_min_len:
             del AOA_vs_history[0]
         AOA_hist_count += 1
     if key == 'HEAD':
         AOA_heading_history.append(value[0])
         if len(AOA_heading_history) > AOA_smooth_min_len:
             del AOA_heading_history[0]
     #
     # Restart value history accumulation if any input is
     # not perfect quality
     #
     for each in vals:
         ve = vals[each]
         if not isinstance(ve, tuple): continue
         if ve is None:
             AOA_hist_count = 0
             break
         if ve[2]:
             AOA_hist_count = 0
             break
         if ve[3]:
             AOA_hist_count = 0
             break
         if ve[4]:
             AOA_hist_count = 0
             break
         if ve[5]:
             AOA_hist_count = 0
             break
     #
     # Compute AOA, one way or another
     #
     if len(AOA_ias_history): ias = AOA_ias_history[-1]
     else: ias = 0
     if AOA_lift_constant is not None and ias > Vs:
         # We're flying with a known lift constant, so compute alpha directly
         AOA_pitch_0 = read("AOA.0g")
         # Alpha (AOA) = lift_constant * acc[NORMAL/Z axis] / ias^2 -
         #               AOA_pitch_0
         o.value = AOA_lift_constant * AOA_acc_history[-1] / (ias * ias) - \
                   AOA_pitch_0
         flag_old = False
         flag_bad = False
         flag_fail = False
         flag_secfail = False
         for each in ['IAS', 'ANORM']:
             if vals[each] is None: flag_fail = True
             if vals[each][2]: flag_old = True
             if vals[each][3]: flag_bad = True
             if vals[each][4]: flag_fail = True
             if vals[each][5]: flag_secfail = True
         o.old = flag_old
         o.bad = flag_bad
         o.fail = flag_fail
         o.secfail = flag_secfail
         if flag_old or flag_bad or flag_fail or flag_secfail:
             AOA_hist_count = 0
     elif ias < Vs and vals['PITCH'] is not None:
         # Give an answer for taxi'ing and/or takeoff roll
         pitch = vals['PITCH']
         o.value = AOA_pitch_root + pitch[0]
         o.old, o.bad, o.fail, o.secfail = pitch[2:]
         # Since we're taxi'ing, we might have just refueled,
         # or changed the weight and balance, which drastically changes
         # the lift constant. Mark it as unknown to re-estimate
         # when possible.
         AOA_lift_constant = None
     elif vals['PITCH'] is not None:
         # Flying, but the lift constant is not yet established.
         # Give a guesstimate
         pitch = vals['PITCH']
         o.value = AOA_pitch_root + pitch[0]
         o.old = pitch[2]
         o.bad = True
         o.fail = pitch[4]
     else:
         # We're not getting any basic data. Fail out.
         o.fail = True
     #
     # Update lift constant, if possible
     #
     if AOA_hist_count > AOA_smooth_min_len and len(AOA_vs_history) and \
             len(AOA_ias_history):
         # Check if we've been straight and level for a sufficient time
         AOA_hist_count = 0
         mean_vs = sum(AOA_vs_history) / len(AOA_vs_history)
         if mean_vs < AOA_max_mean_vs and \
                    is_calm(AOA_vs_history,
                            AOA_max_vs_dev, AOA_max_vs_trend) and \
                    is_calm(AOA_pitch_history,
                            AOA_max_pitch_dev, AOA_max_pitch_trend) and \
                    is_calm(AOA_heading_history,
                            AOA_max_heading_dev, AOA_max_heading_trend,
                            wrap=360):
             # Flying straight and level! We can estimate a lift constant
             acc_mean = sum(AOA_acc_history) / len(AOA_acc_history)
             ias_mean = sum(AOA_ias_history) / len(AOA_ias_history)
             pitch_mean = sum(AOA_pitch_history) / len(AOA_pitch_history)
             AOA_pitch_0 = read("AOA.0g")
             # The steady state angle of attack at wing root
             # Alpha [steady state] + AOA_pitch_0 = lift_constant * acc[NORMAL/Z axis] / ias^2
             alpha_ss = pitch_mean + AOA_pitch_root
             # (Alpha [steady state] + AOA_pitch_0) * ias^2 = lift_constant * acc
             # lift_constant = (Alpha [steady state] + AOA_pitch_0) * ias^2 / acc
             new_lift_constant = (alpha_ss + AOA_pitch_0) * \
                     ias_mean * ias_mean / \
                     acc_mean
             if AOA_lift_constant is None:
                 AOA_lift_constant = new_lift_constant
             else:
                 filter_coefficient = .9
                 anti_filter_coefficient = (1 - filter_coefficient)
                 AOA_lift_constant = \
                         new_lift_constant*anti_filter_coefficient + \
                         AOA_lift_constant*     filter_coefficient
             print("AOA estimation lift constant %g" % AOA_lift_constant)
Exemplo n.º 28
0
 def test_value_write(self):
     self.sock.sendall("@wALT;2500\n".encode())
     res = self.sock.recv(1024).decode()
     self.assertEqual(res, "@wALT;2500.0;00000\n")
     x = database.read("ALT")
     self.assertEqual(x, (2500.0, False, False, False, False, False))
Exemplo n.º 29
0
 def test_aux_write(self):
     self.sock.sendall("@wOILP1.lowWarn;12.5\n".encode())
     res = self.sock.recv(1024).decode()
     x = database.read("OILP1.lowWarn")
     self.assertEqual(x, 12.5)
Exemplo n.º 30
0
 def db_read(self, key):
     return database.read(key)
Exemplo n.º 31
0
 def test_does_this_work_at_all(self):
     self.sock.sendall("@wALT;2500\n".encode())
     res = self.sock.recv(1024).decode()
     self.assertEqual(res, "@wALT;2500.0;00000\n")
     x = database.read("ALT")
     self.assertEqual(x, (2500.0, False, False, False, False, False))
Exemplo n.º 32
0
 def db_read(self, key):
     return database.read(key)
Exemplo n.º 33
0
 def test_aux_write(self):
     self.sock.sendall("@wOILP1.lowWarn;12.5\n".encode())
     res = self.sock.recv(1024).decode()
     x = database.read("OILP1.lowWarn")
     self.assertEqual(x, 12.5)
Exemplo n.º 34
0
 def update(self):
     for i, key in enumerate(self.dblist):
         x = database.read(key)
         y = self.item(i,1)
         y.setText(str(x[0]))
Exemplo n.º 35
0
    def test_compute_aoa(self):
        database.write("IAS.Vs", 72)
        database.write("AOA.0g", -1.0)
        database.write("PITCH", 0)
        database.write("IAS", 10)
        x = database.read("AOA")
        self.assertEqual(x, (2.0, False, False, False, False, False))

        # Takeoff roll
        for i in range(100):
            database.write("PITCH", 0)
            database.write("IAS", 10 + i)
            database.write("VS", 0)
            database.write("ANORM", 9.8)
            database.write("HEAD", 0)
        x = database.read("AOA")
        self.assertEqual(x, (2.0, False, False, True, False, False))

        # Climbout
        for i in range(100):
            database.write("PITCH", 5)
            database.write("IAS", 110)
            database.write("VS", 500)
            database.write("ANORM", 9.8)
            database.write("HEAD", 0)
        x = database.read("AOA")
        self.assertEqual(x, (7.0, False, False, True, False, False))

        # Turn
        for i in range(100):
            database.write("PITCH", 2)
            database.write("IAS", 130)
            database.write("VS", 50)
            database.write("ANORM", 10.8)
            database.write("HEAD", i)
        x = database.read("AOA")
        self.assertEqual(x, (4.0, False, False, True, False, False))

        # Straight and level
        for i in range(110):
            database.write("PITCH", 1)
            database.write("IAS", 130)
            database.write("VS", 0)
            database.write("ANORM", 9.8)
            database.write("HEAD", 100)
        x = database.read("AOA")
        y, a, o, b, f, s = x
        x = (round(y, 2), a, o, b, f, s)
        self.assertEqual(x, (3.0, False, False, False, False, False))

        database.write("IAS", 100)
        database.write("ANORM", 10.8)
        x = database.read("AOA")
        y, a, o, b, f, s = x
        x = (round(y, 2), a, o, b, f, s)
        self.assertEqual(x, (4.72, False, False, False, False, False))

        database.write("IAS", 130)
        database.write("ANORM", 7.8)
        x = database.read("AOA")
        y, a, o, b, f, s = x
        x = (round(y, 2), a, o, b, f, s)
        self.assertEqual(x, (2.59, False, False, False, False, False))
Exemplo n.º 36
0
 def test_value_write(self):
     self.sock.sendall("@wALT;2500\n".encode())
     res = self.sock.recv(1024).decode()
     self.assertEqual(res, "@wALT;2500.0;00000\n")
     x = database.read("ALT")
     self.assertEqual(x, (2500.0, False, False, False, False, False))