nextzlog / todo

ToDo lists for ATS-4, CW4ISR, QxSL, ZyLO.
https://nextzlog.dev
1 stars 0 forks source link

zLogプラグインを妄想するスレ #43

Open JG1VPP opened 2 years ago

JG1VPP commented 2 years ago

真面目な話、zLogプラグインは、クラウド連携や自作ハードウェアとの連携が中心になる。 で、これらの分野でキラーアプリが不足している。というわけで、アイディア出しをしよう。

JG1VPP commented 2 years ago

CFG/DATデータ自動生成GUIプラグイン

JG1VPP commented 2 years ago

CWデコーダプラグイン

JG1VPP commented 2 years ago

HAMLOG連携プラグイン

jucky154 commented 2 years ago

CWデコーダプラグインに欲しい機能

https://ja3clm.sakura.ne.jp  がありますね。(これはハムログやlogger32と連携できるみたいです) これと連携するというのも手かもしれません しかし、それだと面白くないですし、自分も使っていますが一部難点はあって、モールスの速度や閾値を自動調節してくれるものの自動調節中(前)のものは訂正しないので、EOET1ZLOみたいな感じになってしまい、使いにくいです

よって、ある程度の時間のデータを保持しておき、受信したコールサインやナンバーの候補を提示してくれて、その中から選ぶみたいな感じだと便利かもしれません

jucky154 commented 2 years ago

自作CQマシンとの連携プラグイン

JG1VPP commented 2 years ago

zsync (zync)

参考: go-git

JG1VPP commented 2 years ago

スポラディックE層通知プラグイン

参考: 宇宙天気予報

jucky154 commented 2 years ago

次世代ZPRINT

JG1VPP commented 2 years ago

portal

ZLISTを置換

jucky154 commented 2 years ago

スポラディックE層通知プラグインについて

https://wdc.nict.go.jp/ISDJ/ionospheric-signal-i.html からデータは取れそうな気がします。しかし、空白区切りだったり、Esが強くて10.0などになった場合は Qui.10.0のように連続してしまいます。このような、データをスクレイビングするにはどうすれば良いのでしょうか?

https://wdc.nict.go.jp/IONO/fxEs/latest-fxEs.html  というもっと良さげなサイトがあるらしいです… (これが某botの引用元) tableタグを指定すればよいので https://zenn.dev/kinariru/articles/51b2df87d2962e を参考にすれば何とかなりそう?

JG1VPP commented 2 years ago

正規表現で取り出せば良いのではないでしょうか?

jucky154 commented 2 years ago

https://wdc.nict.go.jp/ISDJ/ionospheric-signal-i.html は?だったり何かのデータだったりして正規表現だと面倒だなと思った次第です。

https://wdc.nict.go.jp/IONO/fxEs/latest-fxEs.html  なら直接行けるので楽そうですし、Esプラグインはすぐできそうです

JG1VPP commented 2 years ago

ウェブインターフェースでプラグインを作るの、非常に良い試みだと思うんですよね。DelphiやWin32APIを叩いて素敵なUIを作るより、JSでイケてるUIを作る方が楽ですし、ウェブとシームレスに繋がるので、応用が広がります。UIの更新はWebSocket経由で通知を受け取り、Ajaxで再描画すればリアルタイムにできます。

上で挙げたようなプラグインのいくつかは、ウェブインターフェースに統合しても良さそうです。

JG1VPP commented 2 years ago

...ていうか、リアルタイムコンテストのプラグイン、ウェブアプリベースの方が良いんじゃないか...!?

jucky154 commented 2 years ago

開発当初はzLogの使用環境から重い機能にならないようにということでwin32APIで開発していましたけど、どちらの方がいいんですかね?

(そういえば、slackにも流しましたが、リアルタイムコンテストの方は再起動させると真っ白になる問題が再発したので停止させています)

JG1VPP commented 2 years ago

