Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

unity > udp RS-232C 通信変換 > udpRs232c

More than 3 years have passed since last update.
実装: Unity 5.1.3-f1 on MacOS X 10.8.5
動作確認:
1. MacOS X 10.8.5
2. Windows 7pro 32bit

RS-232C通信とUDP通信を変換したい。

code

v0.6 @ github

メインの処理は以下で実装

  • udpRs232cScript.cs

UDP通信をリレーするudpMonitorをベースにRS-232C送受信の処理を実装した。
9600bpsで通信をする。
処理のパフォーマンスはかなり悪いので、今後改善が必要。

使い方

接続例

  • UDP側 (192.168.10.3)
  • UDP-RS232C変換側 (192.168.10.8)

上記の2つを以下のように接続して試した。
(Assets/ConnectionDesign/ConnectionExample1.unity)

ConnectionExample1_unity_-_150923-udpRs232c_-_PC__Mac___Linux_Standalone__Personal_.jpg

COM5からCOM6へはクロス接続になるように、USBシリアルケーブル2本と自作のクロス接続治具を使用。
vmwareなど使えるのであれば、パイプを使えば同じことができる。

本来はCOM5から先は別のものがRS-232Cケーブルでつながっているという使用形態になるだろう。

使用例

192.168.10.8(Windows7)側でソフトを起動して以下で設定する。

  1. Settingボタンを押して、以下のように設定する
  2. OKボタンを押す
  3. ターミナルソフトをCOM6で立ち上げる
  4. ToggleCommにチェックを入れて、通信が始まる

Win7ProRadXE4.jpg

以下の手順での使用になる (使い方にまだ制限がある)

  1. 192.168.10.3からポート6000でUDP送信 :
    • 送信文字列が192.168.10.8のTerminalに表示される
    • 返信ポート番号 (53041など)が保持される
  2. 192.168.10.8のTerminalから送信
    • COM6->COM5->UDP(53041)経路で192.168.10.3に送信される
  3. 2の処理を繰り返すことができる

1の手順をやり直すと、別の返信ポート番号(例: 48136)が割り当てられ、2の手順を繰り返すことができる。

上記の手順(1)の例として、192.168.10.3(Macのターミナル)にて以下でUDP通信を確立し、192.168.10.8のTerminalにhelloが表示される。

$ echo "hello" | nc -u 192.168.10.8 6000

手順(2)の例として、192.168.10.8のTerminalで入力した文字列が192.168.10.3(Mac)のターミナルに送信される。

$ echo "hello" | nc -u 192.168.10.8 6000
abcdefghijkl

不備

  1. 処理に余計なwaitがかかっている。
  2. 使い方に制限ある。

v0.6.1 (RS-232C入力改善)

RS-232Cからの入力時の送信を速くなるようにした。

v0.6.1 @ github

検討中

UDPのポート番号(6000と任意番号)の設定を反対にすれば、UDP接続を確立しっぱなしにしなくていい気がする。
そうした場合、192.168.10.8はUDP経路で来るものをポート番号関係なしですべてCOM5に送ることになる。何らかのフィルタが必要になるかもしれない。

7of9
セブンオブナインです。Unimatrix 01の第三付属物 9の7という識別番号です。Star trek Voyagerの好きなキャラクターです。まとめ記事は後日タイトルから内容がわからなくなるため、title検索で見つかるよう個々の記事にしてます。いわゆるBorg集合体の有名なセリフから「お前たち(の知識)を吸収する。抵抗は無意味だ」。Thanks in advance.
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away