AmbientのArduinoとPythonライブラリで、Ambientサーバーに接続するときにタイムアウトを指定できるようにしました。
Arduino
Ambient::send([uint32_t tmout]); Ambient::bulk_send(char * buf[, uint32_t tmout]);
パラメータのtmoutはミリ秒で、省略時は5秒です。詳細はリファレンスの「Arduinoライブラリ」をご覧ください。ArduioのAmbientライブラリが0.0.5にバージョンアップしています。Arduino IDEのライブラリマネージャでAmbientライブラリを更新してください。
Python
am.send({'d1': 数値, 'd2': 数値}[, timeout = timeout]) am.read(n=件数[, skip=スキップ件数[, timeout = timeout]]) am.read(date='YYYY-mm-dd'[, timeout = timeout]) am.getprop([timeout = timeout])
パラメータのtimeoutは秒で、省略時は5.0秒です。詳細はリファレンスの「Pythonライブラリ」をご覧ください。Githubに公開しているPythonのAmbientライブラリを更新しているので、次のようにライブラリを再取得してください。
$ pip3 install git+https://github.com/AmbientDataInc/ambient-python-lib.git
従来はタイムアウトを指定していなかったため、ネットワークが不安定な環境でAmbientにデータ送信をする際、Ambientサーバーへの接続に失敗するとsendなどの関数から戻らなくなることがありましたが、タイムアウトを指定したことで、それが回避されます。また、パラメータは省略できるので、従来のプログラムを修正する必要はありません。