Repository navigation
Open EOS Control 0.12.0 Development Preview
Pre-release
Pre-release
Open EOS Control v0.12.0 Development Preview
繁體中文
0.12.0 讓 Android 使用者依日期、評分與已觀察資料夾挑選素材,離線查看最近下載紀錄,並改善連線恢復、停錄後查找影片及原檔保存。這組新使用者功能採 minor 版號,仍是供測試與回饋的 Development Preview,不建議用於正式拍攝流程。
使用者可見變更
- 挑出要保存的素材:日期範圍包含起訖日,採畫面標示的裝置時區;可搭配評分、類型及資料夾篩選,評分亦可排序。未知資料維持明確區分,隱藏的已選項目保留並提示批次範圍。篩選只作用於已載入素材,不代表全卡已掃描;素材日期也不一律是原始拍攝時間。
- 確認素材回覆:Bridge metadata 回覆必須屬於要求的素材;評分寫入另須確認要求的星等,才顯示成功。無效評分維持未知,不能變成 0 星,也不會因無法確認而自動重送相機寫入。
- 看清來源資料夾:Android 與 Desktop Bridge 提供可觀察的資料夾來源。Android USB/PTP 只用本輪已取得的 StorageID 與 ObjectInfo 父鏈,不增加資料夾查詢、不推測 SD/CF 卡槽或提供拍攝目錄控制;未知資料夾的素材仍可瀏覽。
- 連線與停錄後恢復:修改等待中的連線/Bridge 掃描設定會取消舊工作,提供明確取消、錯誤說明與手動重試。Stop 正常確認非錄影後,有界查找新可見影片;尚未找到時可只讀重查,再接續預覽與保存,不重播 Start/Stop。新可見影片不保證由本次錄影產生。
- 保留下載結果及清理風險:離線查看最近 100 筆實際開始的原檔下載;清除只移除紀錄。SAF 取消/失敗改用文件刪除契約清理本次輸出;清理未確認時停止自動重試並保留警告。完成的原檔不因後續取消或紀錄寫入失敗而刪除,未開始的批次項目不冒充已下載。
- 預覽導航:離線相簿可開啟既有示意預覽,支援 RAW/JPEG 篩選後的前後導航及返回;這不是離線 RAW 解碼。連線相簿遇到不支援的鄰項或過期導航清單時保留目前 viewer,不清空或跳錯素材。
升級注意
- Android 版本 0.12.0/versionCode 28,沿用 Preview package 與固定開發簽章;更新需相同 package/簽章,與隔離
.debug測試 App 分開。 - 下載紀錄可讀 schema 1/2,後續寫入 schema 2。僅支援 schema 1 的較早開發建置遇到 schema 2 只會保留資料並提示無法讀取,不保證無損降版。紀錄不驗證目的檔仍存在或來源 checksum,也不會回補舊下載、跨程序續傳、去重或自動背景匯入。
- iOS 同步為 0.12.0/build 26,仍提供原始碼與 Simulator 驗證,沒有已簽署 IPA;版號同步不表示新增 Android 流程已有 iOS/PC 等效介面。Camera Import artifact 1.1.0/wire 1.0 與 Serein 契約不變。
驗收與限制
- 功能整合來源 PR #209 的
3bf3eaf在 CI 37530855681 首輪通過:API34/36 原始 XML 各 291/291、各含六個 SAF 系統文件旅程;本地同來源 839 個 App JVM、14 個 contract 測試、AndroidTest 編譯與 Lint(0 fatal/error)均通過。整合樹已由 main acceptance 37535119913 接受為def552c。這些是版本號更新前的功能整合證據。 - 最終版本的 PR head、CI run、accepted main 與六個 payload 的大小/hash 由
BUILD-PROVENANCE.json記錄。完成狀態須核對版本 PR 的ci-complete、main acceptance 及 Release 的release-published,不能由本文存在推定。版本檔按路徑選擇 Android、Bridge、Windows、Simulator、Camera Import 與 iOS App/UI gate;未選取的 standalone iOS Core 不當成重新執行。 - 新增證據來自 synthetic HTTP/PTP、Android emulator 與系統 DocumentsUI/跨 UID test provider;不代表實體 EOS、手機、USB driver、第三方 provider、持續 URI grant 或程序被終止後的恢復已驗收。R6 Mark III 大卡、真實弱網、其他機型/韌體與光學對焦仍需對應真機證據。
- 關閉仍在載入的 display 預覽,不會取消該 display HTTP 工作。 UI 關閉後 MEDIA 仍可能忙碌,較晚的失敗可能顯示為全域媒體錯誤;可等待結束或 Disconnect/重新連線。此限制未由本版導航修正解決;關閉 viewer 與取消原檔下載仍是不同操作。
- USB 修正限已觀察資料夾與卡片媒體讀取/串流的 session 邊界;較廣的 storage snapshot/error 過期發布限制仍未修復。同 backend 的 close/initialize 測試不能宣稱重現一般 App reconnect 故障。相機命令確認、狀態、新可見素材與實際曝光/光學清晰也不等價。
- 沒有新增完整 RAW 解碼/顯影、Camera Connect 藍牙配對或全平台相簿功能一致性。原檔長度一致不代表來源 checksum 已驗證,第三方相簿也不保證解碼所有 RAW。永久斷網或程序終止後仍須在有停止警告時確認機身狀態。
發行檔
發行檔由 accepted main 的 immutable candidate 推進,六個 payload 加兩個核對檔合計八個資產:
- Android:
open-eos-control-android-0.12.0-debug.apk - Windows:
open-eos-control-bridge-windows-x64-0.12.0.exe - Python:
open_eos_control_bridge-0.12.0-py3-none-any.whl、open_eos_control_bridge-0.12.0.tar.gz - Camera Import:
open-eos-camera-import-contract-1.1.0.zip、open-eos-camera-import-contract-kotlin-1.1.0.jar - 來源及六個 payload 的大小/hash:
BUILD-PROVENANCE.json;下載核對:SHA256SUMS.txt
English
0.12.0 adds an Android workflow for selecting media by date, rating and observed folder, checking recent downloads offline, and recovering through connection, post-recording review and original-file saving. These user-visible capabilities warrant a minor version. This remains a Development Preview for testing and feedback, unsuitable for production camera workflows.
What changes
- Select media to save: inclusive date ranges use the displayed device time zone and combine with rating, type and folder filters; ratings can also be sorted. Unknown metadata stays distinct, while hidden selections remain selected with a batch-scope warning. Filters cover loaded items, not a verified whole-card scan, and media dates are not always original capture times.
- Check media replies: Bridge metadata responses must match the requested item; rating writes must also confirm the requested value before showing success. Invalid ratings remain unknown rather than becoming zero stars, and an unconfirmed reply does not cause an automatic camera-write replay.
- Identify observed folders: Android and Desktop Bridge expose available folder provenance. Android USB/PTP uses only StorageIDs and ObjectInfo parent associations already observed in the current listing, without extra folder queries, inferred physical card slots or recording-directory controls. Items with unknown folders remain browseable.
- Recover connections and review recording: editing pending connection or Bridge-scan settings cancels the abandoned attempt. Accessible cancellation, localized errors and explicit retry support recovery. A successfully confirmed non-recording Stop starts bounded lookup for a newly visible video; read-only retry, preview and saving do not replay Start/Stop. A newly visible video does not prove that this recording created it.
- Keep download outcomes and cleanup warnings: view the latest 100 started original-file attempts offline; clearing removes records only. Interrupted SAF outputs use the document-deletion contract. Unconfirmed cleanup stops automatic retry and remains visible in history; finalized originals survive later cancellation or history-write failure. Unstarted batch items are not reported as downloads.
- Navigate previews: offline gallery items open the existing placeholder with RAW/JPEG filtered previous/next navigation and return; this adds no offline RAW decoding. Connected viewers retain the current item when a neighbor cannot be previewed or the navigation list is stale.
Upgrade notes
- Android is 0.12.0 / versionCode 28, retaining the Preview package and persistent development signer. In-place updates require the same package/signer and remain separate from isolated
.debugtest builds. - Download history reads schemas 1 and 2 and writes schema 2. Earlier development builds that only support schema 1 preserve schema-2 data and warn that it cannot be read; lossless downgrade is not guaranteed. History does not verify continued file existence or source checksums and adds no old-download backfill, process-resumable transfers, deduplication or automatic background import.
- iOS is 0.12.0 / build 26, supplied as source and Simulator evidence without a signed IPA. Matching versions do not establish Android/iOS/PC feature parity. Camera Import artifact 1.1.0 / wire 1.0 and the Serein contract are unchanged.
Evidence and limitations
- The functional integration in PR #209, head
3bf3eaf, passed CI 37530855681 on its first attempt: raw API34/36 XML each recorded 291/291 passes, including six SAF system-document journeys per API. Matching-source local validation passed 839 App JVM tests, 14 contract tests, AndroidTest compilation and Lint with zero fatal/errors. Main acceptance 37535119913 accepted that tree asdef552c. These results describe the functional integration before the version-number update. BUILD-PROVENANCE.jsonrecords the final version-PR head, CI run, accepted main and six payload sizes/hashes. Completion requires the version PR'sci-complete, main acceptance and Release'srelease-published; this document alone establishes none of those states. Changed-path version gates include Android, Bridge, Windows, Simulator, Camera Import and iOS App/UI; a skipped standalone iOS Core job is not a rerun of that suite.- New evidence uses synthetic HTTP/PTP peers, Android emulators and system DocumentsUI with a separate-UID test provider. It does not validate physical EOS cameras, phones, USB drivers, third-party providers, persistent URI grants or process-death recovery. R6 Mark III large cards, real weak networks, other models/firmware and optical focus still need corresponding physical evidence.
- Closing a still-loading display preview does not cancel its display HTTP work. MEDIA may remain busy after dismissal, and a late failure may appear globally. Wait for completion or Disconnect/reconnect. The navigation fixes do not resolve this limitation; closing the viewer and cancelling an original download remain separate actions.
- USB changes cover observed folder provenance and card-media/stream session boundaries. Broader stale storage-snapshot/error publication remains unresolved. Same-backend close/initialize tests do not establish an ordinary App reconnect defect. Command acknowledgement, camera status, newly visible media and actual exposure/optical sharpness are separate evidence.
- No complete RAW decoding/development, Camera Connect Bluetooth pairing or cross-platform gallery parity is added. Matching file lengths do not verify a source checksum; third-party galleries may not decode every RAW format. After permanent network loss or process death, check the camera when a stop warning remains.
Distribution
Distribution uses the exact accepted-main immutable candidate. The eight assets are:
- Android:
open-eos-control-android-0.12.0-debug.apk - Windows:
open-eos-control-bridge-windows-x64-0.12.0.exe - Python:
open_eos_control_bridge-0.12.0-py3-none-any.whl,open_eos_control_bridge-0.12.0.tar.gz - Camera Import:
open-eos-camera-import-contract-1.1.0.zip,open-eos-camera-import-contract-kotlin-1.1.0.jar BUILD-PROVENANCE.jsonrecords the source and six payload sizes/hashes;SHA256SUMS.txtverifies downloads.