zLogとは独立したブラウザが起動するので、PC全体の負荷はともかく、zLogが重くなることはない筈です

jucky154 commented 2 years ago

Eスポ通知プラグインを作成しました https://github.com/jucky154/infoEs (仕様としてはウィンドウ表示時と15分に一回(NICTが15分に一回なので)NICTのHPをクロールしてデータを表示する感じです)

動作の方はある程度デバッグしたつもりですけど、不安なのでstableにはしていません。 点検の方していただけると幸いです。 https://github.com/jucky154/manage_zylo/blob/main/market.toml

使用時の画像は以下のとおりです。 rule-infoEs list-infoEs

jucky154 commented 2 years ago

https://github.com/jr8ppg/zLog/issues/264

いつだったかVPPさんがプラグインでメニューを日本語化できるというような話をしていた気がす… メニューを日本語化するプラグインは需要があるらしいので一考すべきかもしれない

JG1VPP commented 2 years ago

昔から日本語化はプラグインで対応するものと相場が決まってますね。そして、Win32APIを呼び出せる今、日本語化は簡単に実現できます。最初はメニューバーの日本語化から始めましょう。でも、日本語をハードコーディングするのは具合が悪いので、YAMLファイルを用意して、それを読み取る形になるでしょうね。

jucky154 commented 2 years ago

日本語かプラグインのために試験的にハードコーディングで実装してみたのですが、zLogすら起動しませんでした… window1のIDが24だったかまでは取得できるのはわかったのですが、それでiteminfoを取得、編集、代入をしようとするとダメです…

package main

import (
    "github.com/gonutz/w32"
    "errors"
    "unsafe"
)

func init() {
    OnLaunchEvent = onLaunchEvent
}

func onLaunchEvent() {
    //型宣言
    var iteminfo *w32.MENUITEMINFO

    //情報取得
    hMenu := w32.HMENU(GetUI("MainForm.Windows1"))
    id := w32.GetMenuItemID(hMenu, 0)
    ok := w32.GetMenuItemInfo(hMenu, uint(id), false, iteminfo)
    if !ok {
        err := errors.New("getmenuiteminfo error")
        DisplayToast(err.Error())
    }

    //代入
    title := "機能"
    iteminfo.TypeData = uintptr(unsafe.Pointer(&title))

    ok = w32.SetMenuItemInfo(hMenu, uint(id), false, iteminfo)
    if !ok {
        err := errors.New("getmenuiteminfo error")
        DisplayToast(err.Error())
    }

    //表示
    w32.DrawMenuBar(w32.HWND(GetUI("MainForm")))

}
jucky154 commented 2 years ago

この中で優先度が高そうなのは、CWデコーダですかね? https://ja3clm.sakura.ne.jp をみると、CWデコーダーのアプリのDSCWはCTESTWINやHAMLOGと連携しているようなので… 上のアプリを何らかの手法で対応させるか、これより良い(精度などにおいて)デコーダーを作る必要がありそうですね…

どう手をつけたものか…

JG1VPP commented 2 years ago

鬼のプラグイン

JG1VPP commented 2 years ago

zLog自動アップデートプラグイン

JG1VPP commented 2 years ago

コンテスト競合通知プラグイン

JG1VPP commented 2 years ago

地図描画プラグイン

市郡区コードに対応する市区町村が地図に表示される。

window2

既に公開済みだが、日本語表示の場合は https://github.com/jr8ppg/zLog/pull/350 のマージが必要。zLog 2.8.3.0以上に対応。利用にはインターネット接続が必要。

JG1VPP commented 2 years ago

USBIF4CWプラグイン

jucky154 commented 2 years ago

usbif4cw.dllに関しては https://github.com/jr8ppg/zLog/issues/46 において、64bit版が出たら対応とあり http://nksg.net/usbif4cw/lab/devlib/ で今年の4月に64bit版が出たので、JR8PPGさんとの連携も必要そうですね

