想必特意看這篇文章的你肯定是和現在的我做一樣的工作。這個玩意我已經玩了3個月,從一開始的的 Core 功能到最後的Smart Charging 都實現了。
還是一貫的風格,只提點思路:
- 首先自己要實現Websocket通信協議,這個實現起來非常 easy 。
- 自己編寫 UUID 函數。
- 需要用到 cJSON 庫,還有動態 malloc 分配函數。
- 裏面有很多操作離不開隊列。
- 最後要做的事情就是一堆的字符串解析。
- 對於發的時候 UUID 和接收時候 UUID怎麼匹配這個也不是很難實現。
- 剩餘的事情就是槍的狀態上傳,充電時候上報電能表值。。。
- 結束交易這樣的信息要先存flash裏,發送成功才能清除。
關於Smart Charging
- 首先描述出 Profile 的數據結構。
- 編寫一個模擬數據庫,實現不定長的記錄增刪改查功能,主鍵就選 chargingProfileId 即可。
- 根據 ChargingProfilePurposeType 新建多個鏈表頭,同類型的掛在一起。
- 由於 ChargingSchedulePeriod 是個變長的,處理的時候儘量不要用二級指針,否則存儲和恢復會很困難喔~
- 存儲的時候要考慮 chargingProfileId 和 stackLevel 是否有衝突。
- 時間戳處理下再存儲進去,別真的照存哈。
- Profile 配置文件裏很多字段都可以爲空,仔細閱讀爲空表示啥意思。
下面給出 2 個配置文件 demo