Closed poponta closed 4 years ago
ご連絡ありがとうございます!
手元の下記環境で、エラーが再現しない状況です。
ご使用のボードパッケージ、ならびに、その他お気づきの点があれば教えていただけませんか。
早速のご確認、誠にありがとうございます! 助かります。
本現象が発生した際のボードパッケージには、
を使用しておりました。 これは、アプリケーション側で上記パッケージが持つRTClockライブラリを使用しているためです。
ここで、ボードパッケージを、ご指定いただいた
にしたところ、AtSerial.hでのエラーは発生しなくなりました。 (ただ、このパッケージはRTClockライブラリを持っていないので、別途対応は必要になります)
この双方を比較してみると、SeeedJPのパッケージ(1.4.0)では、WInterrupts.h及びinterrupt.hにてfunctionalがincludeされているのに対し、Seeed (JP mirror)のパッケージ(1.1.0)では、functionalがインクルードされている箇所がございませんでした。
SeeedJPのパッケージ(1.4.0)を使えば、AtSerial.hがincludeされる時にはすでにWInterrupts.h及びinterrupt.hがincludeされているため、結果としてfunctionalもincludeされた状態で読みだされ、エラーが発生していないものと存じます。(WInterrupts.hがwiring.hを介して、最終的にArduino.hから読みだされる) しかし、Seeed (JP mirror)のパッケージ(1.1.0)を使ってしまうと、AtSerial.hがincludeされた時にはfunctionalがincludeされていないため、下記のエラーが発生します。
C:\Users\hogehoge\Documents\Arduino\libraries\Wio_LTE_for_Arduino\src/Internal/AtSerial.h:15:2: error: 'function' in namespace 'std' does not name a type
ですので、ユーザ側の対応としてボードパッケージに
を使用することで本エラーは抑制されます。 (ただ、もしどこかのタイミングでWInterrupts.h及びinterrupt.hからfunctionalのincludeが消えてしまうと上記エラーが発生する恐れもあるので、AtSerial.hでfunctionalをincludeしても良いかなとも存じます)
長文失礼いたしました。
詳細に調査、連絡いただきましてありがとうございます。 includeを追加したライブラリをリリースしました。(v2.13)
ただ、Seeed STM32 Board(JP mirror)
はディスコンですのでSeeedJP STM32 Boards
への変更をオススメします。
RTClockライブラリですが、、、類似品としてSTM32RTCがSeeedJP STM32 Boards
+Wio LTE Cat.1で実績があります。
そちらの目的に合うか分かりませんが、参考になればと思います。
Wio LTE for Arduino version : 2.12.0 Aruinod IDE version : 1.8.13
上記水準にて、標記のエラーが発生する場合があるようです。 AtSerial.h内で
include <functional>
を追加することで、エラーの発生を抑制できました。