Skip to content

Commit 7aa0d94

Browse files
committed
tools: ota_upgrade: support diffs from different app
Support upgrading specific devices from one application to another if the diff file exists. Signed-off-by: Jordan Yates <jordan@embeint.com>
1 parent 5651d09 commit 7aa0d94

1 file changed

Lines changed: 9 additions & 6 deletions

File tree

src/infuse_iot/tools/ota_upgrade.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ def run(self):
111111
with Live(self.progress_table(), refresh_per_second=4) as live:
112112
for source, announce in self._client.observe_announce():
113113
self.state_update(live, "Scanning")
114-
if announce.application != self._app_id:
114+
if announce.application != self._app_id and not self._single_id:
115115
continue
116116
if self._single_id:
117117
if self._single_id != source.infuse_id:
@@ -159,11 +159,14 @@ def run(self):
159159
# Do we have a valid diff?
160160
diff_file = self._release.dir / "diffs" / f"{v_str}.bin"
161161
if not diff_file.exists():
162-
self._missing_diffs.add(v_str)
163-
self._handled.append(source.infuse_id)
164-
self._no_diff += 1
165-
self.state_update(live, "Scanning")
166-
continue
162+
# Is this a single diff from a different application we know about?
163+
diff_file = self._release.dir / "diffs" / f"0x{announce.application:08x}" / f"{v_str}.bin"
164+
if not diff_file.exists():
165+
self._missing_diffs.add(v_str)
166+
self._handled.append(source.infuse_id)
167+
self._no_diff += 1
168+
self.state_update(live, "Scanning")
169+
continue
167170

168171
# Is signal strong enough to connect?
169172
if self._min_rssi and source.rssi < self._min_rssi:

0 commit comments

Comments
 (0)