質問: ### 前提・実現したいこと Arduino M0 Pro を使用し、 Wifi切断時の接続復帰を行うプログラムを書きたいです。 ### 発生している問題・エラーメッセージ 予期せぬ問題によりwifiが切断された時、そこからプログラムを一度リセットし、プログラムをはじめから実行するプログラムを参考文献を参考に作成しましたが、以下のようにコンパイルエラーが出て実行できませんでした。 参考文献にもある通り、Milkcocoaに関する関数を使用するためにはMilkcocoa.hをインクルードする必要があるそうですが、既にインクルードしており困っております。 エラー文(長いので一部抜粋) ``` 'Milkcocoa::loop(int)' if(!milkcocoa.loop(50000)){ exit status 1 no matching function for call to 'Milkcocoa::loop(int)' ``` 他の方法や、この問題の原因をご存知の方いらっしゃいましたらご教授お願いいたします。 やりたい事 ●Wifi接続が切断され、一定時間(例えば60秒)接続が再開されない場合、 software_reset();文によってリセットできるようにしたいです。 ### 該当のソースコード ``` /*****************************Wifi,milkcocoa Setting***************************/ // ライブラリの読み込み #include "ESP8266.h" #include "Milkcocoa.h" #include "Client_ESP8266.h" その他省略 void loop() { // Milkcocoaのループ処理を実行 milkcocoa.loop(); if(!milkcocoa.loop(50000)){ software_reset(); } 以下実行文; } ``` ### 参考文献 ●Arduino M0 Pro用ソフトウェアリセット http://ehbtj.com/electronics/arduino-software-reset/ ●MQTTタイムアウト http://blog.mlkcca.com/iot/save-sensor-values-by-half-hour-2/ ### 補足情報(言語/FW/ツール等のバージョンなど) Arduino M0 Pro Milkcocoa Arduino IDE 1.8.0
回答: お使いの`Milkcocoa.h`がMilkcocoa_ESP8266_SDK/Milkcocoa.hと同じか 特に以下の部分 ``` // 略 class Milkcocoa { // 略 bool loop(uint16_t timeout = 0); ``` が同じか確認してください。 同じ場合は `if(!milkcocoa.loop(50000)){` を `if(!milkcocoa.loop((uint16_t)50000)){` と明示的に`uint16_t`型にキャストしてコンパイルできるか試してください。