SpreadRouterシリーズには標準で高機能なシリアル変換機能が搭載されています。
シリアル変換機能は、SpreadRouter の WebUI画面から設定することで使用可能になります。
このシリアル変換機能というのは簡単に説明すると、シリアルポートから流れてくるデータを、
TCPまたはUDPのパケットにそのまま乗せて指定先のIPアドレスに転送することができます。
当然、逆側の指定されたTCPまたはUDPからのデータもシリアル側に転送され、TCP/UDP経由で
遠隔からシリアル機器との通信を実現することができます。
WebUIのシリアル変換設定画面
この設定画面上に「最小読み込みデータ(バイト)」とありますが、この設定は次の様な意味になります。
シリアルからSpreadRouterにデータが送られてきたものを、「最小読み込みデータ」バイト数を受け取って
TCP側に送信するという意味になります。
画面サンプルの 10 という設定の時に、シリアル側から途切れ無く
“abcdefg1234567890AAAAABBBBBCCCCCDDDDDEEEEEFFFFF”
を受信した場合、“abcdefg123” の時点でTCP側に1つのパケットとして送信することになります。
そして、2パケット目に残りの“4567890AAAAABBBBBCCCCCDDDDDEEEEEFFFFF”が送信されます。
また、最小読み込みデータに満たないデータを受信した場合は、「データ待ち受け時間」を過ぎた時点で送信されます。
これが、SpreadRouterのシリアル変換機能でのシリアルからTCPへの送信仕様になります。
もしシリアルからのデータが途切れ無く多く出てくる場合は、「最小読み込みデータ」を最大の 255 に設定してください。
255バイト以下を途切れ無く1パケットに納めて転送することが可能になりパケットの節約になります。
WebUI設定上では、最大255バイトを上限で「最小読み込みデータ」を設定できますが、これ以上のデータを
まとめて転送したい場合は、SpreadRouterの内部ファイルをカスタマイズする必要があり、次のファイルを
ダウンロードし書き換える必要があります。
socat_server.txt
上記ファイル名を「socat_server.txt」から「socat_server」に変更します。
SpreadRouter の /usr/local/sbin/ 内に上書きします。
# overlaycfg -s other
でフラッシュに保存します。
※注意点:
但しこのファイルを使用し有効にした場合、転送時間が「データ待ち受け時間」で設定している時間よりも
長くなるため、レスポンスが低下する可能性があります。
標準のファームウェアと比較しご検討のうえ使用してください。