Sub-GHzとPi Gateway間の双方向通信に関して

ホーム フォーラム Lazurite Basic/Sub-GHz/miniシリーズのソフトウエアについて Sub-GHzとPi Gateway間の双方向通信に関して

このトピックには 3 返信 、 2 ボイス が含まれます。 最終更新 by  Lazuriteの開発者 1号 1 年、 1 月 前.

表示中の投稿 1 (合計 4 中)
  • 著者
    投稿
  • #11769 返信

    hal

    お世話になっております。

    Sub-GHzとPi Gateway間の双方向通信に関して2点、質問します。

    【質問】
    1.Sub-GHzは、非同期での双方向通信は不可能なのでしょうか。
    2.「Sub-GHzは基本的にデータを送信し続け、Pi Gatewayからのデータを受信した時だけ、何か処理を行う。」を実現するための方法をご存知でしたら、ご教授願います。
    3.SubGHz.send()は、タイムアウトしないのでしょうか。

    【実現したいこと】
    「Sub-GHzは基本的にデータを送信し続け、Pi Gatewayからのデータを受信した時だけ、何か処理を行う。」
    というものを実現したいです。

    【試した内容】
    実現するために、Sub-GHz側を以下のソースで動作させました。
    ————————————
    #define SUBGHZ_CH 36
    #define SUBGHZ_PANID 0x0001
    #define RX_ADDRESS 0xAF0F

    void setup(void)
    {
    SubGHz.init();
    SubGHz.begin(SUBGHZ_CH, SUBGHZ_PANID, SUBGHZ_100KBPS, SUBGHZ_PWR_20MW);
    msg = SubGHz.rxEnable(NULL);
    return;
    }

    void loop(void)
    {
    short rx_len;
    short tx_len;
    short index=0;
    uint16_t data16;

    rx_len = SubGHz.readData(rx_data,sizeof(rx_data));

    if(rx_len>0){
    // 受信した時の処理
    } else {
    // 受信していない時は基本的にデータを送信する
    Print.init(tx_data,sizeof(tx_data));
    Print.p(“TEST”);
    Print.ln();
    SubGHz.send(SUBGHZ_PANID, RX_ADDRESS, &tx_data, Print.len(),NULL);
    }
    return;
    }
    ————————————

    Pi Gateway側ではJavaのライブラリを利用し
    「5秒毎にデータを送信し、1秒毎にデータを受信する」
    プログラムで動作しています。

    【試した結果】
    Pi Gateway側は、以下の挙動になります。
     1.1秒毎にデータを受信ができる
     2.5秒毎にデータを送信ができず、「send error=-1」というエラーコードで終了する。
     3.たまにデータ送信が成功する。(send()から送信したbyteサイズが返ってくる)

    Sub-GHz側は、以下の挙動になります。
     1.SubGHz.send()から処理が戻ってこない。(loop処理にならない。)
     2.データ受信が一切できない。

    #11842 返信

    Lazuriteの開発者 1号
    キーマスター

    こちらで提供しているサンプルプログラムでは動作しているのでしょうか?
    SubGHz側のプログラムでは、時間処理が無いので、常時送信をし続けているように見えますので、一定時間後に送信する部分を追加してみるとどうなるでしょうか?

    #11853 返信

    hal

    送受信の双方向通信のサンプルプログラムは、IDEに含まれていますか?

    sleep()をはさめば、一定時間後に送信するようになるかと思いますが、
    sleep()中に、Pi GatewayからSub-GHzへデータが送信された場合に、Sub-GHz側でrecv処理は行えるのでしょうか?

    #11867 返信

    Lazuriteの開発者 1号
    キーマスター

    sleepは省電力モードに入っているため受信処理が出来ません。
    受信中は動作状態で待受をして頂けますよう、お願い致します。

    送信してから、所定の時間だけ受信可能とし、その後スリープするプログラムを作成ましたのでご活用ください。

    ファイルはこちらです。

表示中の投稿 1 (合計 4 中)
返信先: Sub-GHzとPi Gateway間の双方向通信に関して
あなたの情報:




36 ÷ 18 =