ka9q-python 3.26.0__py3-none-any.whl → 3.26.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
ka9q/status.py CHANGED
@@ -88,16 +88,20 @@ class FrontendStatus:
88
88
  """Absolute input power in dBm if the front-end is calibrated."""
89
89
  if self.if_power is None or self.rf_level_cal is None:
90
90
  return None
91
- # control.c: dBm = if_power (dBFS) + rf_level_cal + analog gain chain
92
- analog = 0.0
91
+ if not math.isfinite(self.rf_level_cal): # radiod's "not calibrated"
92
+ return None
93
+ # Term for term what radiod's control.c displays as "Input":
94
+ # if_power + lna + mixer + if_gain + |rf_atten| - rf_gain + rf_level_cal
95
+ # Keep it identical to control.c, even where a sign looks odd.
96
+ dbm = self.if_power + self.rf_level_cal
93
97
  for v in (self.lna_gain, self.mixer_gain, self.if_gain):
94
98
  if v is not None:
95
- analog += v
99
+ dbm += v
96
100
  if self.rf_atten is not None:
97
- analog += self.rf_atten # attenuation is signed positive
101
+ dbm += abs(self.rf_atten)
98
102
  if self.rf_gain is not None:
99
- analog -= self.rf_gain
100
- return self.if_power + self.rf_level_cal - analog
103
+ dbm -= self.rf_gain
104
+ return dbm
101
105
 
102
106
 
103
107
  @dataclass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ka9q-python
3
- Version: 3.26.0
3
+ Version: 3.26.1
4
4
  Summary: Python interface for ka9q-radio control and monitoring
5
5
  Author-email: Michael Hauan AC0G <ac0g@hauan.org>
6
6
  License: MIT
@@ -15,16 +15,16 @@ ka9q/resequencer.py,sha256=m_OWattFpqIugSqWr6aadsmUeoJIPkfINKfPi6gp_sg,17300
15
15
  ka9q/rtp_recorder.py,sha256=-YpG9mleoGjEd5voPSxnGcdVsFvyxSgOJ8f7ZaXGcT0,23210
16
16
  ka9q/slot_clock.py,sha256=9OuE1qMHJ5YBHfNPtQSguj_KHgkU9iAXfhOLEk-1B78,13468
17
17
  ka9q/spectrum_stream.py,sha256=utMhpH8hkkwOSD1WpKb4r0YHm3isDF0TvYMq-jJJFwY,11458
18
- ka9q/status.py,sha256=Tep1FW4bgg80v0qn18Biulg6g0S1F2LmbrDXVu2HXSg,28224
18
+ ka9q/status.py,sha256=ufrw-8pPvOs9YjRlR3W8cWWsfA23utdR-eMddyuokKU,28421
19
19
  ka9q/status_listener.py,sha256=20l9aHii263myYlO8mmSgI_tUcchUwLwgh69Dx-1UQY,20045
20
20
  ka9q/stream.py,sha256=s1Xl4Njia9DwXxsSF2XSon1plFjJoDXXXCGeLZdF734,33111
21
21
  ka9q/stream_quality.py,sha256=YrKa07PzDi4xeF5tubwpDvSTs5eHu0G7mOa12iIINrs,8222
22
22
  ka9q/tui.py,sha256=ryL5CxfYkVzXhsCy1hw9GP3ya8hDbZTccfkc_uJtrDQ,27182
23
23
  ka9q/types.py,sha256=woWL_ShotZnYUYsR4RBL2wu13S1MTkkJC9_-9IVh14g,7514
24
24
  ka9q/utils.py,sha256=fFR_sYIpeDyPaFlXzN6jCiGhYlssvrMMVx4z6vyhqcc,7107
25
- ka9q_python-3.26.0.dist-info/licenses/LICENSE,sha256=mjz-l5TVsO9j7Jqt1gfLvTWtZK_HL9sZRRpsHaq4Qv8,1074
26
- ka9q_python-3.26.0.dist-info/METADATA,sha256=6Bj7pdfXVJebxW24J-3bInOyKsh32qjMzz16_hirSq0,14637
27
- ka9q_python-3.26.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
28
- ka9q_python-3.26.0.dist-info/entry_points.txt,sha256=Wt5Q4OMUKHaf4KdsZXWsjSBpbHVuTtt3pypVIHi7eRk,39
29
- ka9q_python-3.26.0.dist-info/top_level.txt,sha256=FUTLZDtQpJGenGPPlN34E5QpQi_oaiLB6LuzgHblBNE,5
30
- ka9q_python-3.26.0.dist-info/RECORD,,
25
+ ka9q_python-3.26.1.dist-info/licenses/LICENSE,sha256=mjz-l5TVsO9j7Jqt1gfLvTWtZK_HL9sZRRpsHaq4Qv8,1074
26
+ ka9q_python-3.26.1.dist-info/METADATA,sha256=74ee0echpb96cFl7hzAeHZ7QD42Wk3Y4bUUhJWCaWI0,14637
27
+ ka9q_python-3.26.1.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
28
+ ka9q_python-3.26.1.dist-info/entry_points.txt,sha256=Wt5Q4OMUKHaf4KdsZXWsjSBpbHVuTtt3pypVIHi7eRk,39
29
+ ka9q_python-3.26.1.dist-info/top_level.txt,sha256=FUTLZDtQpJGenGPPlN34E5QpQi_oaiLB6LuzgHblBNE,5
30
+ ka9q_python-3.26.1.dist-info/RECORD,,