fix decoder and uncertainty issues (#146)
* Created branch mods20230421a * nic_v2 NIC return is set to None when a KeyError exception is raised * process_raw receives additional return values from nuc_p, nic_v2, nuc_v, nac_v, nac_p . hum44, p44, temp44, turb44, wind44, tk50, gs50, roc60baro, roc60ins, tc, and icao added to acs dictionary. --------- Co-authored-by: Mike M <>
This commit is contained in:
parent
08218f558d
commit
74ea61fb11
@ -459,6 +459,7 @@ def nic_v2(msg: str, NICa: int, NICbc: int) -> tuple[int, int]:
|
|||||||
|
|
||||||
Rc = uncertainty.NICv2[NIC][NICs]["Rc"]
|
Rc = uncertainty.NICv2[NIC][NICs]["Rc"]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
|
NIC = None
|
||||||
Rc = uncertainty.NA
|
Rc = uncertainty.NA
|
||||||
|
|
||||||
return NIC, Rc # type: ignore
|
return NIC, Rc # type: ignore
|
||||||
|
@ -73,8 +73,15 @@ class Decode:
|
|||||||
"VFOMr": None,
|
"VFOMr": None,
|
||||||
"PE_RCu": None,
|
"PE_RCu": None,
|
||||||
"PE_VPL": None,
|
"PE_VPL": None,
|
||||||
|
"hum44" : None,
|
||||||
|
"p44" : None,
|
||||||
|
"temp44" : None,
|
||||||
|
"turb44" : None,
|
||||||
|
"wind44" : None,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self.acs[icao]["tc"] = tc
|
||||||
|
self.acs[icao]["icao"] = icao
|
||||||
self.acs[icao]["t"] = t
|
self.acs[icao]["t"] = t
|
||||||
self.acs[icao]["live"] = int(t)
|
self.acs[icao]["live"] = int(t)
|
||||||
|
|
||||||
@ -155,7 +162,7 @@ class Decode:
|
|||||||
ac["nic_bc"] = pms.adsb.nic_b(msg)
|
ac["nic_bc"] = pms.adsb.nic_b(msg)
|
||||||
|
|
||||||
if (5 <= tc <= 8) or (9 <= tc <= 18) or (20 <= tc <= 22):
|
if (5 <= tc <= 8) or (9 <= tc <= 18) or (20 <= tc <= 22):
|
||||||
ac["HPL"], ac["RCu"], ac["RCv"] = pms.adsb.nuc_p(msg)
|
ac["NUCp"], ac["HPL"], ac["RCu"], ac["RCv"] = pms.adsb.nuc_p(msg)
|
||||||
|
|
||||||
if (ac["ver"] == 1) and ("nic_s" in ac.keys()):
|
if (ac["ver"] == 1) and ("nic_s" in ac.keys()):
|
||||||
ac["Rc"], ac["VPL"] = pms.adsb.nic_v1(msg, ac["nic_s"])
|
ac["Rc"], ac["VPL"] = pms.adsb.nic_v1(msg, ac["nic_s"])
|
||||||
@ -164,20 +171,20 @@ class Decode:
|
|||||||
and ("nic_a" in ac.keys())
|
and ("nic_a" in ac.keys())
|
||||||
and ("nic_bc" in ac.keys())
|
and ("nic_bc" in ac.keys())
|
||||||
):
|
):
|
||||||
ac["Rc"] = pms.adsb.nic_v2(msg, ac["nic_a"], ac["nic_bc"])
|
ac["NIC"], ac["Rc"] = pms.adsb.nic_v2(msg, ac["nic_a"], ac["nic_bc"])
|
||||||
|
|
||||||
if tc == 19:
|
if tc == 19:
|
||||||
ac["HVE"], ac["VVE"] = pms.adsb.nuc_v(msg)
|
ac["NUCv"], ac["HVE"], ac["VVE"] = pms.adsb.nuc_v(msg)
|
||||||
if ac["ver"] in [1, 2]:
|
if ac["ver"] in [1, 2]:
|
||||||
ac["HFOMr"], ac["VFOMr"] = pms.adsb.nac_v(msg)
|
ac["NACv"], ac["HFOMr"], ac["VFOMr"] = pms.adsb.nac_v(msg)
|
||||||
|
|
||||||
if tc == 29:
|
if tc == 29:
|
||||||
ac["PE_RCu"], ac["PE_VPL"], ac["base"] = pms.adsb.sil(msg, ac["ver"])
|
ac["PE_RCu"], ac["PE_VPL"], ac["base"] = pms.adsb.sil(msg, ac["ver"])
|
||||||
ac["EPU"], ac["VEPU"] = pms.adsb.nac_p(msg)
|
ac["NACp"], ac["HEPU"], ac["VEPU"] = pms.adsb.nac_p(msg)
|
||||||
|
|
||||||
if tc == 31:
|
if tc == 31:
|
||||||
ac["ver"] = pms.adsb.version(msg)
|
ac["ver"] = pms.adsb.version(msg)
|
||||||
ac["EPU"], ac["VEPU"] = pms.adsb.nac_p(msg)
|
ac["NACp"], ac["HEPU"], ac["VEPU"] = pms.adsb.nac_p(msg)
|
||||||
ac["PE_RCu"], ac["PE_VPL"], ac["sil_base"] = pms.adsb.sil(
|
ac["PE_RCu"], ac["PE_VPL"], ac["sil_base"] = pms.adsb.sil(
|
||||||
msg, ac["ver"]
|
msg, ac["ver"]
|
||||||
)
|
)
|
||||||
@ -194,6 +201,8 @@ class Decode:
|
|||||||
if icao not in self.acs:
|
if icao not in self.acs:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
self.acs[icao]["icao"] = icao
|
||||||
|
self.acs[icao]["t"] = t
|
||||||
self.acs[icao]["live"] = int(t)
|
self.acs[icao]["live"] = int(t)
|
||||||
|
|
||||||
bds = pms.bds.infer(msg)
|
bds = pms.bds.infer(msg)
|
||||||
@ -217,8 +226,10 @@ class Decode:
|
|||||||
output_buffer.append([t, icao, "rtrk50", rtrk50])
|
output_buffer.append([t, icao, "rtrk50", rtrk50])
|
||||||
|
|
||||||
if trk50:
|
if trk50:
|
||||||
|
self.acs[icao]["trk50"] = trk50
|
||||||
output_buffer.append([t, icao, "trk50", trk50])
|
output_buffer.append([t, icao, "trk50", trk50])
|
||||||
if gs50:
|
if gs50:
|
||||||
|
self.acs[icao]["gs50"] = gs50
|
||||||
output_buffer.append([t, icao, "gs50", gs50])
|
output_buffer.append([t, icao, "gs50", gs50])
|
||||||
|
|
||||||
elif bds == "BDS60":
|
elif bds == "BDS60":
|
||||||
@ -241,10 +252,20 @@ class Decode:
|
|||||||
output_buffer.append([t, icao, "mach60", mach60])
|
output_buffer.append([t, icao, "mach60", mach60])
|
||||||
|
|
||||||
if roc60baro:
|
if roc60baro:
|
||||||
|
self.acs[icao]["roc60baro"] = roc60baro
|
||||||
output_buffer.append([t, icao, "roc60baro", roc60baro])
|
output_buffer.append([t, icao, "roc60baro", roc60baro])
|
||||||
if roc60ins:
|
if roc60ins:
|
||||||
|
self.acs[icao]["roc60ins"] = roc60ins
|
||||||
output_buffer.append([t, icao, "roc60ins", roc60ins])
|
output_buffer.append([t, icao, "roc60ins", roc60ins])
|
||||||
|
|
||||||
|
elif bds == "BDS44":
|
||||||
|
if(pms.commb.is44(msg)):
|
||||||
|
self.acs[icao]["hum44"] = pms.commb.hum44(msg)
|
||||||
|
self.acs[icao]["p44"] = pms.commb.p44(msg)
|
||||||
|
self.acs[icao]["temp44"] = pms.commb.temp44(msg)
|
||||||
|
self.acs[icao]["turb44"] = pms.commb.turb44(msg)
|
||||||
|
self.acs[icao]["wind44"] = pms.commb.wind44(msg)
|
||||||
|
|
||||||
# clear up old data
|
# clear up old data
|
||||||
for icao in list(self.acs.keys()):
|
for icao in list(self.acs.keys()):
|
||||||
if self.t - self.acs[icao]["live"] > self.cache_timeout:
|
if self.t - self.acs[icao]["live"] > self.cache_timeout:
|
||||||
|
Loading…
Reference in New Issue
Block a user