2026-10-02 00:03:48 +08:00
|
|
|
|
# Real device test plan / 单次实机测试计划
|
|
|
|
|
|
|
|
|
|
|
|
**Not executed. Explicit owner authorization is required before any write.**
|
|
|
|
|
|
只读核对完成后询问:“真实设备只读验收完成,是否允许进行一次真实图片上传与显示测试?”
|
|
|
|
|
|
|
|
|
|
|
|
1. GET Frame Flow device (driver POST /device); record current imageId AND coverId,
|
|
|
|
|
|
synced, geometry, model, rotation, timezone, firmware, heartbeat and battery.
|
|
|
|
|
|
2. POST /listImages for metadata only. Record count, current image, sorted IDs,
|
|
|
|
|
|
duplicates, name/date/dimensions anomalies. No download-all action.
|
|
|
|
|
|
3. Stop on discrepancy. Missing model fields must be reported as unavailable.
|
|
|
|
|
|
4. Once explicitly authorized, locally render **one** 1200×1600 test image containing
|
|
|
|
|
|
PIGWAY FRAME FLOW TEST and Shanghai timestamp, no private content.
|
|
|
|
|
|
5. Record an operation ID and previous image; one upload only, no write retries.
|
|
|
|
|
|
6. Poll device read-only no more often than 60 seconds, respecting the 20/min budget.
|
|
|
|
|
|
Confirm imageId and synced. If sent but response lost, mark UNKNOWN, block writes,
|
|
|
|
|
|
reconcile gallery/device; never upload again to guess the outcome.
|
|
|
|
|
|
7. Keep the test image visible at most 1–3 minutes, then restore the recorded artwork
|
|
|
|
|
|
with a separate tracked switch operation. Query once more to confirm restored
|
|
|
|
|
|
imageId and synced. Record coverId after restoration too.
|
|
|
|
|
|
8. Delete only that known test image after restoration is positively confirmed AND
|
|
|
|
|
|
it is not a base/previous/override/current reference. If ambiguous, leave it and
|
|
|
|
|
|
report. Never delete art or retry a timed-out delete.
|
|
|
|
|
|
9. Disable real writes again. Report each operation ID/result and remaining test image.
|
|
|
|
|
|
|
|
|
|
|
|
The API cannot set coverId. Restoration guarantees a requested image switch when
|
|
|
|
|
|
confirmed, not arbitrary cover metadata restoration. Physical screen refresh has
|
|
|
|
|
|
no documented pixel telemetry; visual owner observation supplements cloud synced.
|
2026-10-14 13:10:33 +08:00
|
|
|
|
|
|
|
|
|
|
### Upload response reconciliation
|
|
|
|
|
|
|
|
|
|
|
|
Before an upload, the service persists its asset ID, exact SHA256/size, filename,
|
|
|
|
|
|
existing gallery IDs and timestamp. When the response is lost, read-only queries
|
|
|
|
|
|
look for one new image in the upload time window; only an exact downloaded-byte
|
|
|
|
|
|
match identifies it. Ambiguous, missing or altered content remains locked for
|
|
|
|
|
|
manual review. No upload or switch is replayed by reconciliation.
|
|
|
|
|
|
|
|
|
|
|
|
A proven upload completes the display only when the device reports that exact
|
|
|
|
|
|
image and `synced=true`. If a normal display remains on its previous synced
|
|
|
|
|
|
image beyond the sync timeout plus five minutes, two observations at least one
|
|
|
|
|
|
minute apart record `DISPLAY_NOT_CONFIRMED` and unblock future scheduled work.
|
|
|
|
|
|
Temporary overrides retain their restore behavior and are not automatically
|
|
|
|
|
|
closed as failed. Legacy operations without durable upload evidence require
|
|
|
|
|
|
manual acknowledgement; absence from the gallery alone never proves failure.
|