GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
こんにちは。
現在、GR-COTTON+WROOM-02 / GR-CITRUS+WA-MIKANを使用してUDPデータの送受信のテストを行っています。
送受信はできるようになったのですが、loop()内でsend()+recv()を行うと、受信データがもたついた時に処理が遅れてしまいます。
送信、受信のスレッドを分ける、もしくはポーリング以外の方法をとることは可能でしょうか?
*関係ないですが、「スレッド」でサイト内検索をして初めてPOSTの方法を知りました。
左側のコミュニティボタンを押す必要があったんですね^^;
標準のライブラリでお手軽に行うには send()+recv() 以外を attachIntervalTimerHandler() 等で登録したタイマー割り込み処理で処理する方法ですかね。
ありがとうございます!
GR-COTTONのsetup()の最後に
attachCyclicHandler(0,sendInt,1000);
を入れてsendInt(unsigned long)を呼び出してみました。
loop()が空の時はうまくいったのですが、
loop()内にsend,recvなどがあるとうまく機能しないようです(1回だけ呼ばれてその後呼ばれない)。
attachCyclicHandlerはloop()内で処理される、とあるので、
loop内が重たいと引っ張られてしまうのかもしれません。
japan.renesasrulz.com/.../2231.aspx
最終的にはsend()とrecv()を非同期にできたらいいなと思っているのですが、
ひとまずrecv()のタイムアウトをなるべく短くして対応したいと思います。
よく読んでね。
attachIntervalTimerHandler() ですね。。すみません。
こちら動作を確認しました。ありがとうございます!
ただ割り込み内でdelay()が使えないので、send()とrecv()を非同期にしたいという
目的の用途には使用できなさそうでした。
> ただ割り込み内でdelay()が使えないので、send()とrecv()を非同期にしたいという
> 目的の用途には使用できなさそうでした。
タイマー割り込み処理は定期的に呼ばれるので、delay() したければ後の処理に回せばいいだけですよ。
ありがとうございます。言葉足らずですみません。
delayはライブラリ(ESP8266)の中で使用されています。
でもそうですね、ライブラリ改変も含め検討してみます。
投稿内容を読んで理解して下さらない方のようで残念です。
知識が浅く、いろいろ教えていただいたのに生かしきれなくて申し訳ありません。
ありがとうございました!