可以看到有五個資料夾,分別為:
- android/TelembaController (APP)
- electric (電路)
- firmware/application (韌體,用來連接平板以及掃地機器人)
- hangouts (影音通話)
- mechanical/Telemba-012 (機構)
點選src/jp/hackerspace/TelembaController,就可以看到2個資料夾以及4個檔案,分述如下:
- MQTTUtil (資料夾:物聯網公用程式)
- USBUtil (資料夾:USB公用程式-連接掃地機器人)
- AndroidStatusReceiver.java (手機狀態接收器程式)
- LoginDialog.java (登入對話盒程式)
- MQTTClientService.java (物聯網客戶端服務程式)
- TelembaActivity.java (主程式)
this.pubNode = new MQTTPublishNode() ; //建立物聯網發佈節點
this.brokerUrl = "tcp://telemba.jp:1883"; //設定物聯網仲裁主機的網址以及通訊埠
this.usb2roomba = new USB2Roomba(TelembaActivity.getActivity()) ;//建立USB到掃地機器人的物件
this.usb2roomba.setMQTTClient(this.pubNode);//設定物聯網發佈節點
有關MQTT客戶端(Client)是使用org.eclipse.paho.client.mqttv3.MqttClient;,請參考https://www.eclipse.org/paho/files/javadoc/org/eclipse/paho/client/mqttv3/MqttClient.html的說明。
以下是訂閱主題的程式說明:
在打開MQTTUtil有兩支程式分別是MQTTCallback.java和MQTTPublishNode.java,前者是負責處理訂閱主題後,收到伺服主機送主題更新資料的回呼程式,而後者則是發佈主題命令。
從上面程式,可以很清楚收到物聯網主題訊息後,如何把訊息轉換成命令來控制掃地機器人。下圖為收到"invite"命令後,啟動Hangout的情形。
進入USBUtil資料夾,打開RoombaCommand.java就可以查看平板程式是如何下命令來指揮掃地機器人,例如啟動則用START命令,也就是128。
沒有留言:
張貼留言