Day After Day
tsurezure naru mamani...
ANOTHER SEASON

Digital Smart Technologies for Amateur Radio ®

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

2月
20
2025
Back
HOME


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

主な変更点は別途 D-STAR委員会からテストリリースされている、安田OM作の rpi-monitorが出力する通信の分析結果ログを LastHeard 接続ユーザごとに表示する様にしたことです。なお現在 monitor アプリは Raspbian(Pi OS)のみとなって居り、AlmaLinux (CentOS) ではこの分析表示の機能については使用できません。
( LastHeard は D-STAR委員会登録アプリケーションです。)

=MEMO= LastHeard v.2.1.7 からダッシュボード最下部にCPU温度表示を追加しました。 AlmaLinux の場合、sensors とコマンド入力して動作しなければ、次のようにインストールしてください。

$ sudo dnf install lm_sensors
$ sudo sensors-detect



実際のWEBはこちらから


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

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

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

さらに、新方式ではゲートウェイPC内での各アプリケーションのコミュニケーションに掛かる応答時間を、仕様書通りに厳密にすることによって、 交信中の他ゲートウェイからの割り込み等で会話が途切れる問題にも対応しました。 LastHeard v.2.2.x でも引き続きハンドシェイクのスピードをアップした仕様となっております。

ソフトウェアのダウンロードとインストール


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

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

$ sudo apt install php
(AlmaLinuxはWEBサーバが httpd としてバンドル済み)
    

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

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

② ゲートウェイサーバの OS で git clone します。

$ sudo apt install git
( # dnf 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と同じです。
│   ├── log2database.py	        # rpi-monitorのログを編集し個別データにします。
│   ├── phplot
│   │   └── このフォルダ内はPHPlotをダウンロード、
│   │          解凍したフォルダをこの名前で置く。
│   │
│   └── rpt
│        └── rpi-monitorが生成したファイル(.php .png)やLastHeardが作成したファイル
│   
├── lastheard.service	        # アプリ LastHeard を自動起動するユニットファイル
├── log2database.service	# 今回作成したログデータベース作成アプリの起動用
├── Makefile			# Cソースをコンパイルするときの手順ファイルです。
├── README.md
├── recv.c			# lastheardプログラムのソースです。
└── recv.h			# lastheardプログラムのヘッダーファイルです。

8 directories, 39 files

$ make

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

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


=MEMO= PHPlotの構成については PHPでグラフが描けるPHPlot をご参照ください。

$ sudo mv lastheard /usr/local/bin
$ sudo cp -rf html /var/www
$ sudo rm /var/www/html/index.html

PHPをインストールしたとき確認したデフォルトページを削除します。index.htmlを削除すると、自動的に index.php が表示されるようになります。

ソフトウェアの各種設定

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

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

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

先ず Rpi-GW の設定ファイルに Last Heard の JARL D-STAR 委員会へ登録したポートを設定します。
プログラム名は LastHeard ですが登録するファイル名は lastheard(すべて小文字)なので注意してください。

$ 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

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

# 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=

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


WEBの扱い方


● 接続ユーザとラストハードについては、すべて自動で指定した秒数で更新されます。

● rpi-monitorの個別ログを見たいときは、ラストハードのコールサインをクリックしてください。
  さらにログが表示されましたら、[ 受信パケット状態のグラフ表示 ] と言うリンクが有ればグラフが表示されます。

Back
HOME