Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

kble-serialportみたいにtcpをwsに流すようなものを作った #93

Closed
wants to merge 2 commits into from

Conversation

shunsuke-shimomura
Copy link
Contributor

作らなくていいかもという話を対面でしましたが、serialportをwsにするやつがkble-serialportならtcpをwsにするやつはkble-tcpだと思ったので作りました。
変復調器の仕様によって流れてくるパケットがまちまちですが、それは適宜自作のexecを挟むなどの方針でやるのが良いという話だったので、シンプルに流れてきたデータをパスするだけになってます。

@shunsuke-shimomura shunsuke-shimomura added the enhancement New feature or request label May 27, 2024
@shunsuke-shimomura shunsuke-shimomura self-assigned this May 27, 2024
@shunsuke-shimomura shunsuke-shimomura requested a review from sksat as a code owner May 27, 2024 02:00
@shunsuke-shimomura shunsuke-shimomura requested a review from kobkaz May 27, 2024 02:06
@KOBA789
Copy link
Member

KOBA789 commented May 27, 2024

kble-tcp という plugin を作るというアイデアはとても良さそう。コード自体はあとでレビューします

@kobkaz
Copy link
Contributor

kobkaz commented May 27, 2024

単純にデータを受け渡すだけならば、kble-tcpはexecで

plugs: {
  tcp : "exec:kble-tcp 127.0.0.1 8000",
  ...
}

のように起動できるようにするのがよいと思います。

その場合の書き方はkble-eb90等が参考になると思いますが、kble_socket::from_stdio を使ってstdioを用いてkbleと通信します(この時println等を使ってstdioに他の出力を出してしまうとエラーになる点には注意)
現在のkble-tcpに実装されていることのかなりの部分はkble_socketがやってくれます

@shunsuke-shimomura
Copy link
Contributor Author

コメントありがとうございます!TCPをexecで実装しようとしたときに、uplink側とdownlink側で2回接続しようとして落ちてしまい、安易に実装するためにkble-serialportのように別で起動する実装にしてしまいました。
こういうときどういう対処法が望ましいのでしょうか

@kobkaz
Copy link
Contributor

kobkaz commented May 27, 2024

2回接続するとはどういうことでしょう?
execの場合も、今のプログラムでTcpListnerを立ててacceptしている部分がkble_socket::from_stdioに変わるだけで、ほとんど同じになると思います

@shunsuke-shimomura
Copy link
Contributor Author

TLM : (衛星) -> 変復調器のTCPリスナー -> kble-tcp -> stdio -> kbleのws接続 -> gaia
CMD: gaia -> kbleのws接続 -> stdio -> kble-tcp -> 変復調器のTCPリスナー -> (衛星)
っていう流れになると思ってて、見様見真似で実装したらkble-tcpが上りと下りで2回実行されて、変復調のポートにConnection Refusedされてしまいました。

@shunsuke-shimomura
Copy link
Contributor Author

別ブランチでもう一回execで実装してみてレビューしてもらってもいいですか?
それともここにコミット生やすのでいいでしょうか

@KOBA789
Copy link
Member

KOBA789 commented May 27, 2024

PR 分けるかどうかはやりやすい方でよいと思う。
ただ、実装方針が根本から変わりそうなので別 PR で再出発する方が若干ベターかも。

@shunsuke-shimomura
Copy link
Contributor Author

#98 の方針を採用する

@sksat sksat deleted the add-tcp-scheme branch May 29, 2024 08:16
@sksat sksat mentioned this pull request Nov 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants