Meshtastic Python 取得裝置會持續的產生訊息 --- Meshtastic Python 函式庫使用pubsub 發布-訂閱 (pub/sub) 模式, 在系統不同部分之間傳遞非同步事件, 並通知應用程式收到的訊息、狀態變更和連線事件。 官方有很多內定的toptic, 內定的 meshtastic.receive 本身就提供很多訊息。新手可以先觀察這部分。 其他上官方文件找還有很多。 範例: mesh_log_monitor.py (簡單的純文字範例,連線COM3 有需要自己改,或者參考官網改成藍芽或TCP網路介面) import meshtastic import meshtastic.serial_interface from pubsub import pub import threading import time try: interface = meshtastic.serial_interface.SerialInterface(devPath="COM3") print("連線成功") except Exception as e: print(f"連線失敗:{e}") # 訂閱 meshtastic.receive 的訊息事件 def on_receive(packet, interface): print(f"收到訊息:{packet}") # 訂閱事件 pub.subscribe(on_receive, "meshtastic.receive") # 保持程式運作 try: while True: pass except KeyboardInterrupt: print("結束監聽") interface.close() 編輯後再執行 python.exe mesh_log_monitor.py 可以參照我之前的可攜python環境寫一個批次來跑 [Meshtastic Python 的基礎可攜環境製作](https://hackmd.io/4RhEkBKSSjmRZtN_NQ67cg) 能連上機器後,稍等一下,就會接收到很多機器輸出的訊息, 我們是很上層的toptic,所以會有很多不同portnum類型的訊息, 圖中是很常見的portnum 定義名稱為'TELEMETRY_APP', 它會一直顯示機器的硬體數據,電池電量與電壓。 還有很多不同portnum項目訊息,有興趣看看官網的說明,跟觀察一下內容。 以觀察電量來說,如果是python會寫的人,應該很好過濾訊息, 看看官方的toptic,其實有比較細的,不用全讀到。 例如: 以TELEMETRY_APP來說,把電量資料帶時間輸出txt文字檔或是寫進資料庫內,用於電量分析或即時顯示。 如果是文字訊息就是portnum 是 TEXT_MESSAGE_APP。 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up