eg25-control: don't abort when AGPS download fails
This commit is contained in:
parent
5d349ce042
commit
0f881006e7
|
@ -267,9 +267,13 @@ class Sequencer:
|
||||||
def _at_autogps(self, enable: AutoGps) -> str:
|
def _at_autogps(self, enable: AutoGps) -> str:
|
||||||
return self._at_structured_cmd("QGPSCFG", "autogps", enable)
|
return self._at_structured_cmd("QGPSCFG", "autogps", enable)
|
||||||
|
|
||||||
def _get_assistance_data(self, variant: AgpsDataVariant) -> str:
|
def _get_assistance_data(self, variant: AgpsDataVariant) -> str | None:
|
||||||
|
try:
|
||||||
self.executor.exec(["curl", f"{self.AGPS_DATA_URI_BASE}/{variant}", "-o", variant])
|
self.executor.exec(["curl", f"{self.AGPS_DATA_URI_BASE}/{variant}", "-o", variant])
|
||||||
return variant
|
return variant
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
logger.warning(f"AGPS data download failed: {e}")
|
||||||
|
return None # TODO: could be smarter: return cached AGPS data?
|
||||||
|
|
||||||
@log_scope("powering modem...", "modem powered")
|
@log_scope("powering modem...", "modem powered")
|
||||||
def power_on(self) -> None:
|
def power_on(self) -> None:
|
||||||
|
@ -352,7 +356,9 @@ class Sequencer:
|
||||||
# now = datetime.datetime.now().strftime('%Y/%m/%d,%H:%M:%S') # UTC
|
# now = datetime.datetime.now().strftime('%Y/%m/%d,%H:%M:%S') # UTC
|
||||||
# self._at_structured_cmd("QGPSXTRATIME", value=f"0,\"{now}\"")
|
# self._at_structured_cmd("QGPSXTRATIME", value=f"0,\"{now}\"")
|
||||||
locdata = self._get_assistance_data(AgpsDataVariant.gps_glonass_beidou)
|
locdata = self._get_assistance_data(AgpsDataVariant.gps_glonass_beidou)
|
||||||
|
if locdata:
|
||||||
self._mmcli([f"--location-inject-assistance-data={locdata}"])
|
self._mmcli([f"--location-inject-assistance-data={locdata}"])
|
||||||
|
|
||||||
self._at_gnssconfig(GNSSConfig.gps_glonass_beidou_galileo)
|
self._at_gnssconfig(GNSSConfig.gps_glonass_beidou_galileo)
|
||||||
self._at_odpcontrol(ODPControl.disable)
|
self._at_odpcontrol(ODPControl.disable)
|
||||||
self._at_dpoenable(DPOEnable.disable) # N.B.: eg25-manager uses `DPOEnable.enable`
|
self._at_dpoenable(DPOEnable.disable) # N.B.: eg25-manager uses `DPOEnable.enable`
|
||||||
|
|
Loading…
Reference in New Issue
Block a user