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などの関数から戻らなくなることがありましたが、タイムアウトを指定したことで、それが回避されます。また、パラメータは省略できるので、従来のプログラムを修正する必要はありません。