DitDahChat モールス通信ウェブアプリ (6) 電鍵をシリアルポートに接続する

Chrome 89でWeb Serial APIが正式にサポートされたということをつい先日知りました。 以前からCWComのようにシリアルポートに電鍵が繋げられないかと思っていたので、DitDahChatに実装してみます。

まずは、CWComの接続方法の調査からです。

シリアルポートと電鍵のつなぎ方

CWComは、D-Sub 9ピンオスコネクタのDTR(4ピン)、DSR(6ピン)、CTS(8ピン)を使用しています。 エレキーの場合は、DTRにコモン、DSRにドット、CTSダッシュをそれぞれ接続します。ストレートキーの場合は、DTRとDSRに接続します。

DitDahChatはエレキーを内蔵していないので、ストレートキーモードで接続します。次の図の黒丸の部分に接続します。

🔵🔵🔵⚫🔵  
 ⚫🔵🔵🔵

電鍵のON/OFFを読み取りトーン信号を送出

ブラウザからシリアル通信するには、初めにどのシリアルポートを使うかを決めます。次のようにrequestPort()を呼び出すと、 シリアルポートを選択するダイアログが表示されます。

const port = await navigator.serial.requestPort();

次にそのポートをオープンします。

await port.open({ baudRate: 115200 });

ポートにアクセスできるようになったら、定期的にDSRの値を監視します。ONになったらトーン信号を送出、OFFになったら停止というようにします。

const sigs = await port.getSignals();

if (sigs.dataSetReady)
    ...
else
    ...

動作確認

動作確認には、ラトックシステムのUSBシリアル変換ケーブル REX-USB60F を使用しました。

f:id:ji1jdi:20210731092720j:plain

変換ケーブルに使用されているチップによってはWindows 10で動作しないものもあるようです。
A1 CLUBの掲示板でいただいた情報をまとめると、次のチップを使っているものは動作するようでした。

  • Profilic PL-2303HX (rev.D)
  • FTDI FT232BM, FT232RL
  • CH340

第49回オール群馬コンテスト結果発表

2021年5月15日に行われた第49回オール群馬コンテストの結果が発表されました。

初めての入賞です。

f:id:ji1jdi:20210731092600j:plain

交信数はそれほど多くないのですが、県外電信 QRP V・UHF部門は元々参加者が少なく、粘った甲斐がありました。
運用は常置場所からです。群馬方面は近く、開けているのが良かったようです。

交信していただいた皆さま、ありがとうございました!

RTSPプロキシを立てる

RTSPプロトコルを使用した複数のカメラ映像を中継する必要があったので、RTSPプロキシを立てる手順をメモしておきます。

インストール

RTSPプロキシには、rtsp-simple-serverを使用します。

github.com

プリコンパイルされた実行可能ファイルが用意されているので、次のURLから対象となるプラットフォームのパッケージをダウンロードします。

Releases · aler9/rtsp-simple-server · GitHub

ダウンロードしたパッケージを任意の場所で展開します。パッケージには次の2つのファイルが含まれています。

# Linux版の場合
rtsp-simple-server                # 実行可能ファイル
rtsp-simple-server.yml            # 設定ファイル

設定

プロキシ用に設定ファイルをコピーします。

$ cp rtsp-simple-server.yml rtsp-proxy.yml

RTSP以外のプロトコル (RTMP, HLS) は無効化しておきます。

rtmpDisable: yes
hlsDisable: yes

pathsセクションを次のように書き換えます。

paths:
    camera/1:
        source: rtsp://[カメラ1のURL]
        sourceOnDemand: yes

    camera/2:
        source: rtsp://[カメラ2のURL]
        sourceOnDemand: yes

sourceOnDemandをyesにすると、クライアントが接続してきたときにカメラからストリームをpullするようになります。

起動

"/path/to"は適宜読み替えてください。

$ /path/to/rtsp-simple-server /path/to/rtsp-proxy.yml

動作確認

ビューワでカメラ映像を表示します。VLCメディアプレーヤーを使う場合は次のようにします。

# カメラ1
vlc rtsp://[プロキシのURL]/camera/1

# カメラ2
vlc rtsp://[プロキシのURL]/camera/2