2025年2月20日木曜日

Last Heard v.2.1.x RpiGW管理用WEBアプリケーション(rpi-monitor対応)

Back



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

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




実際のWEBはこちらから


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

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

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

さらに、最近ではゲートウェイPC内での各アプリケーションのコミュニケーションに掛かる応答時間を、仕様書通りに厳密にすることによって、交信中の他ゲートウェイからの割り込み等で会話が途切れる問題にも対応されました。LastHeard v.2.1.x でも引き続きハンドシェイクのスピードをアップした仕様となっております。
ソフトウェアのダウンロードとインストール
ソフトウェアはあくまで、自分自身の勉強の為にC言語、PHP、Pythonを使って書いてあります。著作権は保持していますが、CC-BY-NC-SA(クリエイティブ・コモンズ・ライセンス)に従って、自己責任で自由にお使いください。

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

  2. $ sudo apt install php
    (AlmaLinuxには httpd としてバンドル済み)
    

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

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


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

  4. $ 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に同梱されています。


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


  6. =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 が表示されるようになります。



ソフトウェアの各種設定
  1. ラストハードアプリの自動起動を設定します。

  2. $ 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
    

    これで、立ち上がればブラウザーでラストハードが見られるはずです。カーチャンクしてみてください。


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

  4. 先ずRpi-GWの設定ファイルにLastHeardの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の扱い方
  1. 接続ユーザとラストハードについては、すべて自動で指定した秒数で更新されます。

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


Back


73
Yosh Todo/J E 3 H C Z

ご意見等は当ブログトップメニューページの「FORUM」リンクからお願いします。

0 件のコメント:

コメントを投稿