JG1VPP commented 2 years ago

Slack連携プラグイン

JG1VPP commented 2 years ago

OCRで紙ログを電子化するプラグイン

jj1cvh commented 2 years ago

初めまして。 v2.8.3.1のリリースノートに紹介されているMAPLOTを拝見し、欲しいプラグインをリクエストします。

JG1VPP commented 2 years ago

こんにちは。これは、都道府県単位での描画を行うプラグインということでしょうか?今のMaplotは市郡区には対応していますが、都道府県には対応していません。都道府県庁所在地をマーカーでプロットすればとりあえず対応できたことになりますかね?

...それはそれとして、今のMaplotは、役場の所在地をマーカーでプロットしていますが、本当は市区町村を塗りつぶしたいんですよね。そのためには、形状のデータが必要で、これが面倒なんでまだ手をつけてないですが...

JG1VPP commented 2 years ago

市区町村を塗りつぶせるならOpenStreetMapから地図データを持ってくる必要ないでは!?

jj1cvh commented 2 years ago

こんにちは。これは、都道府県単位での描画を行うプラグインということでしょうか?

はい、そうです。ALL JA等での「マルチマップ」として、取得済/未取得マルチを視覚的に把握するために活用したいです。 EzLogは都道府県単位ですが、北海道については「北海道の地域」単位がベターです。 ※昔の大学社団局の紙ログ時代は、日本地図の紙を塗りつぶしてました。

マーカーのプロットは、未取得マルチが分からないため、期待しているものとはちょっと異なります。

JG1VPP commented 2 years ago

なるほど。形状のデータが必要そうですね。jpCityPoligonが参考になるかも。ポリゴンを描画データとして持つのは重いので、1件交信するごとにビットマップで塗りつぶしていく実装になりそうですね。 @jucky154 どうですか?

jucky154 commented 2 years ago

少し重いかもしれないですけど、各県を色塗った透過画像を47枚用意して https://shiro-16.hatenablog.com/entry/2020/05/29/130508 のように重ね合わせるとかどうなんでしょうか?

JG1VPP commented 2 years ago

固定解像度の対応でよければ、そのように実装することはできます。市区町村まで用意すると1700強となりますが、まぁ馬鹿正直に1市区町村1画像で持つ必要もないですね。要するに、Maplotプラグインで使う程度の解像度で、どのピクセルがどの都道府県なのかが、高々1700市区町村までのレベルでわかっていればよいわけで、1ピクセルあたり2バイトの情報量で画像を1枚持っておけば良いだけです。実現の可能性は高いですね。

画像の生成はGoでやるのはだるいので、いつものCartopyでやりますか。

JG1VPP commented 2 years ago

このアプローチだと、FDのようにネットが使えない環境でもMaplotを使えるのでユーザ的にも良いでしょう。

7M4KSC commented 2 years ago

気付いたところ: ・プラグインのライフタイムの説明が欲しい(見逃してたらすみません)。このプラグインはメニューに常時出るけど、cfg/datプラグインは終了すると消えるとか。 ・コントロールパネルのCOMの表示へのショートカットか、COMの直接の表示があると便利かも。 ・MMTTYがC++Builderでコンパイル出来たので、共同で動かせないか。 ・E層F層のプロパゲーションの表示。

jucky154 commented 2 years ago

・ライフタイム関係は @JG1VPP さんお願いします ・コントロールパネルのCOMの表示へのショートカット → コマンドで呼び出すことはできるので、execでできるかも?(ただし、先ほど実験したらpermission deniedだったので微妙ですね) COMpoortの一覧を表示できるライブラリを探す必要がありそうです ・MMTTY→これは以前はzLog側でしたけど、プラグインで対応しますか? @JG1VPP @jr8ppg ・E層F層のプロパゲーション →  できると思います。 いい感じのサイトってありますか? http://www.spacew.com/www/realtime.html が既に404なのでどこから入手しようかなという感じです

