ZyLOはWindowsで動作するコンテスト用ロギングソフトzLog令和版のプラグインを開発するためのフレームワークです。
ボタン | 動作 |
---|---|
Install | 拡張機能を有効化する。押すと同時に起動する。 |
Disable | 拡張機能を無効化する。再起動後に反映される。 |
Upgrade | 拡張機能を最新にする。再起動後に反映される。 |
zlog.ini
に拡張機能のパスをカンマ区切りで記載し、zLogを起動します。[zylo]
DLLs=hstest.dll,yltest.dll,rttest.dll
OS | package manager |
---|---|
Windows | choco |
macOS | brew |
Ubuntu | apt |
OS | zbuild |
---|---|
Windows | zbuild-windows.exe |
macOS | zbuild-macos |
Ubuntu | zbuild-linux |
> zbuild-windows.exe setup
package main
import "zylo/reiwa"
func init() {
// when plugin loaded
reiwa.OnLaunchEvent = onLaunchEvent
reiwa.OnFinishEvent = onFinishEvent
reiwa.OnAttachEvent = onAttachEvent
reiwa.OnAssignEvent = onAssignEvent
reiwa.OnDetachEvent = onDetachEvent
reiwa.OnInsertEvent = onInsertEvent
reiwa.OnDeleteEvent = onDeleteEvent
reiwa.OnVerifyEvent = onVerifyEvent
reiwa.OnPointsEvent = onPointsEvent
}
func onLaunchEvent() {
// when zLog launched
}
func onFinishEvent() {
// when zLog finished
}
func onAttachEvent(contest, configs string) {
// when contest attached
}
func onAssignEvent(contest, configs string) {
// if CFG calls this DLL
}
func onDetachEvent(contest, configs string) {
// when contest detached
}
func onInsertEvent(qso *reiwa.QSO) {
// when insert this QSO
}
func onDeleteEvent(qso *reiwa.QSO) {
// when delete this QSO
}
func onVerifyEvent(qso *reiwa.QSO) {
// score and multiplier
}
func onPointsEvent(score, mults int) int {
// when calculate score
return score * mults
}
compile
コマンドを実行すると、フォルダと同じ名前で、拡張機能のDLLが完成します。> zbuild-windows.exe compile --help
USAGE:
zbuild compile [VER]
ARGS:
<VER> [default: 2.8]
> zbuild-windows.exe compile
> zbuild-windows.exe compile 2.8.3.0
exit # required statement
dll rttest.dll # basename
関数 | 機能 |
---|---|
OnAssignEvent | 得点計算の委譲時に通知される。 |
OnVerifyEvent | 交信の得点と有効性を確定する。 |
OnPointsEvent | 交信記録の総合得点を計算する。 |
GetUI
関数で、zLogのGUI部品のウィンドウハンドルを取得できます。handle := reiwa.GetUI("MainForm.FileNewItem")
package main
import "zylo/reiwa"
func init() {
reiwa.OnLaunchEvent = onLaunchEvent
}
func onLaunchEvent() {
reiwa.HandleButton("MainForm.CWPlayButton", onButton)
reiwa.HandleEditor("MainForm.CallsignEdit", onEditor)
}
func onButton(num int) {
reiwa.DisplayToast("CWPlayButton was clicked")
}
func onEditor(key int) {
reiwa.DisplayToast(reiwa.Query("QSO with $B"))
}
package main
import (
"fmt"
"unsafe"
"github.com/gonutz/w32"
"zylo/reiwa"
)
func init() {
reiwa.OnLaunchEvent = onLaunchEvent
reiwa.OnWindowEvent = onWindowEvent
}
func onLaunchEvent() {
h := w32.HMENU(reiwa.GetUI("MainForm.MainMenu"))
w32.AppendMenu(h, w32.MF_STRING, 810, "My Menu")
w32.DrawMenuBar(w32.HWND(reiwa.GetUI("MainForm")))
}
func onWindowEvent(msg uintptr) {
m := (*w32.MSG)(unsafe.Pointer(msg))
fmt.Printf("Window Message %v\n", m)
}
RunDelphi
関数は、zLogのGUI部品のプロパティやメソッドをDelphiの式で参照もしくは実行できます。package main
import "zylo/reiwa"
func init() {
reiwa.OnLaunchEvent = onLaunchEvent
}
func onLaunchEvent() {
reiwa.RunDelphi(`PluginMenu.Add(op.Put(MainMenu.CreateMenuItem(), "Name", "MyMenu"))`)
reiwa.RunDelphi(`op.Put(MainMenu.FindComponent("MyMenu"), "Caption", "Special Menu")`)
}
演算子 | 意味 | 返り値の型 |
---|---|---|
+ | 加算 | Extended |
- | 減算 | Extended |
* | 乗算 | Extended |
/ | 除算 | Extended |
= | 等値 | Boolean |
<> | 不等 | Boolean |
< | 未満 | Boolean |
> | 超過 | Boolean |
<= | 以下 | Boolean |
>= | 以上 | Boolean |
and | 論理積 | Boolean |
or | 論理和 | Boolean |
not | 否定 | Boolean |
関数 | 意味 |
---|---|
Int | 実数を整数に変換 |
Put | プロパティを設定 |
op.Int(real_value) // returns int value
op.Put(object, property_name, property_value) // returns the object
fmt.Println(reiwa.Query("$B,$X,$R,$F,$Z,$I,$Q,$V,$O,$S,$P,$A,$N,$L,$C,$E,$M"))
変数 | 内容 |
---|---|
{V} | バージョン番号 |
{F} | 編集ファイル名 |
{C} | 自局の呼出符号 |
{B} | 運用中のバンド |
{M} | 運用中のモード |
# dll.DLL名
[dll.sample]
url = "https://example.com/releases/sample.dll"
sum = "https://example.com/releases/sample.dll.md5"
[cfg.sample]
url = "https://example.com/releases/sample.cfg"
[dat.sample]
url = "https://example.com/releases/sample.dat"
[pkg.sample]
tag = "title"
msg = "description"
web = "https://example.com/sample/index.html"
doc = "https://example.com/sample/details.md"
use = ["cfg.sample", "dat.sample", "dll.sample"] # dependency
exp = "unstable" # or "stable"
name: 'build'
on:
push:
branches:
- 'main'
jobs:
BuildDLL:
runs-on: ubuntu-latest
steps:
- uses: nextzlog/zylo@master
with:
token: ${{secrets.GITHUB_TOKEN}}
directory: /path/to/golang/files
GetUI
関数やRunDelphi
関数で参照できます。object MainForm: TMainForm
object TLabel
object StatusLine: TStatusBar
object MainPanel: TPanel
object EditPanel1R: TPanel
object RcvdRSTEdit1: TEdit
object BandEdit1: TEdit
object ModeEdit1: TEdit
object PointEdit1: TEdit
object OpEdit1: TEdit
object SerialEdit1: TEdit
object PowerEdit1: TEdit
object CallsignEdit1: TOvrEdit
object NumberEdit1: TOvrEdit
object MemoEdit1: TOvrEdit
object TimeEdit1: TOvrEdit
object DateEdit1: TOvrEdit
object EditPanel2R: TPanel
object RigPanelC: TPanel
object RigPanelShape2C: TShape
object ledTx2C: TJvLED
object labelRig3Title: TLabel
object CallsignEdit2C: TOvrEdit
object NumberEdit2C: TOvrEdit
object RcvdRSTEdit2C: TEdit
object BandEdit2C: TEdit
object ModeEdit2C: TEdit
object SerialEdit2C: TEdit
object checkUseRig3: TCheckBox
object checkWithRig1: TCheckBox
object checkWithRig2: TCheckBox
object EditUpperLeftPanel: TPanel
object DateEdit2: TOvrEdit
object TimeEdit2: TOvrEdit
object EditUpperRightPanel: TGridPanel
object RigPanelA: TPanel
object RigPanelShape2A: TShape
object ledTx2A: TJvLED
object labelRig1Title: TLabel
object CallsignEdit2A: TOvrEdit
object NumberEdit2A: TOvrEdit
object RcvdRSTEdit2A: TEdit
object BandEdit2A: TEdit
object ModeEdit2A: TEdit
object SerialEdit2A: TEdit
object RigPanelB: TPanel
object RigPanelShape2B: TShape
object ledTx2B: TJvLED
object labelRig2Title: TLabel
object CallsignEdit2B: TOvrEdit
object NumberEdit2B: TOvrEdit
object RcvdRSTEdit2B: TEdit
object BandEdit2B: TEdit
object ModeEdit2B: TEdit
object SerialEdit2B: TEdit
object Grid: TStringGrid
object ToolBarPanel: TPanel
object CWToolBar: TPanel
object CWStopButton: TSpeedButton
object CWPauseButton: TSpeedButton
object buttonCwKeyboard: TSpeedButton
object SpeedLabel: TLabel
object CWPlayButton: TSpeedButton
object CWF1: THemisphereButton
object CWF2: THemisphereButton
object CWF3: THemisphereButton
object CWF4: THemisphereButton
object CWF5: THemisphereButton
object CWF6: THemisphereButton
object CWF7: THemisphereButton
object CWF8: THemisphereButton
object CWCQ1: THemisphereButton
object CWCQ2: THemisphereButton
object CWCQ3: THemisphereButton
object CWF9: THemisphereButton
object CWF10: THemisphereButton
object CWF11: THemisphereButton
object CWF12: THemisphereButton
object SideToneButton: TSpeedButton
object SpeedBar: TTrackBar
object SSBToolBar: TPanel
object VoiceStopButton: TSpeedButton
object VoicePauseButton: TSpeedButton
object buttonVoiceOption: TSpeedButton
object VoicePlayButton: TSpeedButton
object VoiceF1: THemisphereButton
object VoiceF3: THemisphereButton
object VoiceF2: THemisphereButton
object VoiceF4: THemisphereButton
object VoiceF5: THemisphereButton
object VoiceF6: THemisphereButton
object VoiceF7: THemisphereButton
object VoiceF8: THemisphereButton
object VoiceCQ1: THemisphereButton
object VoiceCQ2: THemisphereButton
object VoiceCQ3: THemisphereButton
object VoiceF9: THemisphereButton
object VoiceF10: THemisphereButton
object VoiceF11: THemisphereButton
object VoiceF12: THemisphereButton
object MainToolBar: TPanel
object SpeedButton4: TSpeedButton
object SpeedButton5: TSpeedButton
object SpeedButton6: TSpeedButton
object PartialCheckButton: TSpeedButton
object ScoreButton: TSpeedButton
object MultiButton: TSpeedButton
object RateButton: TSpeedButton
object LogButton: TSpeedButton
object OptionsButton: TSpeedButton
object SuperCheckButtpn: TSpeedButton
object PacketClusterButton: TSpeedButton
object ZServerIcon: TImage
object panelCQMode: TPanel
object comboBandPlan: TComboBox
object MainMenu: TMainMenu
object FileMenu: TMenuItem
object FileNewItem: TMenuItem
object FileOpenItem: TMenuItem
object FileSaveItem: TMenuItem
object FileSaveAsItem: TMenuItem
object MergeFile1: TMenuItem
object Backup1: TMenuItem
object Export1: TMenuItem
object mSummaryFile: TMenuItem
object mPXListWPX: TMenuItem
object N1: TMenuItem
object menuCorrectNR: TMenuItem
object N2: TMenuItem
object FilePrintItem: TMenuItem
object CreateELogJARL1: TMenuItem
object CreateELogJARL2: TMenuItem
object CreateDupeCheckSheetZPRINT1: TMenuItem
object mnMMTTY: TMenuItem
object N4: TMenuItem
object FileExitItem: TMenuItem
object Windows1: TMenuItem
object Score1: TMenuItem
object Multipliers1: TMenuItem
object QSOrate1: TMenuItem
object QSORateEx1: TMenuItem
object SuperCheck1: TMenuItem
object N11: TMenuItem
object PartialCheck1: TMenuItem
object CheckCall1: TMenuItem
object mnCheckMulti: TMenuItem
object mnCheckCountry: TMenuItem
object CWKeyboard1: TMenuItem
object CWMessagePad1: TMenuItem
object RigControl1: TMenuItem
object PacketCluster1: TMenuItem
object ZLinkmonitor1: TMenuItem
object ZServer1: TMenuItem
object Console1: TMenuItem
object Scratchsheet1: TMenuItem
object Bandscope1: TMenuItem
object RunningFrequencies1: TMenuItem
object mnTTYConsole: TMenuItem
object menuAnalyze: TMenuItem
object menuShowFunctionKeyPanel: TMenuItem
object menuShowQSYInfo: TMenuItem
object menuShowSO2RNeoCp: TMenuItem
object menuShowInformation: TMenuItem
object ShowMessageManagerSO2R1: TMenuItem
object menuSettings: TMenuItem
object menuOptions: TMenuItem
object menuBandPlanSettings: TMenuItem
object menuQSORateSettings: TMenuItem
object menuTargetEditor: TMenuItem
object menuPluginManager: TMenuItem
object Network1: TMenuItem
object ConnecttoZServer1: TMenuItem
object N6: TMenuItem
object mnDownload: TMenuItem
object mnMerge: TMenuItem
object PluginMenu: TMenuItem
object View1: TMenuItem
object ShowCurrentBandOnly: TMenuItem
object N10: TMenuItem
object Sort1: TMenuItem
object menuSortByCallsign: TMenuItem
object menuSortByTime: TMenuItem
object menuSortByBand: TMenuItem
object menuSortByMode: TMenuItem
object menuSortByPower: TMenuItem
object menuSortByTxNo: TMenuItem
object menuSortByPoint: TMenuItem
object menuSortByOperator: TMenuItem
object menuSortByMemo: TMenuItem
object N9: TMenuItem
object mnHideCWPhToolBar: TMenuItem
object mnHideMenuToolbar: TMenuItem
object N12: TMenuItem
object IncreaseFontSize1: TMenuItem
object DecreaseFontSize1: TMenuItem
object Help1: TMenuItem
object menuAbout: TMenuItem
object menuQuickReference: TMenuItem
object N5: TMenuItem
object menuPortal: TMenuItem
object menuUsersGuide: TMenuItem
object HelpZyLO: TMenuItem
object OpenDialog: TOpenDialog
object SaveDialog: TSaveDialog
object BandMenu: TPopupMenu
object N19MHz: TMenuItem
object N35MHz: TMenuItem
object N7MHz: TMenuItem
object N10MHz1: TMenuItem
object N14MHz: TMenuItem
object N18MHz1: TMenuItem
object N21MHz: TMenuItem
object N24MHz1: TMenuItem
object N28MHz: TMenuItem
object N50MHz: TMenuItem
object N144MHz: TMenuItem
object N430MHz: TMenuItem
object N1200MHz: TMenuItem
object N2400MHz: TMenuItem
object N5600MHz: TMenuItem
object N10GHzup1: TMenuItem
object ModeMenu: TPopupMenu
object CW1: TMenuItem
object SSB1: TMenuItem
object FM1: TMenuItem
object AM1: TMenuItem
object RTTY1: TMenuItem
object Other1: TMenuItem
object GridMenu: TPopupMenu
object EditQSO: TMenuItem
object DeleteQSO1: TMenuItem
object InsertQSO1: TMenuItem
object N7: TMenuItem
object GBand: TMenuItem
object G1R9MHz: TMenuItem
object G3R5MHz: TMenuItem
object G7MHz: TMenuItem
object G10MHz: TMenuItem
object G14MHz: TMenuItem
object G18MHz: TMenuItem
object G21MHz: TMenuItem
object G24MHz: TMenuItem
object G28MHz: TMenuItem
object G50MHz: TMenuItem
object G144MHz: TMenuItem
object G430MHz: TMenuItem
object G1200MHz: TMenuItem
object G2400MHz: TMenuItem
object G5600MHz: TMenuItem
object G10GHz: TMenuItem
object Changemode: TMenuItem
object CW2: TMenuItem
object SSB2: TMenuItem
object FM2: TMenuItem
object AM2: TMenuItem
object RTTY2: TMenuItem
object Other2: TMenuItem
object mChangePower: TMenuItem
object H2: TMenuItem
object M2: TMenuItem
object L2: TMenuItem
object P2: TMenuItem
object GOperator: TMenuItem
object Clear1: TMenuItem
object mnChangeTXNr: TMenuItem
object N13: TMenuItem
object menuEditStatus: TMenuItem
object N8: TMenuItem
object SendSpot1: TMenuItem
object mnGridAddNewPX: TMenuItem
object OpMenu: TPopupMenu
object Timer1: TTimer
object FileExportDialog: TSaveDialog
object CWFMenu: TPopupMenu
object Edit1: TMenuItem
object NewPowerMenu: TPopupMenu
object P1: TMenuItem
object L1: TMenuItem
object M1: TMenuItem
object H1: TMenuItem
object GeneralSaveDialog: TSaveDialog
object ActionList1: TActionList
object actionQuickQSY01: TAction
object actionQuickQSY02: TAction
object actionQuickQSY03: TAction
object actionQuickQSY04: TAction
object actionQuickQSY05: TAction
object actionQuickQSY06: TAction
object actionQuickQSY07: TAction
object actionQuickQSY08: TAction
object actionShowSuperCheck: TAction
object actionShowZlinkMonitor: TAction
object actionPlayMessageA01: TAction
object actionPlayMessageA02: TAction
object actionPlayMessageA03: TAction
object actionPlayMessageA04: TAction
object actionPlayMessageA05: TAction
object actionPlayMessageA06: TAction
object actionPlayMessageA07: TAction
object actionPlayMessageA08: TAction
object actionCheckMulti: TAction
object actionShowCheckPartial: TAction
object actionPlayCQA2: TAction
object actionPlayCQA3: TAction
object actionPlayMessageB01: TAction
object actionPlayMessageB02: TAction
object actionPlayMessageB03: TAction
object actionPlayMessageB04: TAction
object actionPlayMessageB05: TAction
object actionPlayMessageB06: TAction
object actionPlayMessageB07: TAction
object actionPlayMessageB08: TAction
object actionPlayCQB2: TAction
object actionPlayCQB3: TAction
object actionInsertBandScope: TAction
object actionInsertBandScope2: TAction
object actionInsertBandScope3: TAction
object actionIncreaseFontSize: TAction
object actionDecreaseFontSize: TAction
object actionPageUp: TAction
object actionPageDown: TAction
object actionMoveTop: TAction
object actionMoveLeft: TAction
object actionDeleteOneChar: TAction
object actionMoveLast: TAction
object actionMoveRight: TAction
object actionPullQso: TAction
object actionDeleteLeftOneChar: TAction
object actionGetPartialCheck: TAction
object actionDeleteRight: TAction
object actionClearCallAndRpt: TAction
object actionShowCurrentBandOnly: TAction
object actionDecreaseTime: TAction
object actionIncreaseTime: TAction
object actionQTC: TAction
object actionReversePaddle: TAction
object actionCwTune: TAction
object actionPushQso: TAction
object actionFieldClear: TAction
object actionCQRepeat: TAction
object actionBackup: TAction
object actionFocusCallsign: TAction
object actionShowCWKeyboard: TAction
object actionFocusMemo: TAction
object actionFocusNumber: TAction
object actionFocusOp: TAction
object actionShowPacketCluster: TAction
object actionShowConsolePad: TAction
object actionFocusRst: TAction
object actionShowScratchSheet: TAction
object actionShowRigControl: TAction
object actoinClearCallAndNumAftFocus: TAction
object actionShowZServerChat: TAction
object actionToggleRig: TAction
object actionShowBandScope: TAction
object actionShowFreqList: TAction
object actionShowTeletypeConsole: TAction
object actionShowAnalyze: TAction
object actionShowScore: TAction
object actionShowMultipliers: TAction
object actionShowQsoRate: TAction
object actionShowCheckCall: TAction
object actionShowCheckMulti: TAction
object actionShowCheckCountry: TAction
object actionQsoStart: TAction
object actionQsoComplete: TAction
object actionNop: TAction
object actionRegNewPrefix: TAction
object actionControlPTT: TAction
object actionShowSuperCheck2: TAction
object actionGetSuperCheck2: TAction
object actionChangeBand: TAction
object actionChangeMode: TAction
object actionChangePower: TAction
object actionChangeCwBank: TAction
object actionChangeR: TAction
object actionChangeS: TAction
object actionSetCurTime: TAction
object actionDecreaseCwSpeed: TAction
object actionIncreaseCwSpeed: TAction
object actionCQRepeat2: TAction
object actionToggleVFO: TAction
object actionEditLastQSO: TAction
object actionQuickMemo1: TAction
object actionQuickMemo2: TAction
object actionCwMessagePad: TAction
object actionCorrectSentNr: TAction
object actionSetLastFreq: TAction
object actionQuickMemo3: TAction
object actionQuickMemo4: TAction
object actionQuickMemo5: TAction
object actionPlayMessageA09: TAction
object actionPlayMessageA10: TAction
object actionPlayMessageB09: TAction
object actionPlayMessageB10: TAction
object actionCQAbort: TAction
object actionPlayMessageA11: TAction
object actionPlayMessageA12: TAction
object actionPlayCQA1: TAction
object actionPlayMessageB11: TAction
object actionPlayMessageB12: TAction
object actionPlayCQB1: TAction
object actionToggleCqSp: TAction
object actionCQRepeatIntervalUp: TAction
object actionCQRepeatIntervalDown: TAction
object actionSetCQMessage1: TAction
object actionSetCQMessage2: TAction
object actionSetCQMessage3: TAction
object actionToggleRit: TAction
object actionToggleXit: TAction
object actionRitClear: TAction
object actionToggleAntiZeroin: TAction
object actionAntiZeroin: TAction
object actionFunctionKeyPanel: TAction
object actionShowQsoRateEx: TAction
object actionShowQsyInfo: TAction
object actionShowSo2rNeoCp: TAction
object actionSo2rNeoSelRx1: TAction
object actionSo2rNeoSelRx2: TAction
object actionSo2rNeoSelRxBoth: TAction
object actionSelectRig1: TAction
object actionSelectRig2: TAction
object actionSelectRig3: TAction
object actionSo2rNeoCanRxSel: TAction
object actionShowInformation: TAction
object actionToggleSo2r2bsiq: TAction
object actionSo2rNeoToggleAutoRxSelect: TAction
object actionToggleTx: TAction
object actionToggleSo2rWait: TAction
object actionToggleRx: TAction
object actionMatchRxToTx: TAction
object actionMatchTxToRx: TAction
object actionSo2rToggleRigPair: TAction
object actionChangeTxNr0: TAction
object actionChangeTxNr1: TAction
object actionChangeTxNr2: TAction
object actionPseQsl: TAction
object actionNoQsl: TAction
object actionShowMsgMgr: TAction
object actionChangeBand2: TAction
object actionChangeMode2: TAction
object actionChangePower2: TAction
object SPCMenu: TPopupMenu
object VoiceFMenu: TPopupMenu
object menuVoiceEdit: TMenuItem
object timerCqRepeat: TTimer
object FileImportDialog: TOpenDialog
const MIN_RELIABLE_DOT = 2
func CodeToText(code string) (result string)
モールス信号の文字列を欧文に変換します。
func TextToCode(text string) (result string)
欧文をモールス信号の文字列に変換します。
type Decoder struct {
Iter int
Bias int
Gain float64
Thre float64
STFT *stft.STFT
}
モールス信号の解析器です。
func (d *Decoder) Read(signal []float64) (result []Message)
音声からモールス信号の文字列を抽出します。 複数の周波数のモールス信号を分離できます。
type Encoder struct {
Freq float64
WPMs float64
Rate float64
}
モールス信号の生成器です。
func (e *Encoder) Tone(code string) []float64
モールス信号の文字列を音声に変換します。
type Message struct {
Data []float64
Code string
Freq int
Life int
Miss int
}
モールス信号の文字列です。
type Monitor struct {
MaxHold int
MaxMiss int
Decoder Decoder
}
モールス信号の逐次的な解析器です。
func DefaultMonitor(SamplingRateInHz int) (monitor Monitor)
規定の設定が適用された解析器を構築します。
func (m *Monitor) Read(signal []float64) (result []Message)
音声からモールス信号の文字列を抽出します。
const (
CW = iota
SSB
FM
AM
RTTY
OTHER
)
QSO構造体の通信方式の列挙子です。
const (
K1900 = iota
K3500
M7
M10
M14
M18
M21
M24
M28
M50
M144
M430
M1200
M2400
M5600
G10UP
)
QSO構造体の周波数帯の列挙子です。
const ResponseCapacity = 256
問合わせの返り値の長さの限度です。
const SettingsFileName = "zlog.ini"
設定を保管するファイルの名前です。
var CityMultiList string
DATファイルを内蔵するための変数です。
var FileExtFilter string
I/O拡張機能が利用する専用の変数です。
var MinVersion = "2.8.3.0"
この拡張機能が動くバージョンです。
var OnAcceptEvent = func(qso *QSO) {
qso.SetMul1(qso.GetRcvd())
}
有効と判定した交信に得点やマルチプライヤを設定します。
var OnAssignEvent = func(contest, configs string) {}
得点計算の権限が移譲された場合に呼び出されます。
var OnAttachEvent = func(contest, configs string) {}
コンテストを開いた直後に呼び出されます。
var OnDeleteEvent = func(qso *QSO) {}
交信記録が削除された際に呼び出されます。 修正時はまず削除、次に追加が行われます。
var OnDetachEvent = func(contest, configs string) {}
コンテストを閉じた直後に呼び出されます。
var OnExportEvent = func(source, format string) error {
return nil
}
ZLOファイルを他の書式に変換する要求を処理します。
var OnFinishEvent = func() {}
拡張機能の終了時に呼び出されます。
var OnImportEvent = func(source, target string) error {
return nil
}
交信記録をZLOファイルに変換する要求を処理します。
var OnInsertEvent = func(qso *QSO) {}
交信記録が追加された際に呼び出されます。 修正時はまず削除、次に追加が行われます。
var OnLaunchEvent = func() {}
拡張機能の起動時に呼び出されます。
var OnPointsEvent = func(score, mul1s int) int {
return score * mul1s
}
総合得点を計算します。 引数は交信の合計得点と主マルチプライヤの異なり数です。
var OnVerifyEvent = func(qso *QSO) {
ok := true
ok = ok && qso.VerifyDupe()
ok = ok && qso.VerifyBand()
ok = ok && qso.VerifyMode()
ok = ok && qso.VerifyRcvd()
ok = ok && qso.VerifySent()
if ok {
OnAcceptEvent(qso)
} else {
qso.Invalid()
}
}
交信の得点やマルチプライヤを検査する時に呼び出されます。 編集中の交信記録に対し、必要なら何度でも呼び出されます。 無効な交信の場合は、マルチプライヤを空の文字列にします。
var OnWindowEvent = func(msg uintptr) {}
ウィンドウメッセージを受信します。
var PluginName = ""
この拡張機能を識別できる名前です。
func AllowBand(bands ...byte)
指定された周波数帯を許容します。
func AllowBandRange(lo, hi byte)
指定された周波数帯を許容します。
func AllowCall(pattern string)
交信相手の呼出符号の正規表現を設定します。
func AllowDupe()
重複交信を許容します。
func AllowMode(modes ...byte)
指定された通信方式を許容します。
func AllowModeRange(lo, hi byte)
指定された通信方式を許容します。
func AllowRcvd(pattern string)
コンテストナンバーの正規表現を設定します。
func AllowSent(pattern string)
コンテストナンバーの正規表現を設定します。
func DisplayModal(msg string, args ...interface{})
指定された文字列をダイアログで表示します。
func DisplayPanic()
パニックを捕捉してダイアログで表示します。 例:
defer DisplayPanic()
func DisplayToast(msg string, args ...interface{})
指定された文字列を通知バナーに表示します。
func DumpZLO(qso ...QSO) (bin []byte)
QSO列をヘッダ情報付きのバイト列に変換します。
func GetINI(section, key string) string
指定された設定を取得します。
func GetUI(expression string) uintptr
指定されたウィンドウハンドルを取得します。 例:
GetUI("MainForm.FileOpenItem")
GetUI("MenuForm.CancelButton")
func HandleButton(name string, handler func(int))
指定された名前のボタンにイベントハンドラを登録します。 起動時のみ登録できます。それ以後の登録は無視されます。
func HandleEditor(name string, handler func(int))
指定された名前の記入欄にイベントハンドラを登録します。 起動時のみ登録できます。それ以後の登録は無視されます。
func Query(text string) string
指定されたクエリを問い合わせます。
func RunDelphi(exp string, args ...interface{}) int
指定されたスクリプトを実行します。 zLog 2.8.3.0以降に限定の機能です。
func SetINI(section, key, value string)
指定された設定を保存します。
type QSO struct {
SRST int16
RRST int16
Mode byte
Band byte
Pow1 byte
Score byte
Dupe bool
TxID byte
Pow2 int32
}
QSO構造体です。
func LoadZLO(bin []byte) (logs []QSO)
ヘッダ情報付きのバイト列をQSO列に変換します。
func (qso *QSO) Delete()
指定された交信記録をzLog側で削除します。
func (qso *QSO) DumpWithoutHead(w io.Writer)
QSO構造体をヘッダ情報なしで書き込みます。
func (qso *QSO) GetCall() string
交信相手の呼出符号を返します。
func (qso *QSO) GetCallSign() string
呼出符号のポータブル表記を除く部分を返します。
func (qso *QSO) GetID() int32
交信を識別する番号を返します。
func (qso *QSO) GetMul1() string
主マルチプライヤを返します。
func (qso *QSO) GetMul2() string
マルチプライヤを返します。
func (qso *QSO) GetName() string
運用者名を返します。
func (qso *QSO) GetNote() string
備考を返します。
func (qso *QSO) GetRcvd() string
受信したコンテストナンバーを返します。
func (qso *QSO) GetRcvdGroups() []string
コンテストナンバーを正規表現でグループ化します。
func (qso *QSO) GetSent() string
送信したコンテストナンバーを返します。
func (qso *QSO) GetSentGroups() []string
コンテストナンバーを正規表現でグループ化します。
func (qso *QSO) GetTime() time.Time
交信が行われた時刻を返します。
func (qso *QSO) Insert()
指定された交信記録をzLog側に追加します。
func (qso *QSO) Invalid()
QSOを無効な交信とします。
func (qso *QSO) LoadWithoutHead(r io.Reader)
QSO構造体をヘッダ情報なしで読み取ります。
func (qso *QSO) SetCall(value string)
副マルチプライヤを返します。
func (qso *QSO) SetMul1(value string)
主マルチプライヤを設定します。
func (qso *QSO) SetMul2(value string)
副マルチプライヤを設定します。
func (qso *QSO) SetName(value string)
運用者名を設定します。
func (qso *QSO) SetNote(value string)
備考を設定します。
func (qso *QSO) SetRcvd(value string)
受信したコンテストナンバーを設定します。
func (qso *QSO) SetSent(value string)
送信したコンテストナンバーを設定します。
func (qso *QSO) Update()
指定されたzLog側の交信記録を更新します。
func (qso *QSO) VerifyBand() bool
周波数帯を検査します。 有効な交信の場合は真を返します。
func (qso *QSO) VerifyCall() bool
交信相手の呼出符号を検査します。 有効な交信の場合は真を返します。
func (qso *QSO) VerifyDupe() bool
重複交信を検査します。 有効な交信の場合は真を返します。
func (qso *QSO) VerifyMode() bool
通信方式を検査します。 有効な交信の場合は真を返します。
func (qso *QSO) VerifyRcvd() bool
コンテストナンバーを検査します。 有効な交信の場合は真を返します。
func (qso *QSO) VerifySent() bool
コンテストナンバーを検査します。 有効な交信の場合は真を返します。
var DefaultWindowH = 640
フォームのデフォルトの縦幅です。
var DefaultWindowW = 640
フォームのデフォルトの横幅です。
func NewForm(parent winc.Controller) *winc.Form
この拡張機能の専用のクラス名を持つフォームを構築します。
func NewPanel(parent winc.Controller) *winc.Panel
この拡張機能の専用のクラス名を持つパネルを構築します。