Day After Day
tsurezure naru mamani...
ANOTHER SEASON

Digital Smart Technologies for Amateur Radio ®

Last Heard v.2.0.x Rpi-GW 管理用WEBアプリ

5月
30
2024
Back
HOME


=MEMO= 2024年1月現在のゲートウェイ・アプリケーション仕様変更(2023年の法改正による)に伴い、xchangeへの接続方法も変更になりました。間もなくリリースされる次期D-STAR仕様書に現行6.0aより更に詳しく記載される模様ですが、初期化パケットがxchange起ち上げ時発行され、それに返答する事によって継続的にポートが利用できます。未だ確定では無く仕様が変更される可能性は有りますが、そのプロトコルに対応した lastheard v2.0.0 を2024年1月19日より公開して来ました。 今回、Last Heard v.2.0.2にアップデートしRasberry Pi用 D-STAR Gateway管理アプリとして再構成致しました。

主な変更点は接続ユーザのデータをログからではなくmulti_forward WEBのデータから取得し、スキャン接続など瞬間の接続・切断で接続が残るのを解消しました。なお現在アプリの運用確認はRaspbian(Pi OS)のみとなって居り、AlmaLinux(Redhat系)向けは現在テストが出来ないため少しコードの変更が必要と思われます。




実際のWEBはこちらから

D-STAR リピータも、かなりの所が新ゲートウェイ採用となりました。今までのゲートウェイ(アイコム社製 dsgwd )は文字通り、コントローラ(ID-RP2C)とインターネットの間に入ってRF側とインターネット側の行き来を制御していました。

新ゲートウェイはその機能として、JARL管理サーバのアドレス指定に、IPアドレスではなく名前(FQDN)として trust.d-star.info を指定するように変更され、これによって2台のサーバ(IPアドレスは違う)が一つの名前で参照され、安全性が向上しました。

また、今まで UDP:40000 と言うポートに制限されていた、コールサインルーティングの復路も、ホールパンチ対応となり、往路が使用したポートを使って戻ってくるように仕様変更されました。ターミナル/アクセスモードでの 40000 ポート制限も、この方法で間もなくクリアされると思います。

さらに、最近ではゲートウェイPC内での各アプリケーションのコミュニケーションに掛かる応答時間を、仕様書通りに厳密にすることによって、交信中の他ゲートウェイからの割り込み等で会話が途切れる問題にも対応されました。Last Heard v.2.0.x でもハンドシェイクのスピードをアップし、データを所得するよう仕様変更致しました。

ソフトウェアのダウンロード


ソフトウェアはあくまで、自分自身の勉強の為にC言語、PHP、Pythonを使って書いてあります。著作権は保持していますが、CC-BY-NC-SA(クリエイティブ・コモンズ・ライセンス)に従って、自己責任で自由にお使いください。


1.PHPとApache2 をインストールします。

$ sudo apt intall php
PHP(バージョン指定不要)をインストールすると、依存関係から Apach2 もインストールされます。

これだけで、Raspberry Pi のIPアドレスを、他のWindowsマシンのブラウザなどで見ると、下のようなデフォルトページが見えます。 又、自動起動も有効に設定されます。

2.ゲートウェイサーバのCentOSでgit cloneします。

$ sudo apt install git
$ git clone https://github.com/ytodo/lastheard.git
$ cd lastheard
$ tree				# このコマンドはインストールしないと入っていません。
.
├── html			# このフォルダごと /var/www/ の直下にコピーします。
│   ├── conf
│   │   └── db.conf		# ダッシュボードの色を変えたり設定をします。
│   ├── css
│   │   └── db.css		# ダッシュボードのスタイルを決めます。
│   ├── favicon.ico		# ダッシュボードのタイトルバーアイコンです。	
│   ├── get_html.py		# multi_forward WEBを取得します。
│   ├── images
│   │   └── red_earth.png	# 好きなキャッチ画像をここに置きます。
│   ├── index.php		# WEB本体です。
│   └── monitor.php		# index.phpと同じです。
├── lastheard.service		# アプリ Last Heard を自動起動するユニットファイル
├── Makefile			# Cソースをコンパイルするときの手順ファイルです。
├── README.md
├── recv.c			# lastheardプログラムのソースです。
└── recv.h			# lastheardプログラムのヘッダーファイルです。

5 directories, 12 files

$ make
これで、ラストハードをログへ出力するアプリ「lastheard」が作成されました。PHPのWEB表示プログラムはフォルダhtmlに同梱されています。

3.ダウンロードしたアプリケーションを各フォルダーに置きます。

$ sudo mv lastheard /usr/local/bin
$ sudo cp -rf html /var/www
$ sudo rm /var/www/html/index.html
PHPをインストールしたとき確認したデフォルトページを削除します。index.htmlを削除すると、自動的に index.php が表示されるようになります。

4.ラストハードアプリ自体の自動起動を設定します。

$ sudo cp lastheard.service /etc/systemd/system
$ sudo systemctl enable lastheard.service
$ sudo reboot
これで、立ち上がればブラウザーでラストハードが見られるはずです。カーチャンクしてみてください。


環境設定ファイルの編集をします

先ずRpi-GWの設定ファイルにLast HeardのJARL D-STAR委員会へ登録したポートを設定します。

$ sudo nano /boot/rpi-GW/rpi-xchange.conf
  GNU nano 7.2                /boot/rpi-GW/rpi-xchange.conf
  
#
#   Version V02.00 or later
#   Satoshi Yasuda
#   12 Aug. 2018
#
DEBUG=3
ZR_NIC=eth1
ZR_ADDR=172.16.0.1
ZR_IN_PORT=20000
ZR_OUT_PORT=20000
GW_IN_PORT=20011
GW_OUT_PORT=20010
GW_NIC=lo
MON_PORT=21000
GW_ADDR=127.0.0.1

FORWARD=127.0.0.1:50000:dprs
FORWARD=127.0.0.1:50001:dstatus
FORWARD=127.0.0.1:50002:multi_forward
FORWARD=127.0.0.1:50003:decho
FORWARD=127.0.0.1:52000:lastheard

HTTP_PORT=20201
UPNP=0

次に、Last Heardの設定ファイルを編集します。

# nano /var/www/html/conf/db.conf
  GNU nano 7.2                /var/www/html/conf/db.conf
#
#   D-STAR Dashboard configuration file
#
#   2018.12.22  Yosh Todo/JE3HCZ
#

# 自局設定
RPTNAME=xxxx D-STAR GATEWAY --> 漢字も使えますがこのファイル自体をShift_JISで保存してください
RPTCALL=JPnxxx A

# LASTHEARD 行数
LINES=10

# リフレッシュ間隔(秒)
INTERVAL=2

# ヘッダーに表示するグラフィックスのファイル名
# (名前は的下ですが、images に入れるファイルと一致させてください)
#   ファイル形式はjpg gif png 幅400px 高さ200px程度
#   ファイル容量 数十キロバイト推奨
HEAD_PIC=header_picture.jpg

# ヘッダー画像の左右/上下位置と繰り返し表示有無
#   left/center/right  top/bottom  repeat/no-repeat
PIC_POSx=right
PIC_POSy=top
REPEAT=no-repeat

# バックグラウンドカラーの変更が出来ます。
#   例 グリーン: #55AA55  名称標記も可能: white
#   指定しない又は行そのものがない場合、規定値となります。--> シックなオレンジ

BGCOLOR=

設定値のイコール(=)前後はスペースを入れないでください。

Back
HOME