jr8ppg commented 2 years ago

MMTTYは現状では https://github.com/jr8ppg/zLog/issues/219 に書いてあること位でさほど困ってないと思います。 むしろ、今時はFT8に対応した方がニーズはありそうですが、わたくしFT8やらないので全くわかりません。 CTESTWINはFT8に対応しているみたいですけど。

jucky154 commented 2 years ago

今後必要そうなもの:FT8系との連携 参考 : https://twitter.com/nextzlog/status/1396334778979209217

jucky154 commented 2 years ago

https://github.com/bugst/go-serial コントロールパネルのCOMの表示は出来る ただし、存在するCOMport番号だけで、それが何を意味しているかまではわからなかった… Productがちゃんと実装されていないから…

一応、いろいろ表示できる物を発見 https://github.com/facchinm/go-serial-native

大元のhttps://github.com/mikepb/go-serial はgo get できないし、 https://github.com/facchinm/go-serial-native にしてもgo get すると謎のエラーをそれなりに吐く上に、実行時にも同じ物を出してくるが、大丈夫だろうか? info.Name()info.Description()あたりを表示するようなプラグインを開発すれば目的のものができそう

JG1VPP commented 2 years ago

プラグインのライフタイムの説明が欲しい(見逃してたらすみません)。このプラグインはメニューに常時出るけど、cfg/datプラグインは終了すると消えるとか。

プラグインの利用方法をプラグインの説明文に追加するという事でしょうか?例えば、Eスポ通知プラグインを使うにはインストール後にメニューバーに常駐する、とか、高校コンテストプラグインは高校コンテストに参加している間だけ得点計算を行うとか。

jucky154 commented 2 years ago

@7M4KSC どうでしょうか? 自分はそういう解釈で @JG1VPP さんに話を振りました。

(プラグイン開発者側の話ですが、finish関数で終了する系のものは常時動作し、detach関数で終了する系はコンテスト参加中だけという解釈でいいですかね)

jucky154 commented 2 years ago

@7M4KSC

コントロールパネルのCOMの表示へのショートカットか、COMの直接の表示があると便利かも。

以下の画像のようにできました。 いま家にCOMportに表示されるものがArduinoしかなかったため、Arduinoが表示されています。 リグを使った際に製造企業が表示されるかは不明です。 comportlist

ただいま、手直しやデバック中なので来週あたりに公開できると思います

7M4KSC commented 2 years ago

JG1VPPさん>プラグインの利用方法をプラグインの説明文に追加するという事でしょうか? はい、その通りです。常時使える物と終了すると消える物が説明文(WEBの説明文)で判明すればいいなぁ、という意味です。 JS2FVOさん>以下の画像のようにできました。 凄い、一瞬ですね。むっちゃ便利になります。FT-710だとCOM系が三つあるそうですし。 JR8PPGさん>MMTTYは現状では https://github.com/jr8ppg/zLog/issues/219 に書いてあること位でさほど困ってないと思います。 なるほど、そうだったんですね。 やっぱ、FT8ですかね。(CTESTWINが全然わからないので、見てみるかなぁ)

JG1VPP commented 2 years ago

https://use.zlog.org/plugins で、プラグインの説明にあるDetailsをクリックすることで、詳細な説明が表示されるようにしました。説明はプラグインの管理人に一任されていますが、なるべく詳細な利用方法を(可能であれば図解付きで)掲載することが望ましいです。

JG1VPP commented 2 years ago

Maplotプラグインのバージョンアップが完了

maplot
JG1VPP commented 2 years ago

プリフィックス検索プラグイン

JG1VPP commented 2 years ago

Maplotプラグインの開発により、ZyLOのレポジトリに日本地図のデータが格納されており、これを同じレポジトリにある複数の公式プラグインから使う形で有効活用したいですね。地図を使うプラグインって他に何がありますかね?