mirror of
https://github.com/ok2cqr/cqrlog.git
synced 2024-09-21 10:27:17 +00:00
Merge pull request #444 from OH1KH/squash_hamlib_vfo
Fix for hamlib interface
This commit is contained in:
commit
00b4dd3dcf
14
help/h1.html
14
help/h1.html
@ -223,7 +223,7 @@ After you have the DX Cluster window open and connected you may also open the Ba
|
||||
descriptive text, you can write whatever you want.<br><br>
|
||||
<strong>Host:</strong> computer where rigctld is running, localhost is fine for most cases. <br><br>
|
||||
<strong>RIG model:</strong> choose your radio model from the list.
|
||||
Rig models below 10 (Dummy, NET rigctld, FLRig, TRXManager) are using TCP communication and so the <strong>Device</strong> as well
|
||||
<br> Rig models below 10 (Dummy, NET rigctld, FLRig, TRXManager) are using TCP communication and so the <strong>Device</strong> as well
|
||||
as <strong>Radio serial parameters</strong> do not need settings.<br><br>
|
||||
<strong>Device:</strong> device which the radio is connected to. /dev/ttyS0 is COM1, /dev/ttyS1
|
||||
is COM2 etc. If you use USB to serial interface, the device will usually be /dev/ttyUSB0
|
||||
@ -232,10 +232,12 @@ After you have the DX Cluster window open and connected you may also open the Ba
|
||||
<strong>Poll rate:</strong> specifies how often CQRLOG should read data from rigctld. 500 milliseconds
|
||||
is fine.<br><br>
|
||||
<strong>Port number</strong> is the number of the port used to communicate with rigctld.
|
||||
Default value is 4532. The second radio, has to have a different port e.g. 4533.<br><br>
|
||||
<strong>Extra command line arguments</strong> usefull when you have to specify more parameters to
|
||||
Default value is 4532. The second radio, has to have a different port e.g. 4533.<br>
|
||||
<br><strong>Extra command line arguments</strong> usefull when you have to specify more parameters to
|
||||
rigctld. E.g. CIV address (--civaddr=ID, where ID is the CIV address).<br><br>
|
||||
<strong>Serial port parameters</strong> from the manual of your rig, please choose the correct options.
|
||||
<strong>Run rigctld when program starts</strong> is usually checked but when rig model #2 <strong>Hamlib Net Rigctld</strong> is used then it is unchecked and disabled because with that rig setting we are trying to connect external rigctld. Either in same PC or in network.
|
||||
<br><br><strong>Use \chkvfo</strong> is normally checked. Then cqrlog tries to find out is rigctld started with parameter "--vfo" because that changes rigctld command format. Uncheck of this disables this function. Use it in case of problems.
|
||||
<br><br><strong>Serial port parameters</strong> Use the manual of your rig, please choose the correct options.
|
||||
Very often it is much better to specify only serial speed and leave other options as default.
|
||||
Default value means that the settings from HamLib will be used.<br>
|
||||
<br>
|
||||
@ -247,12 +249,12 @@ After you have the DX Cluster window open and connected you may also open the Ba
|
||||
command or several in a queue, rigctld commands may be used or if definition starts with word "<strong>run</strong>" (without quotes) it can be a program or
|
||||
script name with full file path for your computer.
|
||||
<br><ul> <li>
|
||||
<strong>Note:</strong> Rigctld supports raw command <strong>W</strong>. Parameter for it is the rig cat command in bytes. Prefix<strong> \0x</strong> must be added for Hex values. Usr1 command in picture activates Icom IC7300 first voice memory play.
|
||||
<strong>Note:</strong> Rigctld supports raw command <strong>W</strong>. Parameter for it is the rig cat command in bytes. Prefix<strong> \0x</strong> must be added for Hex values. Usr1 command in picture Sets IC7300 to 60m CW with 500Hz filter and reduces output power to leagal limit with raw command.
|
||||
</li> <li>
|
||||
<strong>Note:</strong> To run program or script it's name with full path must be entered. If file is command script then first line of it must tell what it is written for. If it is bash command script it's first line must be
|
||||
<strong>#!/bin/bash </strong> if not, button definition must have <strong>run /bin/bash /tmp/my_test.sh</strong> to tell that bash is used to call the script.
|
||||
</li> <li>
|
||||
<strong>Note:</strong> Several rigctld commands can be written in same button definition. Usr3 command in picture moves rig to 7.1MHz and then sets LSB mode with 2400Hz bandwidth.
|
||||
<strong>Note:</strong> Several rigctld commands can be written in same button definition. Usr3 command in picture moves rig to 70MHz and then sets CW mode with 500Hz bandwidth filter.
|
||||
</li><br> <li>
|
||||
<strong>Note: There is NO feedback from commands to cqrlog !</strong>
|
||||
</li></ul>
|
||||
|
BIN
help/img/h10.png
BIN
help/img/h10.png
Binary file not shown.
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 118 KiB |
@ -17,7 +17,7 @@ object frmPreferences: TfrmPreferences
|
||||
OnCreate = FormCreate
|
||||
OnShow = FormShow
|
||||
Position = poMainFormCenter
|
||||
LCLVersion = '2.0.10.0'
|
||||
LCLVersion = '2.0.12.0'
|
||||
object pgPreferences: TPageControl
|
||||
Left = 160
|
||||
Height = 703
|
||||
@ -1865,6 +1865,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 27
|
||||
Width = 503
|
||||
BorderSpacing.Top = 6
|
||||
OnChange = TRXParamsChange
|
||||
TabOrder = 0
|
||||
end
|
||||
end
|
||||
@ -1951,7 +1952,7 @@ object frmPreferences: TfrmPreferences
|
||||
Height = 33
|
||||
Top = 51
|
||||
Width = 173
|
||||
OnChange = edtRadio1NameChange
|
||||
OnChange = TRXParamsChange
|
||||
TabOrder = 0
|
||||
end
|
||||
object edtPoll1: TEdit
|
||||
@ -1962,7 +1963,7 @@ object frmPreferences: TfrmPreferences
|
||||
Height = 33
|
||||
Top = 51
|
||||
Width = 80
|
||||
OnChange = edtRadio1NameChange
|
||||
OnChange = TRXParamsChange
|
||||
OnExit = edtPoll1Exit
|
||||
TabOrder = 1
|
||||
end
|
||||
@ -1976,7 +1977,7 @@ object frmPreferences: TfrmPreferences
|
||||
Width = 185
|
||||
BorderSpacing.Left = 12
|
||||
Caption = 'Use CWR instead of CW '
|
||||
OnChange = edtRadio2Change
|
||||
OnChange = TRXParamsChange
|
||||
TabOrder = 2
|
||||
end
|
||||
object chkR1RunRigCtld: TCheckBox
|
||||
@ -1988,6 +1989,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 110
|
||||
Width = 235
|
||||
Caption = 'Run rigctld when program starts'
|
||||
OnChange = TRXParamsChange
|
||||
TabOrder = 3
|
||||
end
|
||||
object lblExtra: TLabel
|
||||
@ -2010,7 +2012,7 @@ object frmPreferences: TfrmPreferences
|
||||
Height = 33
|
||||
Top = 102
|
||||
Width = 255
|
||||
OnChange = edtR1RigCtldArgsChange
|
||||
OnChange = TRXParamsChange
|
||||
TabOrder = 4
|
||||
end
|
||||
object lblPortR1: TLabel
|
||||
@ -2033,7 +2035,7 @@ object frmPreferences: TfrmPreferences
|
||||
Height = 33
|
||||
Top = 51
|
||||
Width = 80
|
||||
OnChange = edtR1RigCtldPortChange
|
||||
OnChange = TRXParamsChange
|
||||
TabOrder = 5
|
||||
end
|
||||
object grbSerialR1: TGroupBox
|
||||
@ -2120,7 +2122,7 @@ object frmPreferences: TfrmPreferences
|
||||
'XON/XOFF'
|
||||
'HARDWARE'
|
||||
)
|
||||
OnChange = cmbHanshakeR1Change
|
||||
OnChange = TRXParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 0
|
||||
Text = 'default'
|
||||
@ -2144,7 +2146,7 @@ object frmPreferences: TfrmPreferences
|
||||
'Mark'
|
||||
'Space'
|
||||
)
|
||||
OnChange = cmbParityR1Change
|
||||
OnChange = TRXParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 1
|
||||
Text = 'default'
|
||||
@ -2168,7 +2170,7 @@ object frmPreferences: TfrmPreferences
|
||||
'8'
|
||||
'9'
|
||||
)
|
||||
OnChange = cmbDataBitsR1Change
|
||||
OnChange = TRXParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 2
|
||||
Text = 'default'
|
||||
@ -2191,7 +2193,7 @@ object frmPreferences: TfrmPreferences
|
||||
'2'
|
||||
'3'
|
||||
)
|
||||
OnChange = cmbStopBitsR1Change
|
||||
OnChange = TRXParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 3
|
||||
Text = 'default'
|
||||
@ -2219,7 +2221,7 @@ object frmPreferences: TfrmPreferences
|
||||
'57600'
|
||||
'115200'
|
||||
)
|
||||
OnChange = cmbSpeedR1Change
|
||||
OnChange = TRXParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 4
|
||||
Text = 'default'
|
||||
@ -2241,7 +2243,7 @@ object frmPreferences: TfrmPreferences
|
||||
'ON'
|
||||
'OFF'
|
||||
)
|
||||
OnChange = cmbDTRR1Change
|
||||
OnChange = TRXParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 5
|
||||
Text = 'default'
|
||||
@ -2273,7 +2275,7 @@ object frmPreferences: TfrmPreferences
|
||||
'ON'
|
||||
'OFF'
|
||||
)
|
||||
OnChange = cmbRTSR1Change
|
||||
OnChange = TRXParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 6
|
||||
Text = 'default'
|
||||
@ -2298,6 +2300,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 51
|
||||
Width = 200
|
||||
ItemHeight = 0
|
||||
OnChange = cmbModelRig1Change
|
||||
TabOrder = 7
|
||||
end
|
||||
object lblHost: TLabel
|
||||
@ -2320,7 +2323,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 0
|
||||
Width = 94
|
||||
BorderSpacing.Left = 126
|
||||
OnChange = edtRadio1NameChange
|
||||
OnChange = TRXParamsChange
|
||||
TabOrder = 8
|
||||
end
|
||||
object edtR1Host: TEdit
|
||||
@ -2332,6 +2335,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 0
|
||||
Width = 128
|
||||
BorderSpacing.Left = 12
|
||||
OnChange = TRXParamsChange
|
||||
TabOrder = 9
|
||||
end
|
||||
object grpUsrCmds: TGroupBox
|
||||
@ -2466,6 +2470,20 @@ object frmPreferences: TfrmPreferences
|
||||
TabOrder = 5
|
||||
end
|
||||
end
|
||||
object chkR1Vfo: TCheckBox
|
||||
AnchorSideLeft.Control = edtR1RigCtldPort
|
||||
AnchorSideTop.Control = chkR1SendCWR
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 522
|
||||
Height = 23
|
||||
Top = 87
|
||||
Width = 103
|
||||
Caption = 'Use \chkvfo'
|
||||
Checked = True
|
||||
OnChange = TRXParamsChange
|
||||
State = cbChecked
|
||||
TabOrder = 11
|
||||
end
|
||||
end
|
||||
end
|
||||
object tabTRX2: TTabSheet
|
||||
@ -2535,7 +2553,7 @@ object frmPreferences: TfrmPreferences
|
||||
Height = 33
|
||||
Top = 51
|
||||
Width = 173
|
||||
OnChange = edtRadio1NameChange
|
||||
OnChange = TRXParamsChange
|
||||
TabOrder = 0
|
||||
end
|
||||
object edtPoll2: TEdit
|
||||
@ -2545,7 +2563,7 @@ object frmPreferences: TfrmPreferences
|
||||
Height = 33
|
||||
Top = 51
|
||||
Width = 80
|
||||
OnChange = edtRadio1NameChange
|
||||
OnChange = TRXParamsChange
|
||||
OnExit = edtPoll1Exit
|
||||
TabOrder = 1
|
||||
end
|
||||
@ -2559,7 +2577,7 @@ object frmPreferences: TfrmPreferences
|
||||
Width = 185
|
||||
BorderSpacing.Left = 12
|
||||
Caption = 'Use CWR instead of CW '
|
||||
OnChange = edtRadio2Change
|
||||
OnChange = TRXParamsChange
|
||||
TabOrder = 2
|
||||
end
|
||||
object chkR2RunRigCtld: TCheckBox
|
||||
@ -2571,6 +2589,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 110
|
||||
Width = 235
|
||||
Caption = 'Run rigctld when program starts'
|
||||
OnChange = TRXParamsChange
|
||||
TabOrder = 3
|
||||
end
|
||||
object lblExtra2: TLabel
|
||||
@ -2593,7 +2612,7 @@ object frmPreferences: TfrmPreferences
|
||||
Height = 33
|
||||
Top = 102
|
||||
Width = 255
|
||||
OnChange = edtR2RigCtldArgsChange
|
||||
OnChange = TRXParamsChange
|
||||
TabOrder = 4
|
||||
end
|
||||
object lblPortR2: TLabel
|
||||
@ -2615,7 +2634,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 51
|
||||
Width = 80
|
||||
BorderSpacing.Left = 12
|
||||
OnChange = edtR2RigCtldPortChange
|
||||
OnChange = TRXParamsChange
|
||||
TabOrder = 5
|
||||
end
|
||||
object grbSerialR2: TGroupBox
|
||||
@ -2702,7 +2721,7 @@ object frmPreferences: TfrmPreferences
|
||||
'XON/XOFF'
|
||||
'HARDWARE'
|
||||
)
|
||||
OnChange = cmbHanshakeR2Change
|
||||
OnChange = TRXParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 0
|
||||
Text = 'default'
|
||||
@ -2726,7 +2745,7 @@ object frmPreferences: TfrmPreferences
|
||||
'Mark'
|
||||
'Space'
|
||||
)
|
||||
OnChange = cmbParityR2Change
|
||||
OnChange = TRXParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 1
|
||||
Text = 'default'
|
||||
@ -2750,7 +2769,7 @@ object frmPreferences: TfrmPreferences
|
||||
'8'
|
||||
'9'
|
||||
)
|
||||
OnChange = cmbDataBitsR2Change
|
||||
OnChange = TRXParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 2
|
||||
Text = 'default'
|
||||
@ -2773,7 +2792,7 @@ object frmPreferences: TfrmPreferences
|
||||
'2'
|
||||
'3'
|
||||
)
|
||||
OnChange = cmbStopBitsR2Change
|
||||
OnChange = TRXParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 3
|
||||
Text = 'default'
|
||||
@ -2801,7 +2820,7 @@ object frmPreferences: TfrmPreferences
|
||||
'57600'
|
||||
'115200'
|
||||
)
|
||||
OnChange = cmbSpeedR2Change
|
||||
OnChange = TRXParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 4
|
||||
Text = 'default'
|
||||
@ -2823,7 +2842,7 @@ object frmPreferences: TfrmPreferences
|
||||
'ON'
|
||||
'OFF'
|
||||
)
|
||||
OnChange = cmbDTRR2Change
|
||||
OnChange = TRXParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 5
|
||||
Text = 'default'
|
||||
@ -2855,7 +2874,7 @@ object frmPreferences: TfrmPreferences
|
||||
'ON'
|
||||
'OFF'
|
||||
)
|
||||
OnChange = cmbRTSR2Change
|
||||
OnChange = TRXParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 6
|
||||
Text = 'default'
|
||||
@ -2880,6 +2899,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 51
|
||||
Width = 200
|
||||
ItemHeight = 0
|
||||
OnChange = cmbModelRig2Change
|
||||
TabOrder = 7
|
||||
end
|
||||
object edtRadio2Name: TEdit
|
||||
@ -2890,7 +2910,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 0
|
||||
Width = 94
|
||||
BorderSpacing.Left = 126
|
||||
OnChange = edtRadio1NameChange
|
||||
OnChange = TRXParamsChange
|
||||
TabOrder = 8
|
||||
end
|
||||
object edtR2Host: TEdit
|
||||
@ -2902,6 +2922,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 0
|
||||
Width = 128
|
||||
BorderSpacing.Left = 12
|
||||
OnChange = TRXParamsChange
|
||||
TabOrder = 9
|
||||
end
|
||||
object lblHost2: TLabel
|
||||
@ -3048,6 +3069,19 @@ object frmPreferences: TfrmPreferences
|
||||
TabOrder = 5
|
||||
end
|
||||
end
|
||||
object chkR2Vfo: TCheckBox
|
||||
AnchorSideLeft.Control = edtR2RigCtldPort
|
||||
AnchorSideTop.Control = chkR2SendCWR
|
||||
Left = 522
|
||||
Height = 23
|
||||
Top = 87
|
||||
Width = 103
|
||||
Caption = 'Use \chkvfo'
|
||||
Checked = True
|
||||
OnChange = TRXParamsChange
|
||||
State = cbChecked
|
||||
TabOrder = 11
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -3137,6 +3171,7 @@ object frmPreferences: TfrmPreferences
|
||||
Height = 34
|
||||
Top = 23
|
||||
Width = 503
|
||||
OnChange = TRXParamsChange
|
||||
TabOrder = 0
|
||||
Text = 'edtRotCtldPath'
|
||||
end
|
||||
@ -3217,7 +3252,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 35
|
||||
Width = 208
|
||||
BorderSpacing.Left = 12
|
||||
OnChange = edtRadio1NameChange
|
||||
OnChange = RotorParamsChange
|
||||
TabOrder = 0
|
||||
end
|
||||
object edtRot1Poll: TEdit
|
||||
@ -3229,7 +3264,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 35
|
||||
Width = 80
|
||||
BorderSpacing.Left = 12
|
||||
OnChange = edtRadio1NameChange
|
||||
OnChange = RotorParamsChange
|
||||
OnExit = edtPoll1Exit
|
||||
TabOrder = 1
|
||||
end
|
||||
@ -3243,6 +3278,7 @@ object frmPreferences: TfrmPreferences
|
||||
Width = 235
|
||||
BorderSpacing.Left = 24
|
||||
Caption = 'Run rotctld when program starts'
|
||||
OnChange = RotorParamsChange
|
||||
TabOrder = 2
|
||||
end
|
||||
object lblExtaArgs1: TLabel
|
||||
@ -3265,7 +3301,7 @@ object frmPreferences: TfrmPreferences
|
||||
Height = 34
|
||||
Top = 98
|
||||
Width = 255
|
||||
OnChange = edtR1RigCtldArgsChange
|
||||
OnChange = RotorParamsChange
|
||||
TabOrder = 3
|
||||
Text = 'edtRot1RotCtldArgs'
|
||||
end
|
||||
@ -3288,7 +3324,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 35
|
||||
Width = 80
|
||||
BorderSpacing.Left = 12
|
||||
OnChange = edtR1RigCtldPortChange
|
||||
OnChange = RotorParamsChange
|
||||
TabOrder = 4
|
||||
end
|
||||
object grbSerialRot1: TGroupBox
|
||||
@ -3379,7 +3415,7 @@ object frmPreferences: TfrmPreferences
|
||||
'XON/XOFF'
|
||||
'HARDWARE'
|
||||
)
|
||||
OnChange = cmbHanshakeR1Change
|
||||
OnChange = RotorParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 0
|
||||
Text = 'default'
|
||||
@ -3403,7 +3439,7 @@ object frmPreferences: TfrmPreferences
|
||||
'Mark'
|
||||
'Space'
|
||||
)
|
||||
OnChange = cmbParityR1Change
|
||||
OnChange = RotorParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 1
|
||||
Text = 'default'
|
||||
@ -3427,7 +3463,7 @@ object frmPreferences: TfrmPreferences
|
||||
'8'
|
||||
'9'
|
||||
)
|
||||
OnChange = cmbDataBitsR1Change
|
||||
OnChange = RotorParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 2
|
||||
Text = 'default'
|
||||
@ -3450,7 +3486,7 @@ object frmPreferences: TfrmPreferences
|
||||
'2'
|
||||
'3'
|
||||
)
|
||||
OnChange = cmbStopBitsR1Change
|
||||
OnChange = RotorParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 3
|
||||
Text = 'default'
|
||||
@ -3477,7 +3513,7 @@ object frmPreferences: TfrmPreferences
|
||||
'57600'
|
||||
'115200'
|
||||
)
|
||||
OnChange = cmbSpeedR1Change
|
||||
OnChange = RotorParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 4
|
||||
Text = 'default'
|
||||
@ -3499,7 +3535,7 @@ object frmPreferences: TfrmPreferences
|
||||
'ON'
|
||||
'OFF'
|
||||
)
|
||||
OnChange = cmbDTRR1Change
|
||||
OnChange = RotorParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 5
|
||||
Text = 'default'
|
||||
@ -3531,7 +3567,7 @@ object frmPreferences: TfrmPreferences
|
||||
'ON'
|
||||
'OFF'
|
||||
)
|
||||
OnChange = cmbRTSR1Change
|
||||
OnChange = RotorParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 6
|
||||
Text = 'default'
|
||||
@ -3555,6 +3591,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 35
|
||||
Width = 200
|
||||
ItemHeight = 17
|
||||
OnChange = cmbModelRot1Change
|
||||
TabOrder = 6
|
||||
Text = 'cmbModelRot1'
|
||||
end
|
||||
@ -3567,6 +3604,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 104
|
||||
Width = 276
|
||||
Caption = 'Use rotctrld \dump:state info for limits'
|
||||
OnChange = RotorParamsChange
|
||||
TabOrder = 7
|
||||
end
|
||||
end
|
||||
@ -3579,7 +3617,7 @@ object frmPreferences: TfrmPreferences
|
||||
Width = 94
|
||||
BorderSpacing.Left = 140
|
||||
BorderSpacing.Top = 12
|
||||
OnChange = edtRadio1NameChange
|
||||
OnChange = RotorParamsChange
|
||||
TabOrder = 1
|
||||
end
|
||||
object pnlHost1: TPanel
|
||||
@ -3604,6 +3642,7 @@ object frmPreferences: TfrmPreferences
|
||||
Height = 34
|
||||
Top = 12
|
||||
Width = 128
|
||||
OnChange = RotorParamsChange
|
||||
TabOrder = 3
|
||||
Text = 'edtR1Host'
|
||||
end
|
||||
@ -3672,7 +3711,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 35
|
||||
Width = 208
|
||||
BorderSpacing.Left = 12
|
||||
OnChange = edtRadio1NameChange
|
||||
OnChange = RotorParamsChange
|
||||
TabOrder = 0
|
||||
end
|
||||
object edtRot2Poll: TEdit
|
||||
@ -3684,7 +3723,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 35
|
||||
Width = 80
|
||||
BorderSpacing.Left = 12
|
||||
OnChange = edtRadio1NameChange
|
||||
OnChange = RotorParamsChange
|
||||
OnExit = edtPoll1Exit
|
||||
TabOrder = 1
|
||||
end
|
||||
@ -3698,6 +3737,7 @@ object frmPreferences: TfrmPreferences
|
||||
Width = 235
|
||||
BorderSpacing.Left = 24
|
||||
Caption = 'Run rotctld when program starts'
|
||||
OnChange = RotorParamsChange
|
||||
TabOrder = 2
|
||||
end
|
||||
object lblExtaArgs2: TLabel
|
||||
@ -3720,7 +3760,7 @@ object frmPreferences: TfrmPreferences
|
||||
Height = 34
|
||||
Top = 98
|
||||
Width = 255
|
||||
OnChange = edtR2RigCtldArgsChange
|
||||
OnChange = RotorParamsChange
|
||||
TabOrder = 3
|
||||
Text = 'edtRot2RotCtldArgs'
|
||||
end
|
||||
@ -3743,7 +3783,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 35
|
||||
Width = 80
|
||||
BorderSpacing.Left = 12
|
||||
OnChange = edtR2RigCtldPortChange
|
||||
OnChange = RotorParamsChange
|
||||
TabOrder = 4
|
||||
end
|
||||
object grbSerialRot2: TGroupBox
|
||||
@ -3834,7 +3874,7 @@ object frmPreferences: TfrmPreferences
|
||||
'XON/XOFF'
|
||||
'HARDWARE'
|
||||
)
|
||||
OnChange = cmbHanshakeR2Change
|
||||
OnChange = RotorParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 0
|
||||
Text = 'default'
|
||||
@ -3858,7 +3898,7 @@ object frmPreferences: TfrmPreferences
|
||||
'Mark'
|
||||
'Space'
|
||||
)
|
||||
OnChange = cmbParityR2Change
|
||||
OnChange = RotorParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 1
|
||||
Text = 'default'
|
||||
@ -3882,7 +3922,7 @@ object frmPreferences: TfrmPreferences
|
||||
'8'
|
||||
'9'
|
||||
)
|
||||
OnChange = cmbDataBitsR2Change
|
||||
OnChange = RotorParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 2
|
||||
Text = 'default'
|
||||
@ -3905,7 +3945,7 @@ object frmPreferences: TfrmPreferences
|
||||
'2'
|
||||
'3'
|
||||
)
|
||||
OnChange = cmbStopBitsR2Change
|
||||
OnChange = RotorParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 3
|
||||
Text = 'default'
|
||||
@ -3932,7 +3972,7 @@ object frmPreferences: TfrmPreferences
|
||||
'57600'
|
||||
'115200'
|
||||
)
|
||||
OnChange = cmbSpeedR2Change
|
||||
OnChange = RotorParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 4
|
||||
Text = 'default'
|
||||
@ -3954,7 +3994,7 @@ object frmPreferences: TfrmPreferences
|
||||
'ON'
|
||||
'OFF'
|
||||
)
|
||||
OnChange = cmbDTRR2Change
|
||||
OnChange = RotorParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 5
|
||||
Text = 'default'
|
||||
@ -3986,7 +4026,7 @@ object frmPreferences: TfrmPreferences
|
||||
'ON'
|
||||
'OFF'
|
||||
)
|
||||
OnChange = cmbRTSR2Change
|
||||
OnChange = RotorParamsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 6
|
||||
Text = 'default'
|
||||
@ -4011,6 +4051,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 35
|
||||
Width = 200
|
||||
ItemHeight = 17
|
||||
OnChange = cmbModelRot2Change
|
||||
TabOrder = 6
|
||||
Text = 'cmbModelRot2'
|
||||
end
|
||||
@ -4023,6 +4064,7 @@ object frmPreferences: TfrmPreferences
|
||||
Top = 104
|
||||
Width = 276
|
||||
Caption = 'Use rotctrld \dump:state info for limits'
|
||||
OnChange = RotorParamsChange
|
||||
TabOrder = 7
|
||||
end
|
||||
end
|
||||
@ -4035,7 +4077,7 @@ object frmPreferences: TfrmPreferences
|
||||
Width = 94
|
||||
BorderSpacing.Left = 140
|
||||
BorderSpacing.Top = 12
|
||||
OnChange = edtRadio1NameChange
|
||||
OnChange = RotorParamsChange
|
||||
TabOrder = 1
|
||||
end
|
||||
object pnl2Host: TPanel
|
||||
@ -4061,6 +4103,7 @@ object frmPreferences: TfrmPreferences
|
||||
Height = 34
|
||||
Top = 12
|
||||
Width = 128
|
||||
OnChange = RotorParamsChange
|
||||
TabOrder = 3
|
||||
Text = 'edtRot2Host'
|
||||
end
|
||||
|
@ -128,6 +128,8 @@ type
|
||||
cb30cm: TCheckBox;
|
||||
cgLimit: TCheckGroup;
|
||||
cbNoKeyerReset: TCheckBox;
|
||||
chkR2Vfo: TCheckBox;
|
||||
chkR1Vfo: TCheckBox;
|
||||
chkOperator: TCheckBox;
|
||||
chkDarcDok: TCheckBox;
|
||||
chkNewDOKTables: TCheckBox;
|
||||
@ -1083,22 +1085,12 @@ type
|
||||
procedure btnFirstLoadClick(Sender: TObject);
|
||||
procedure btnSecondLoadClick(Sender: TObject);
|
||||
procedure btnThirdLoadClick(Sender: TObject);
|
||||
procedure cmbDataBitsR1Change(Sender : TObject);
|
||||
procedure cmbDataBitsR2Change(Sender : TObject);
|
||||
procedure cmbDTRR1Change(Sender : TObject);
|
||||
procedure cmbDTRR2Change(Sender : TObject);
|
||||
procedure cmbHanshakeR1Change(Sender : TObject);
|
||||
procedure cmbHanshakeR2Change(Sender : TObject);
|
||||
procedure cmbIfaceType1Change(Sender: TObject);
|
||||
procedure cmbIfaceType2Change(Sender: TObject);
|
||||
procedure cmbParityR1Change(Sender : TObject);
|
||||
procedure cmbParityR2Change(Sender : TObject);
|
||||
procedure cmbRTSR1Change(Sender : TObject);
|
||||
procedure cmbRTSR2Change(Sender : TObject);
|
||||
procedure cmbSpeedR1Change(Sender : TObject);
|
||||
procedure cmbSpeedR2Change(Sender : TObject);
|
||||
procedure cmbStopBitsR1Change(Sender : TObject);
|
||||
procedure cmbStopBitsR2Change(Sender : TObject);
|
||||
procedure cmbModelRig1Change(Sender: TObject);
|
||||
procedure cmbModelRig2Change(Sender: TObject);
|
||||
procedure cmbModelRot1Change(Sender: TObject);
|
||||
procedure cmbModelRot2Change(Sender: TObject);
|
||||
procedure edtAlertCmdExit(Sender: TObject);
|
||||
procedure edtHtmlFilesClick(Sender: TObject);
|
||||
procedure edtHtmlFilesExit(Sender: TObject);
|
||||
@ -1106,13 +1098,9 @@ type
|
||||
procedure edtK3NGSerSpeedChange(Sender: TObject);
|
||||
procedure edtLocChange(Sender: TObject);
|
||||
procedure edtPdfFilesExit(Sender: TObject);
|
||||
procedure edtR1RigCtldArgsChange(Sender: TObject);
|
||||
procedure edtR1RigCtldPortChange(Sender : TObject);
|
||||
procedure edtR2RigCtldArgsChange(Sender : TObject);
|
||||
procedure edtR2RigCtldPortChange(Sender : TObject);
|
||||
procedure edtRadio1NameChange(Sender: TObject);
|
||||
procedure edtRadio2Change(Sender: TObject);
|
||||
procedure edtRecetQSOsKeyPress(Sender: TObject; var Key: char);
|
||||
procedure RotorParamsChange(Sender: TObject);
|
||||
procedure TRXParamsChange(Sender: TObject);
|
||||
procedure edtTxtFilesExit(Sender: TObject);
|
||||
procedure edtWebBrowserClick(Sender: TObject);
|
||||
procedure edtWebBrowserExit(Sender: TObject);
|
||||
@ -1171,6 +1159,7 @@ var
|
||||
fqSize: integer;
|
||||
fbandSize: integer;
|
||||
TRXChanged: boolean;
|
||||
RotChanged: boolean;
|
||||
ReloadFreq: Boolean = False;
|
||||
ReloadModes: Boolean = False;
|
||||
WinKeyerChanged : Boolean;
|
||||
@ -1180,7 +1169,7 @@ implementation
|
||||
|
||||
{ TfrmPreferences }
|
||||
uses dUtils, dData, fMain, fFreq, fQTHProfiles, fSerialPort, fClubSettings, fLoadClub,
|
||||
fGrayline, fNewQSO, fBandMap, fBandMapWatch, fDefaultFreq, fKeyTexts, fTRXControl,
|
||||
fGrayline, fNewQSO, fBandMap, fBandMapWatch, fDefaultFreq, fKeyTexts, fTRXControl,fRotControl,
|
||||
fSplitSettings, uMyIni, fNewQSODefValues, fDXCluster, fCallAlert, fConfigStorage, fPropagation,
|
||||
fRadioMemories, dMembership, dLogUpload;
|
||||
|
||||
@ -1341,6 +1330,7 @@ begin
|
||||
cqrini.WriteString('TRX1', 'poll', edtPoll1.Text);
|
||||
cqrini.WriteString('TRX1', 'Desc', edtRadio1Name.Text);
|
||||
cqrini.WriteBool('TRX1', 'CWR', chkR1SendCWR.Checked);
|
||||
cqrini.WriteBool('TRX1', 'ChkVfo',chkR1Vfo.Checked);
|
||||
cqrini.WriteString('TRX1', 'RigCtldPort', edtR1RigCtldPort.Text);
|
||||
cqrini.WriteString('TRX1', 'ExtraRigCtldArgs', edtR1RigCtldArgs.Text);
|
||||
cqrini.WriteBool('TRX1', 'RunRigCtld', chkR1RunRigCtld.Checked);
|
||||
@ -1364,6 +1354,7 @@ begin
|
||||
cqrini.WriteString('TRX2', 'poll', edtPoll2.Text);
|
||||
cqrini.WriteString('TRX2', 'Desc', edtRadio2Name.Text);
|
||||
cqrini.WriteBool('TRX2', 'CWR', chkR2SendCWR.Checked);
|
||||
cqrini.WriteBool('TRX2', 'ChkVfo',chkR2Vfo.Checked);
|
||||
cqrini.WriteString('TRX2', 'RigCtldPort', edtR2RigCtldPort.Text);
|
||||
cqrini.WriteString('TRX2', 'ExtraRigCtldArgs', edtR2RigCtldArgs.Text);
|
||||
cqrini.WriteBool('TRX2', 'RunRigCtld', chkR2RunRigCtld.Checked);
|
||||
@ -1717,6 +1708,8 @@ begin
|
||||
cqrini.SaveToDisk;
|
||||
if TRXChanged then
|
||||
frmTRXControl.InicializeRig;
|
||||
if RotChanged then
|
||||
frmRotControl.InicializeRot;
|
||||
|
||||
frmTRXControl.LoadUsrButtonCaptions;
|
||||
frmTRXControl.LoadButtonCaptions;
|
||||
@ -2483,38 +2476,6 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.cmbDataBitsR1Change(Sender : TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.cmbDataBitsR2Change(Sender : TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.cmbDTRR1Change(Sender : TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.cmbDTRR2Change(Sender : TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
end;
|
||||
|
||||
|
||||
|
||||
procedure TfrmPreferences.cmbHanshakeR1Change(Sender : TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.cmbHanshakeR2Change(Sender : TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.cmbIfaceType1Change(Sender: TObject);
|
||||
begin
|
||||
WinKeyerChanged := True;
|
||||
@ -2534,46 +2495,53 @@ begin
|
||||
then cbNoKeyerReset.Checked := false; //restart is always needed when radio changes
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.cmbParityR1Change(Sender : TObject);
|
||||
procedure TfrmPreferences.cmbModelRig1Change(Sender: TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
if cmbModelRig1.ItemIndex=1 then //With Hamlib Net rigctld do not start rigctld (no sense)
|
||||
Begin
|
||||
chkR1RunRigCtld.Checked:=False;
|
||||
chkR1RunRigCtld.Enabled:=False;
|
||||
end
|
||||
else
|
||||
chkR1RunRigCtld.Enabled:=True;
|
||||
TRXParamsChange(nil);
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.cmbParityR2Change(Sender : TObject);
|
||||
procedure TfrmPreferences.cmbModelRig2Change(Sender: TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
if cmbModelRig2.ItemIndex=1 then //With Hamlib Net rigctld do not start rigctld (no sense)
|
||||
Begin
|
||||
chkR2RunRigCtld.Checked:=False;
|
||||
chkR2RunRigCtld.Enabled:=False;
|
||||
end
|
||||
else
|
||||
chkR2RunRigCtld.Enabled:=True;
|
||||
TRXParamsChange(nil);
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.cmbRTSR1Change(Sender : TObject);
|
||||
procedure TfrmPreferences.cmbModelRot1Change(Sender: TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
if cmbModelRot1.ItemIndex=1 then
|
||||
Begin
|
||||
chkRot1RunRotCtld.Checked:=False;
|
||||
chkRot1RunRotCtld.Enabled:=False;
|
||||
end
|
||||
else
|
||||
chkRot1RunRotCtld.Enabled:=True;
|
||||
RotorParamsChange(nil);
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.cmbRTSR2Change(Sender : TObject);
|
||||
procedure TfrmPreferences.cmbModelRot2Change(Sender: TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
if cmbModelRot2.ItemIndex=1 then
|
||||
Begin
|
||||
chkRot2RunRotCtld.Checked:=False;
|
||||
chkRot2RunRotCtld.Enabled:=False;
|
||||
end
|
||||
else
|
||||
chkRot2RunRotCtld.Enabled:=True;
|
||||
RotorParamsChange(nil);
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.cmbSpeedR1Change(Sender : TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.cmbSpeedR2Change(Sender : TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.cmbStopBitsR1Change(Sender : TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.cmbStopBitsR2Change(Sender : TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.edtAlertCmdExit(Sender: TObject);
|
||||
begin
|
||||
edtAlertCmd.Text:=StringReplace(edtAlertCmd.Text,'~/',dmData.UsrHomeDir,[rfReplaceAll]);
|
||||
@ -2635,41 +2603,19 @@ begin
|
||||
edtLoc.SelStart := Length(edtLoc.Text);
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.edtR1RigCtldArgsChange(Sender: TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.edtR1RigCtldPortChange(Sender : TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.edtR2RigCtldArgsChange(Sender : TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.edtR2RigCtldPortChange(Sender : TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.edtRadio1NameChange(Sender: TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.edtRadio2Change(Sender: TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.edtRecetQSOsKeyPress(Sender: TObject; var Key: char);
|
||||
begin
|
||||
if not (key in ['0'..'9']) then
|
||||
key := #0;
|
||||
end;
|
||||
procedure TfrmPreferences.TRXParamsChange(Sender: TObject);
|
||||
begin
|
||||
TRXChanged := True
|
||||
end;
|
||||
procedure TfrmPreferences.RotorParamsChange(Sender: TObject);
|
||||
begin
|
||||
RotChanged := True;
|
||||
end;
|
||||
|
||||
procedure TfrmPreferences.edtWebBrowserClick(Sender: TObject);
|
||||
Begin
|
||||
@ -2926,6 +2872,7 @@ begin
|
||||
edtPoll1.Text := cqrini.ReadString('TRX1', 'poll', '500');
|
||||
edtRadio1Name.Text := cqrini.ReadString('TRX1', 'Desc', 'Radio 1');
|
||||
chkR1SendCWR.Checked := cqrini.ReadBool('TRX1', 'CWR', False);
|
||||
chkR1Vfo.Checked:= cqrini.ReadBool('TRX1', 'ChkVfo', True);
|
||||
edtR1RigCtldPort.Text := cqrini.ReadString('TRX1', 'RigCtldPort', '4532');
|
||||
edtR1RigCtldArgs.Text := cqrini.ReadString('TRX1', 'ExtraRigCtldArgs', '');
|
||||
chkR1RunRigCtld.Checked := cqrini.ReadBool('TRX1', 'RunRigCtld', False);
|
||||
@ -2948,6 +2895,7 @@ begin
|
||||
edtPoll2.Text := cqrini.ReadString('TRX2', 'poll', '500');
|
||||
edtRadio2Name.Text := cqrini.ReadString('TRX2', 'Desc', 'Radio 2');
|
||||
chkR2SendCWR.Checked := cqrini.ReadBool('TRX2', 'CWR', False);
|
||||
chkR2Vfo.Checked:= cqrini.ReadBool('TRX2', 'ChkVfo', True);
|
||||
edtR2RigCtldPort.Text := cqrini.ReadString('TRX2', 'RigCtldPort', '4532');
|
||||
edtR2RigCtldArgs.Text := cqrini.ReadString('TRX2', 'ExtraRigCtldArgs', '');
|
||||
chkR2RunRigCtld.Checked := cqrini.ReadBool('TRX2', 'RunRigCtld', False);
|
||||
@ -3010,8 +2958,15 @@ begin
|
||||
edtAM2.Value := cqrini.ReadInteger('Band2', 'AM', 3000);
|
||||
edtFM2.Value := cqrini.ReadInteger('Band2', 'FM', 2500);
|
||||
|
||||
cmbModelRig1Change(nil);
|
||||
cmbModelRig2Change(nil);
|
||||
cmbModelRot1Change(nil);
|
||||
cmbModelRot2Change(nil);
|
||||
|
||||
edtDigiModes.Text := cqrini.ReadString('Modes', 'Digi', '');
|
||||
|
||||
|
||||
|
||||
chkUseProfiles.Checked := cqrini.ReadBool('Profiles', 'Use', False);
|
||||
cmbProfiles.Text :=
|
||||
dmData.GetProfileText(cqrini.ReadInteger('Profiles', 'Selected', 0));
|
||||
@ -3293,6 +3248,7 @@ begin
|
||||
|
||||
chkSysUTCClick(nil);
|
||||
TRXChanged := False;
|
||||
RotChanged := False;
|
||||
WinKeyerChanged := False;
|
||||
|
||||
pgPreferences.ActivePageIndex := ActPageIdx; //set wanted tab for showing when open. ActTab is public variable.
|
||||
|
@ -153,7 +153,7 @@ object frmTRXControl: TfrmTRXControl
|
||||
OnKeyDown = FormKeyDown
|
||||
OnKeyUp = FormKeyUp
|
||||
OnShow = FormShow
|
||||
LCLVersion = '2.0.8.0'
|
||||
LCLVersion = '2.0.12.0'
|
||||
object gbMode: TGroupBox
|
||||
AnchorSideLeft.Control = gbVfo
|
||||
AnchorSideTop.Control = gbVfo
|
||||
@ -791,12 +791,12 @@ object frmTRXControl: TfrmTRXControl
|
||||
Enabled = False
|
||||
Interval = 500
|
||||
OnTimer = tmrRadioTimer
|
||||
left = 96
|
||||
top = 112
|
||||
Left = 96
|
||||
Top = 112
|
||||
end
|
||||
object mnuMem: TMainMenu
|
||||
left = 40
|
||||
top = 112
|
||||
Left = 40
|
||||
Top = 112
|
||||
object mnuPref: TMenuItem
|
||||
Caption = 'Preferences'
|
||||
object mnuOpenMem: TMenuItem
|
||||
@ -830,8 +830,8 @@ object frmTRXControl: TfrmTRXControl
|
||||
end
|
||||
end
|
||||
object acMem: TActionList
|
||||
left = 64
|
||||
top = 112
|
||||
Left = 64
|
||||
Top = 112
|
||||
object acAddModMem: TAction
|
||||
Caption = 'Add/Modify memory'
|
||||
OnExecute = acAddModMemExecute
|
||||
|
@ -1105,7 +1105,7 @@ begin
|
||||
radio.RigCtldHost := cqrini.ReadString('TRX'+n,'host','localhost');
|
||||
radio.RigPoll := poll;
|
||||
radio.RigSendCWR := cqrini.ReadBool('TRX'+n,'CWR',False);
|
||||
|
||||
radio.RigChkVfo := cqrini.ReadBool('TRX'+n, 'ChkVfo', True);
|
||||
tmrRadio.Interval := radio.RigPoll;
|
||||
tmrRadio.Enabled := True;
|
||||
Result := True;
|
||||
@ -1456,6 +1456,24 @@ begin
|
||||
if mode = 'FM' then
|
||||
btnFM.Font.Color := clRed;
|
||||
|
||||
if Assigned(radio) then
|
||||
Begin
|
||||
case radio.GetCurrVFO of
|
||||
VFOA : Begin
|
||||
btnVFOA.Font.Color:=clRed;
|
||||
btnVFOB.Font.Color:=clDefault;
|
||||
end;
|
||||
VFOB : Begin
|
||||
btnVFOB.Font.Color:=clRed;
|
||||
btnVFOA.Font.Color:=clDefault;
|
||||
end;
|
||||
else
|
||||
Begin
|
||||
btnVFOB.Font.Color:=clDefault;
|
||||
btnVFOA.Font.Color:=clDefault;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmTRXControl.Split(Up : Integer);
|
||||
|
@ -197,7 +197,7 @@ type
|
||||
property ProxyPass: string read FProxyPass Write FProxyPass;
|
||||
|
||||
{:Here you can specify custom User-Agent identification.
|
||||
Default: 'Mozilla/4.0 (compatible; Synapse)'}
|
||||
Default: 'Mozilla/4.0 (X11; Linux x86_64)'}
|
||||
property UserAgent: string read FUserAgent Write FUserAgent;
|
||||
|
||||
{:Operation result code after successful @link(HTTPMethod) method.}
|
||||
@ -291,7 +291,7 @@ begin
|
||||
FProtocol := '1.0';
|
||||
FKeepAlive := True;
|
||||
FStatus100 := False;
|
||||
FUserAgent := 'Mozilla/4.0 (compatible; Synapse)';
|
||||
FUserAgent := 'Mozilla/4.0 (X11; Linux x86_64)';
|
||||
FDownloadSize := 0;
|
||||
FUploadSize := 0;
|
||||
FAddPortNumberToHost := true;
|
||||
|
@ -39,6 +39,7 @@ type TRigControl = class
|
||||
fVFO : TVFO;
|
||||
RigCommand : TStringList;
|
||||
fRigSendCWR : Boolean;
|
||||
fRigChkVfo : Boolean;
|
||||
BadRcvd : Integer;
|
||||
fRXOffset : Double;
|
||||
fTXOffset : Double;
|
||||
@ -49,8 +50,12 @@ type TRigControl = class
|
||||
|
||||
procedure OnReceivedRcvdFreqMode(aSocket: TLSocket);
|
||||
procedure OnRigPollTimer(Sender: TObject);
|
||||
public
|
||||
|
||||
public
|
||||
|
||||
ParmVfoChkd : Boolean;
|
||||
ParmHasVfo : integer;
|
||||
VfoStr : String;
|
||||
|
||||
constructor Create;
|
||||
destructor Destroy; override;
|
||||
@ -77,6 +82,8 @@ type TRigControl = class
|
||||
//poll rate in milliseconds
|
||||
property RigSendCWR : Boolean read fRigSendCWR write fRigSendCWR;
|
||||
//send CWR instead of CW
|
||||
property RigChkVfo : Boolean read fRigChkVfo write fRigChkVfo;
|
||||
//test if rigctld "--vfo" start parameter is used
|
||||
property LastError : String read fLastError;
|
||||
//last error during operation
|
||||
|
||||
@ -132,6 +139,7 @@ begin
|
||||
rigProcess := TProcess.Create(nil);
|
||||
tmrRigPoll := TTimer.Create(nil);
|
||||
tmrRigPoll.Enabled := False;
|
||||
VfoStr := ''; //defaults to non-"--vfo" (legacy) mode
|
||||
if DebugMode then Writeln('All objects created');
|
||||
tmrRigPoll.OnTimer := @OnRigPollTimer;
|
||||
BadRcvd := 0;
|
||||
@ -178,7 +186,6 @@ begin
|
||||
exit
|
||||
end
|
||||
end;
|
||||
|
||||
Result := True
|
||||
end;
|
||||
|
||||
@ -199,6 +206,7 @@ begin
|
||||
Writeln('RigCtldHost:',RigCtldHost);
|
||||
Writeln('RigPoll: ',RigPoll);
|
||||
Writeln('RigSendCWR: ',RigSendCWR);
|
||||
Writeln('RigChkVfo ',RigChkVfo);
|
||||
Writeln('RigId: ',RigId);
|
||||
Writeln('')
|
||||
end;
|
||||
@ -230,8 +238,11 @@ begin
|
||||
begin
|
||||
if fDebugMode then Writeln('Connected to rigctld @ ',fRigCtldHost,':',fRigCtldPort);
|
||||
result := True;
|
||||
ParmVfoChkd:= not(RigChkVfo); //default: check of "--vfo" not done is false, assigned by preferences not(RigVfoChk)
|
||||
ParmHasVfo:=0; //default: "--vfo" is not used as start parameter
|
||||
tmrRigPoll.Interval := fRigPoll;
|
||||
tmrRigPoll.Enabled := True
|
||||
tmrRigPoll.Enabled := True;
|
||||
RigCommand.Clear;
|
||||
end
|
||||
else begin
|
||||
if fDebugMode then Writeln('NOT connected to rigctld @ ',fRigCtldHost,':',fRigCtldPort);
|
||||
@ -243,8 +254,12 @@ end;
|
||||
procedure TRigControl.SetCurrVFO(vfo : TVFO);
|
||||
begin
|
||||
case vfo of
|
||||
VFOA : RigCommand.Add('V VFOA');//sendCommand.SendMessage('V VFOA'+LineEnding);
|
||||
VFOB : RigCommand.Add('V VFOB')//sendCommand.SendMessage('V VFOB'+LineEnding);
|
||||
VFOA : Begin
|
||||
RigCommand.Add('V VFOA');//sendCommand.SendMessage('V VFOA'+LineEnding);
|
||||
end;
|
||||
VFOB : Begin
|
||||
RigCommand.Add('V VFOB');//sendCommand.SendMessage('V VFOB'+LineEnding);
|
||||
end;
|
||||
end //case
|
||||
end;
|
||||
|
||||
@ -252,41 +267,41 @@ procedure TRigControl.SetModePass(mode : TRigMode);
|
||||
begin
|
||||
if (mode.mode='CW') and fRigSendCWR then
|
||||
mode.mode := 'CWR';
|
||||
RigCommand.Add('M '+mode.mode+' '+IntToStr(mode.pass))
|
||||
RigCommand.Add('+M'+VfoStr+' '+mode.mode+' '+IntToStr(mode.pass))
|
||||
end;
|
||||
|
||||
procedure TRigControl.SetFreqKHz(freq : Double);
|
||||
begin
|
||||
RigCommand.Add('F '+FloatToStr(freq*1000-TXOffset*1000000))
|
||||
RigCommand.Add('+F'+VfoStr+' '+FloatToStr(freq*1000-TXOffset*1000000))
|
||||
end;
|
||||
procedure TRigControl.ClearRit;
|
||||
begin
|
||||
RigCommand.Add('J 0')
|
||||
RigCommand.Add('+J'+VfoStr+' 0')
|
||||
end;
|
||||
procedure TRigControl.DisableRit;
|
||||
Begin
|
||||
RigCommand.Add('U RIT 0');
|
||||
RigCommand.Add('+U'+VfoStr+' RIT 0');
|
||||
end;
|
||||
procedure TRigControl.SetSplit(up:integer);
|
||||
Begin
|
||||
RigCommand.Add('Z '+IntToStr(up));
|
||||
RigCommand.Add('U XIT 1');
|
||||
RigCommand.Add('+Z'+VfoStr+' '+IntToStr(up));
|
||||
RigCommand.Add('+U'+VfoStr+' XIT 1');
|
||||
end;
|
||||
procedure TRigControl.ClearXit;
|
||||
begin
|
||||
RigCommand.Add('Z 0')
|
||||
RigCommand.Add('+Z'+VfoStr+' 0')
|
||||
end;
|
||||
procedure TRigControl.DisableSplit;
|
||||
Begin
|
||||
RigCommand.Add('U XIT 0');
|
||||
RigCommand.Add('+U'+VfoStr+' XIT 0');
|
||||
end;
|
||||
procedure TRigControl.PttOn;
|
||||
begin
|
||||
RigCommand.Add('T 1')
|
||||
RigCommand.Add('+T'+VfoStr+' 1')
|
||||
end;
|
||||
procedure TRigControl.PttOff;
|
||||
begin
|
||||
RigCommand.Add('T 0')
|
||||
RigCommand.Add('+T'+VfoStr+' 0')
|
||||
end;
|
||||
procedure TRigControl.PwrOn;
|
||||
begin
|
||||
@ -416,159 +431,90 @@ end;
|
||||
procedure TRigControl.OnReceivedRcvdFreqMode(aSocket: TLSocket);
|
||||
var
|
||||
msg : String;
|
||||
a : TExplodeArray;
|
||||
a,b : TExplodeArray;
|
||||
i : Integer;
|
||||
f : Double;
|
||||
begin
|
||||
if aSocket.GetMessage(msg) > 0 then
|
||||
begin
|
||||
//Writeln('Whole MSG:|',msg,'|');
|
||||
msg := trim(msg);
|
||||
msg := upcase(trim(msg)); //note the char case!
|
||||
|
||||
if DebugMode then Writeln('Msg from rig: ',msg);
|
||||
if DebugMode then
|
||||
Writeln('Msg from rig: ',msg);
|
||||
|
||||
if not ParmVfoChkd then
|
||||
Begin
|
||||
ParmVfoChkd:=true;
|
||||
if (msg[1]='1') then ParmHasVfo := 1; //Hamlib 4.3
|
||||
if (pos('CHKVFO 1',msg)>0) then ParmHasVfo := 2; //Hamlib 3.3
|
||||
if DebugMode then Writeln('"--vfo" checked:',ParmHasVfo);
|
||||
if ParmHasVfo > 0 then VfoStr:=' currVFO'; //note set leading one space to string!
|
||||
end;
|
||||
|
||||
a := Explode(LineEnding,msg);
|
||||
for i:=0 to Length(a)-1 do
|
||||
for i:=0 to Length(a)-1 do //this handles received message line by line
|
||||
begin
|
||||
//Writeln('a[i]:',a[i]);
|
||||
if a[i]='' then Continue;
|
||||
|
||||
if TryStrToFloat(a[i],f) then
|
||||
begin
|
||||
if f>20000 then
|
||||
fFReq := f
|
||||
//we send all commands with '+' prefix that makes receiving sort lot easier
|
||||
b:= Explode(' ', a[i]);
|
||||
|
||||
if b[0]='FREQUENCY:' then
|
||||
Begin
|
||||
if TryStrToFloat(b[1],f) then
|
||||
Begin
|
||||
fFReq := f;
|
||||
BadRcvd := 0;
|
||||
end
|
||||
else
|
||||
fMode.pass := round(f);
|
||||
Continue
|
||||
fFReq := 0;
|
||||
end;
|
||||
|
||||
//if (a[i][1] in ['A'..'Z']) and (a[i][1] <> 'V' ) then //receiving mode info
|
||||
//FT-920 returned VFO as MEM
|
||||
if (a[i][1] in ['A'..'Z']) and (a[i][1] <> 'V' ) and (a[i]<>'MEM') then//receiving mode info
|
||||
begin
|
||||
if Pos('RPRT',a[i]) = 0 then
|
||||
begin
|
||||
BadRcvd := 0;
|
||||
fMode.mode := a[i];
|
||||
fMode.raw := a[i];
|
||||
if b[0]='MODE:' then
|
||||
Begin
|
||||
fMode.raw := b[1];
|
||||
fMode.mode := fMode.raw;
|
||||
if (fMode.mode = 'USB') or (fMode.mode = 'LSB') then
|
||||
fMode.mode := 'SSB';
|
||||
if fMode.mode = 'CWR' then
|
||||
fMode.mode := 'CW'
|
||||
end
|
||||
else begin
|
||||
if BadRcvd>2 then
|
||||
begin
|
||||
fFreq := 0;
|
||||
end;
|
||||
|
||||
//FT-920 returned VFO as MEM
|
||||
//Some rigs report VFO as Main,MainA,MainB or Sub,SubA,SubB
|
||||
//Hamlib dummy has also "None" could it be in some real rigs too?
|
||||
if b[0]='VFO:' then
|
||||
Begin
|
||||
b:= Explode(' ', a[i]);
|
||||
case b[1] of
|
||||
'VFOA',
|
||||
'MAIN',
|
||||
'MAINA',
|
||||
'SUBA' :fVFO := VFOA;
|
||||
|
||||
'VFOB',
|
||||
'SUB',
|
||||
'MAINB',
|
||||
'SUBB' :fVFO := VFOB;
|
||||
else
|
||||
fVFO := VFOA;
|
||||
fMode.mode := 'SSB';
|
||||
fMode.raw := 'SSB';
|
||||
fMode.pass := 2700
|
||||
end
|
||||
else
|
||||
inc(BadRcvd)
|
||||
end
|
||||
end;
|
||||
if (a[i][1] = 'V') then
|
||||
begin
|
||||
if Pos('VFOB',msg) > 0 then
|
||||
fVFO := VFOB
|
||||
else
|
||||
fVFO := VFOA
|
||||
end
|
||||
end;
|
||||
{
|
||||
|
||||
if (Length(a)<4) then
|
||||
begin
|
||||
for i:=0 to Length(a)-1 do
|
||||
Writeln('a[',i,']:',a[i]);
|
||||
if (msg[1] = 'V') then
|
||||
begin
|
||||
if Pos('VFOB',msg) > 0 then
|
||||
fVFO := VFOB
|
||||
else
|
||||
fVFO := VFOA
|
||||
end;
|
||||
end;
|
||||
|
||||
if (msg[1] in ['A'..'Z']) and (msg[1] <> 'V' ) then //receiving mode info
|
||||
begin
|
||||
if Pos('RPRT',msg) = 0 then
|
||||
begin
|
||||
tmp := copy(msg,1,Pos(LineEnding,msg)-1);
|
||||
fMode.mode := trim(tmp);
|
||||
if (fMode.mode = 'USB') or (fMode.mode = 'LSB') then
|
||||
fMode.mode := 'SSB';
|
||||
|
||||
tmp := trim(copy(msg,Pos(LineEnding,msg)+1,5));
|
||||
if not TryStrToInt(tmp,wdt) then
|
||||
begin
|
||||
fMode.pass := 0;
|
||||
fLastError := 'Could not get mode width from radio';
|
||||
if fDebugMode then Writeln(fLastError,':',msg,'*')
|
||||
end
|
||||
else
|
||||
fMode.pass := wdt
|
||||
end
|
||||
end
|
||||
else begin
|
||||
if (msg[1] <> 'V' ) then
|
||||
begin
|
||||
tmp := trim(msg);
|
||||
if not TryStrToFloat(tmp,fFreq) then
|
||||
begin
|
||||
fFreq := 0;
|
||||
fLastError := 'Could not get freq from radio';
|
||||
if fDebugMode then Writeln(fLastError,':',msg,'*')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
else begin
|
||||
if not TryStrToFloat(a[0],fFreq) then
|
||||
begin
|
||||
fFreq := 0;
|
||||
fLastError := 'Could not get freq from radio';
|
||||
if fDebugMode then Writeln(fLastError,':',msg,'*',a[0],'*')
|
||||
end;
|
||||
|
||||
if Pos('RPRT',a[1]) = 0 then
|
||||
begin
|
||||
fMode.mode := trim(a[1]);
|
||||
if (fMode.mode = 'USB') or (fMode.mode = 'LSB') then
|
||||
fMode.mode := 'SSB';
|
||||
if fMode.mode = 'CWR' then
|
||||
fMode.mode := 'CW';
|
||||
|
||||
tmp := a[2];
|
||||
if not TryStrToInt(tmp,wdt) then
|
||||
begin
|
||||
fMode.pass := 0;
|
||||
fLastError := 'Could not get mode width from radio';
|
||||
if fDebugMode then Writeln(fLastError,':',msg,'*')
|
||||
end
|
||||
else
|
||||
fMode.pass := wdt
|
||||
end;
|
||||
if Pos('VFOB',a[3]) > 0 then
|
||||
fVFO := VFOB
|
||||
else
|
||||
fVFO := VFOA
|
||||
end;}
|
||||
{ Writeln('-----');
|
||||
Writeln('VFO :',fVFO);
|
||||
Writeln('FREQ :',fFreq);
|
||||
Writeln('Mode :',fMode.mode);
|
||||
Writeln('Bandwidth:',fMode.pass);
|
||||
Writeln('-----')}
|
||||
end
|
||||
end;
|
||||
|
||||
procedure TRigControl.OnRigPollTimer(Sender: TObject);
|
||||
var
|
||||
cmd : String;
|
||||
i : Integer;
|
||||
begin
|
||||
if not ParmVfoChkd then
|
||||
RigCommand.Clear; // chk must be first thing to do
|
||||
|
||||
if (RigCommand.Text<>'') then
|
||||
begin
|
||||
for i:=0 to RigCommand.Count-1 do
|
||||
@ -576,15 +522,32 @@ begin
|
||||
sleep(100);
|
||||
cmd := RigCommand.Strings[i]+LineEnding;
|
||||
rcvdFreqMode.SendMessage(cmd);
|
||||
if DebugMode then Writeln('Sending: '+cmd)
|
||||
if DebugMode then
|
||||
Writeln('Sending: '+cmd)
|
||||
end;
|
||||
RigCommand.Clear
|
||||
end
|
||||
else begin
|
||||
cmd := 'fmv'+LineEnding;
|
||||
if DebugMode then Writeln('Sending: '+cmd);
|
||||
else
|
||||
begin
|
||||
if not ParmVfoChkd then
|
||||
cmd := '\chk_vfo'+LineEnding
|
||||
else
|
||||
if ParmHasVfo=2 then
|
||||
cmd := '+f'+VfoStr+LineEnding+'+m'+VfoStr+LineEnding+'+v'+VfoStr+LineEnding //chk this with rigctld v3.1
|
||||
else
|
||||
cmd := '+f'+VfoStr+LineEnding+'+m'+VfoStr+LineEnding+'+v'+LineEnding;
|
||||
|
||||
if DebugMode then
|
||||
Writeln('Poll Sending: '+cmd);
|
||||
rcvdFreqMode.SendMessage(cmd)
|
||||
end
|
||||
end;
|
||||
|
||||
inc(BadRcvd); //we use this now as "no freq reply" counter
|
||||
if BadRcvd > 10 then // if missed to get frequency during 10 polls, rig connection is dead(?)
|
||||
Begin
|
||||
fFReq := 0;
|
||||
BadRcvd := 10; // prevent overflow
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRigControl.Restart;
|
||||
|
@ -10,7 +10,7 @@ const
|
||||
cRELEAS = 2;
|
||||
cBUILD = 1;
|
||||
|
||||
cBUILD_DATE = '2021-09-19';
|
||||
cBUILD_DATE = '2021-10-02';
|
||||
|
||||
implementation
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user