Hiroshi-Sugimura / echonet-lite.js

This project is creating npm module for providing ECHONET Lite API.
MIT License
21 stars 5 forks source link

EL.sendOPC1()のTIDについて #12

Closed acknpop closed 2 years ago

acknpop commented 2 years ago

picogwを立ち上げて、echonet-lite.jsのDevice Demoの実装に対してGet要求を発行したところタイムアウトになるようです。 ECHONET-Liteの規格書の3.2.2 Transaction ID(TID)は

ECHONET Lite 通信において、要求送信側が応答受信時に、自己が送信した要求と受信した応答をひも付けするためのパラメータである。応答送信側は、要求メッセージに含まれる値と同じ値を格納すること。プロパティ値通知など、応答受信を必要としないメッセージのTID の値については特に規定しない。

となっていますが、Device Demoのように応答にEL.sendOPC1()を用いると要求送信側とTIDが異なる場合に上記を満たさないように思いますがいかがでしょうか? 要求送信側のTIDをうまく設定してsendする方法をご教示いただければ幸いです。

Hiroshi-Sugimura commented 2 years ago

たしかにDevice Demoでは良くない例になっていますね。修正します。 また、Device側のReplyとして要求送信側のTIDをうまく設定してsendする方法については これから検討してみます。

現在のバージョンではsendBase、sendArray、sendStringはTIDを計算しないので、 自分でTIDを計算してそちらを使うことで対応可能と思います。

どうもありがとうございます。

Hiroshi-Sugimura commented 2 years ago

いや、上記3APIもダメですね。バグですね。修正します。

acknpop commented 2 years ago

ご確認ありがとうございました。 修正、お待ちしてます。

Hiroshi-Sugimura commented 2 years ago

修正し、Ver. 2.7.0としてpublishしました。

acknpop commented 2 years ago

早速のご対応ありがとうございました。 なるほど応答用の関数を別にされたんですね。 当方でも動作確認OKでした。