本專案是基於 kasperis7/pixer 的 Python 版本,將其完整轉換為 C# .NET 9 版本。
- 完全相容:與原始 Python 版本產生相同的二進位輸出
- 圖片轉換:支援 1872x1404 解析度,4位元灰階封裝格式
- Socket 通訊:透過 TCP 在 192.168.1.1:6000 與 Pixer 裝置通訊
- 韌體升級:支援 BLE、ITE、BSP 韌體升級功能
- 非同步處理:使用現代 C# async/await 模式
- .NET 9.0 或更高版本
- Windows、macOS 或 Linux
- 確保已安裝 .NET 9.0 SDK
- 在專案目錄中執行:
dotnet restore
dotnet builddotnet run <圖片路徑>例如:
dotnet run image.jpg
dotnet run /path/to/your/image.pngdotnet runProgram.cs- 主程式進入點ImgConverter.cs- 圖片轉換類別SocketClient.cs- TCP Socket 通訊類別MainActivity.cs- 主要活動控制類別FirmwareUpgrade.cs- 韌體升級功能PixerUpload.csproj- 專案設定檔
- 處理圖片縮放、裁切和灰階轉換
- 實作 4位元灰階封裝(每位元組包含2個像素)
- 產生協定標頭:
#file#000801314144imagebin
- 管理與 Pixer 裝置的 TCP 連線
- 支援命令傳送和檔案上傳
- 包含重試機制和錯誤處理
- 提供裝置檢查、重設和上傳功能
- 非同步執行所有網路操作
- 記錄電池電量和版本資訊
- 自動檢查和升級 BLE、ITE、BSP 韌體
- 支援不同版本的升級策略
- 包含電池電量檢查機制
- 非同步模式:使用 async/await 取代 Python 的 threading
- 強型別:利用 C# 的型別安全特性
- 資源管理:使用
using語句自動釋放資源 - 錯誤處理:更詳細的例外處理機制
- 圖片轉換演算法與 Python PIL 完全相同
- 4位元封裝格式位元組順序一致
- 協定標頭格式完全相同
- Socket 通訊協定完全相容
- 確保已連線到 Pixer 裝置的 WiFi 熱點 (192.168.1.1)
- 檢查防火牆設定是否阻擋 6000 埠
- 支援的圖片格式:JPEG、PNG、BMP、GIF 等
- 確保圖片檔案存在且可讀取
- 確保韌體檔案 (ble.bin, ite.bin, pixer.bin) 存在於執行目錄
- 檢查裝置電池電量是否大於 15%
建議在開發過程中:
- 先在有網際網路的環境下完成開發
- 測試時切換到 Pixer 裝置的 WiFi 進行實際驗證
- 比較 C# 和 Python 版本的輸出確保一致性
與原始 Pixer 專案相同的授權條款。
