Merge pull request #340 from OH1KH/sqash_split_with_xit

Added TX split support
This commit is contained in:
Petr Hlozek 2020-10-28 08:01:41 +01:00 committed by GitHub
commit d6bbec1dd9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 447 additions and 239 deletions

View File

@ -238,10 +238,16 @@
The default frequencies which the radio tunes if you click a band button in the 'TRX control'
panel can be changed to your preferences. The mode is switched in accordance to the band plan,
there is actually a separate set of default frequencies for each CW, SSB, RTTY, AM and FM modes.
Click the 'Change default frequencies' button and set up frequencies of your choice.
Click the 'Change default frequencies' button and set up frequencies of your choice.<br><br>
<strong>Split settings</strong><br>
Split TX operation is made by using rig's XIT feature if rig supports it. Then there is no need to set both vfos for qso, just one and do the splitting with XIT.
<br>Split is activated from NewQSO with keys Ctrl-1 ... Ctrl-9.
<br>Ctrl-0 will disable XIT.
<br>Ctrl-9 has a random value 0-990Hz that is added to setting if split is up. If split is down it is subtracted.<br>
</div>
<br>
<img src=img/h100.png border=0><br>
<img src=img/h100.png border=0> <img src=img/h100b.png border=0><br>
<a name=ah7b><h2><strong>ROT Control</strong></h2></a>
<img src=img/h10b.png border=0><br><br>
@ -688,7 +694,7 @@ There are no known dependencies issues.<br><br>
which will inform you about upload progress.
<strong>Upload QSO data immediately after save, update or delete</strong> means that every
insert/update or delete will be uploaded automatically. But if you change something in
QSO list window with hot keys e.g. CTRL+S, CTRL+W etc. and/or download data
QSO list window with hot keys e.g. Ctrl-S, Ctrl-W etc. and/or download data
from eQSL/LoTW, changes won't be uploaded. All will be uploaded after you save/delete QSO
or if you choose Online log and Upload to all online logs menu.<br>

View File

@ -29,11 +29,19 @@
<div align="left"><strong>CQRLOG for LINUX by OK7AN &amp; OK1RR</strong></div>
<p align=center><img src=img/line.png></p>
<a name="ah16"><h2><strong>Keys and shortcuts</strong></h2></a>
<strong>New QSO Windows/Logging screen</strong><br><br>
<table width="99%" border="0" cellpadding="4" cellspacing="0">
<strong>When "New QSO" window is active:</strong><br><br>
<table>
<tr>
<td valign="top"><img src="img/bulb.png"></td>
<td bgcolor=ccffff width="100%">
<strong><font color="blue">The "New QSO" is the logging screen!</font></strong>
</td>
</tr>
</table>
<br><br><table width="99%" border="0" cellpadding="4" cellspacing="0">
<tbody>
<tr>
<td width="35%">2x ESC or Ctrl+F2</td>
<td width="35%">2x ESC or Ctrl-F2</td>
<td width="65%">Empty all fields and prepare program for a new QSO</td>
</tr>
<tr>
@ -44,17 +52,26 @@
<td width="35%">PgDn</td>
<td width="65%">CW Speed -2 WPM (QRS)</td>
</tr>
<tr>
<td width="35%">F11</td>
<td width="65%">QRZ/HamQTH Callbook (call in the field)</td>
</tr>
</tr>
<td> </td>
<tr>
<td> </td>
</tr>
<tr>
<td width="35%">Ctrl-1...Ctrl-9</td>
<td width="65%">Set split on trx with 1 ... 9 kHz via VFO A and VFO B</td>
<td width="65%">Set split using XIT if rig supports it. Value 0 - 9999Hz UP/DOWN
<br>Ctrl-9 will add random value 0 - 990Hz to setting. Subtract if split is DOWN
<br>Keys work also when TRXcontrol window is active</td>
</tr>
<tr>
<td width="35%">Ctrl-0</td>
<td width="65%">Disables XIT
<br>Key works also when TRXcontrol window is active</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td width="35%">Ctrl-A</td>
@ -66,7 +83,7 @@
</tr>
<tr>
<td width="35%">Ctrl-H</td>
<td width="65%">Open help</td>
<td width="65%">Show help</td>
</tr>
<tr>
<td width="35%">Ctrl-I</td>
@ -120,17 +137,13 @@
<td width="35%">Ctrl-Z</td>
<td width="65%">Scroll back DXCluster commands (5 stored)</td>
</tr>
</tr>
<td> </td>
<tr>
<td> </td>
</tr>
<tr>
<td width="35%">ALT-F2</td>
<td width="65%">execute New QSO</td>
</tr>
<td> </td>
<tr>
</tr>
<tr>
<td width="35%">ALT-B</td>
<td width="65%"><a href="h30.html#m3">Memory down</a></td>
@ -165,12 +178,12 @@
</table>
<br>
<p align=center><img src=img/line.png></p>
<strong>QSO list</strong><br><br>
<strong>When "QSO list" window is active:</strong><br><br>
<table>
<tr>
<td valign="top"><img src="img/bulb.png"></td>
<td bgcolor=ccffff width="100%">
<strong><font color="blue">The QSO list is the main screen for maintenance!</font></strong>
<strong><font color="blue">The "QSO list" is the main screen for maintenance!</font></strong>
</td>
</tr>
</table>
@ -236,6 +249,10 @@
<td width="35%">Ctrl-F</td>
<td width="65%">Search</td>
</tr>
<tr>
<td width="35%">Ctrl-H</td>
<td width="65%">Show help</td>
</tr>
<tr>
<td width="35%">Ctrl-P</td>
<td width="65%">Preferences</td>
@ -330,7 +347,7 @@
<br><br>
<img src=img/h25.png border=0><br><br>
<div align=justify>
Details window dispays details about new/confirmed zones, IOTA details etc. You can open it from <strong> NewQSo/Window/Details</strong> or with Ctrl+I key.
Details window dispays details about new/confirmed zones, IOTA details etc. You can open it from <strong> NewQSo/Window/Details</strong> or with Ctrl-I key.
</div>
<br><br>
@ -422,7 +439,7 @@ CQRLOG employs <em>fldigi</em> by Dave Freese, W1HKJ and <em>WSJT-X</em> by Joe
best digimode softwares available.<br>
<br>The most important thing is a <a href="h1.html#ch2">proper setup</a> of the remote mode. For <em>fldigi<em> you have 2 different ways to setup remote .<br>
For <em>wsjt-x</em>, setup is done at same tab of preferences as <em>fldigi<em>. For operating with wsjt-x see: <a href="wsjt.html">Wsjt-x operation</a>
<br><br> To use <em>fldigi</em>, CQRLOG must be switched to Remote from the menu File -> Remote mode for fldigi(or CTRL+M).
<br><br> To use <em>fldigi</em>, CQRLOG must be switched to Remote from the menu File -> Remote mode for fldigi(or Ctrl-M).
<br> To use <em>wsjt-x</em>, CQRLOG must be switched to Remote from the menu File -> Remote mode for wsjt.
<br> To use <em>N1MM logger</em>, CQRLOG must be switched to Remote from the menu File -> Remote mode for N1MM logger.<br><br>
<img src="img/h104.png"><br><br>

View File

@ -57,7 +57,7 @@ Additionally you can add used Mode and RST sent by pressing button <b>+Mode_Rst<
<br>User message can be generated with <b>right</b> mouse click to button. Same predefined macros as in <a href="h26.html#predef"><b>cw messages</b></a> can be used.
<br>Moving mouse cursor over button a hint will show the text what is added by pressing button.
<br><br><b>Note!</b> There is a limited space to spot info. User string generation warns you about long message, but it is up to you to decide.
<br>You must cancel spot sending and reopen it with Ctrl+W to get User message up to date after editing it.
<br>You must cancel spot sending and reopen it with Ctrl-W to get User message up to date after editing it.
<br>
<br>Strings can be added only once. To edit or delete added strings you must use keyboard's delete button. When spot looks good <b>press enter</b> or click button <b>OK</b> and spot will be sent to connected DXCluster.
<br><br>

View File

@ -29,7 +29,7 @@
<div style="text-align: left;"><strong>CQRLOG for LINUX by OK7AN &amp; OK1RR</strong></div>
<p align=center><img src=img/line.png></p>
<h2><strong>SQL Console</strong></h2>
<div style="text-align: justify;">To enter the SQL Console, go to QSO list (Ctrl+O)
<div style="text-align: justify;">To enter the SQL Console, go to QSO list (Ctrl-O)
and in the upper menu bar go to <em>Filter -> SQL console.</em>
<div align="left">

View File

@ -40,7 +40,7 @@
<br>If pure ASCII charcters are found the usual tag format is used. Like &lt;QTH:4&gt;Pori
<br>Every time special UTF8 character is found in tags, where specification allows, UTF8 printing routines are used and the _INTL suffix is added.
<br>At import side tags with suffix _INTL are read with UTF8 routines. Without _INTL with normal ASCII routines. This makes importing backward compatible with old cqrlog exports that have set tag lenght wrong if there has been special UTF8 characters in tag data.<br><br>
Go to QSO list (Ctrl+O on the main logging screen or File -> Show QSO list from the menu).
Go to QSO list (Ctrl-O on the main logging screen or File -> Show QSO list from the menu).
<br><br>
<img src="img/h39.png" border="0"><br><br>
From the menu <strong>here</strong> choose File -> Import -> ADIF.<br><br>
@ -202,7 +202,7 @@
Since version 0.8.0 CQRLOG uses its own QSL Manager database in a very simple, plain
text format (CSV, semicolon separated). The update is very simple. The automated update
checks the availability of a new version, downloads and unpacks the tar.gz file if
available. The new version must be imported - go to QSO list (Ctrl+O or from menu
available. The new version must be imported - go to QSO list (Ctrl-O or from menu
<em>File -> Show QSO list</em>) and choose the <em>File -> Import -> Import
qsl managers database</em>.<br><br>
A manual update is also possible if you download a recent version from the CQRLOG site

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 31 KiB

BIN
help/img/h100b.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -43,7 +43,7 @@ function goBack() {
<img src="img/n1mm1.png" name="1" border="0"/>
<p>N1MM logger remote connection is just for copying logged qso infromation from other program like wsjt-x or js8call (or similars that support this kind of logging) to cqrlog.
There is no other finctionality than just transfer the logged data.
</br>Remote mode is activated from NewQSO/File selection list, or pressing Ctrl+K when NewQSO window is focused.
</br>Remote mode is activated from NewQSO/File selection list, or pressing Ctrl-K when NewQSO window is focused.
</p><p>
<img src="img/n1mm3.png" name="3" border="0"/>
</br>Settings must be done at wsjt-x or js8call Settings/reporting. At least checking the checkbox. Port and address values can be defaults.

View File

@ -464,6 +464,7 @@
<Filename Value="fSplitSettings.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="frmSplitSettings"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
</Unit53>
<Unit54>

View File

@ -1667,7 +1667,7 @@ object frmMain: TfrmMain
Caption = 'Help'
RightJustify = True
object mnuHelpIndex: TMenuItem
Caption = 'Help index'
Caption = 'Help index Alt+H'
Bitmap.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000560151001806

View File

@ -812,7 +812,12 @@ begin
begin
mnuDoNotSendClick(nil);
key := 0
end
end;
if ((Shift = [ssCtrl]) and (key = VK_H)) then
begin
ShowHelp;
key := 0
end;
end;
procedure TfrmMain.mnuOQRSClick(Sender : TObject);

View File

@ -630,7 +630,6 @@ type
procedure CheckStateClub;
procedure SaveGrid;
procedure LoadGrid;
procedure SetSplit(s : String);
procedure ShowWindows;
procedure CheckAttachment;
procedure CheckQSLImage;
@ -709,6 +708,7 @@ type
procedure NewQSOFromSpot(call,freq,mode : String;FromRbn : Boolean = False);
procedure SetEditLabel;
procedure UnsetEditLabel;
procedure SetSplit(s : String);
procedure StoreClubInfo(where,StoreText : String);
procedure SynCallBook;
procedure SynDXCCTab;
@ -5596,25 +5596,8 @@ begin
if ((Shift = [ssCTRL]) and (key = VK_W)) then
acSendSpot.Execute;
if ((Shift = [ssCTRL]) and (key = VK_1)) then
frmTRXControl.rbRadio1.Checked := True;
//SetSplit('1');
if ((Shift = [ssCTRL]) and (key = VK_2)) then
frmTRXControl.rbRadio2.Checked := True;
//SetSplit('2');
if ((Shift = [ssCTRL]) and (key = VK_3)) then
SetSplit('3');
if ((Shift = [ssCTRL]) and (key = VK_4)) then
SetSplit('4');
if ((Shift = [ssCTRL]) and (key = VK_5)) then
SetSplit('5');
if ((Shift = [ssCTRL]) and (key = VK_6)) then
SetSplit('6');
if ((Shift = [ssCTRL]) and (key = VK_7)) then
SetSplit('7');
if ((Shift = [ssCTRL]) and (key = VK_8)) then
SetSplit('8');
if (Shift = [ssCTRL]) then
if key in [VK_1..VK_9] then SetSplit(chr(key));
if ((Shift = [ssCTRL]) and (key = VK_0)) then
frmTRXControl.DisableSplit;
@ -6827,8 +6810,19 @@ begin
end;
procedure TfrmNewQSO.SetSplit(s : String);
var
d:integer;
begin
frmTRXControl.Split(cqrini.ReadInteger('Split',s,0))
if s='9' then
Begin
d := cqrini.ReadInteger('Split','9',0);
if d<0 then
frmTRXControl.Split(d-Random(100)*10)
else
frmTRXControl.Split(d+Random(100)*10)
end
else
frmTRXControl.Split(cqrini.ReadInteger('Split',s,0));
end;
procedure TfrmNewQSO.ShowWindows;

View File

@ -23,7 +23,7 @@ object frmPreferences: TfrmPreferences
Height = 703
Top = 0
Width = 697
ActivePage = tabCWInterface
ActivePage = tabProgram
Align = alClient
TabIndex = 4
TabOrder = 0
@ -1754,14 +1754,13 @@ object frmPreferences: TfrmPreferences
TabOrder = 0
end
object btnSplit: TButton
Left = 536
Left = 472
Height = 25
Top = 584
Top = 561
Width = 104
Caption = 'Split settings'
OnClick = btnSplitClick
TabOrder = 1
Visible = False
end
object GroupBox40: TGroupBox
Left = 7

View File

@ -1,158 +1,225 @@
object frmSplitSettings: TfrmSplitSettings
Left = 465
Height = 288
Top = 239
Width = 326
Left = 668
Height = 357
Top = 174
Width = 299
ActiveControl = cmbSplit1
BorderIcons = [biSystemMenu]
BorderStyle = bsDialog
Caption = 'Split settings'
ClientHeight = 288
ClientWidth = 326
ClientHeight = 357
ClientWidth = 299
OnShow = FormShow
Position = poMainFormCenter
LCLVersion = '0.9.27'
object Label1: TLabel
Left = 8
Height = 18
Top = 19
Width = 53
LCLVersion = '2.0.8.0'
object lbl1: TLabel
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = edtSplit1
AnchorSideTop.Side = asrCenter
Left = 6
Height = 15
Top = 15
Width = 52
BorderSpacing.Left = 6
Caption = 'CTRL+1'
ParentColor = False
end
object Label7: TLabel
Left = 168
Height = 18
Top = 19
Width = 18
object lblH1: TLabel
AnchorSideLeft.Control = edtSplit1
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = lbl1
Left = 158
Height = 15
Top = 15
Width = 17
BorderSpacing.Left = 6
Caption = 'Hz'
ParentColor = False
end
object Label2: TLabel
Left = 8
Height = 18
object lbl2: TLabel
AnchorSideLeft.Control = lbl1
AnchorSideTop.Control = edtSplit2
AnchorSideTop.Side = asrCenter
Left = 6
Height = 15
Top = 48
Width = 53
Width = 52
Caption = 'CTRL+2'
ParentColor = False
end
object Label8: TLabel
Left = 168
Height = 18
object lblH2: TLabel
AnchorSideLeft.Control = edtSplit2
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = lbl2
Left = 158
Height = 15
Top = 48
Width = 18
Width = 17
BorderSpacing.Left = 6
Caption = 'Hz'
ParentColor = False
end
object Label3: TLabel
Left = 8
Height = 18
Top = 77
Width = 53
object lbl3: TLabel
AnchorSideLeft.Control = lbl1
AnchorSideTop.Control = edtSplit3
AnchorSideTop.Side = asrCenter
Left = 6
Height = 15
Top = 81
Width = 52
Caption = 'CTRL+3'
ParentColor = False
end
object Label9: TLabel
Left = 168
Height = 18
Top = 77
Width = 18
object lblH3: TLabel
AnchorSideLeft.Control = edtSplit3
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = lbl3
Left = 158
Height = 15
Top = 81
Width = 17
BorderSpacing.Left = 6
Caption = 'Hz'
ParentColor = False
end
object Label4: TLabel
Left = 8
Height = 18
Top = 106
Width = 53
object lbl4: TLabel
AnchorSideLeft.Control = lbl1
AnchorSideTop.Control = edtSplit4
AnchorSideTop.Side = asrCenter
Left = 6
Height = 15
Top = 114
Width = 52
Caption = 'CTRL+4'
ParentColor = False
end
object Label10: TLabel
Left = 168
Height = 18
Top = 106
Width = 18
object lblH4: TLabel
AnchorSideLeft.Control = edtSplit4
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = lbl4
Left = 158
Height = 15
Top = 114
Width = 17
BorderSpacing.Left = 6
Caption = 'Hz'
ParentColor = False
end
object Label5: TLabel
Left = 8
Height = 18
Top = 136
Width = 53
object lbl5: TLabel
AnchorSideLeft.Control = lbl1
AnchorSideTop.Control = edtSplit5
AnchorSideTop.Side = asrCenter
Left = 6
Height = 15
Top = 147
Width = 52
Caption = 'CTRL+5'
ParentColor = False
end
object Label11: TLabel
Left = 168
Height = 18
Top = 136
Width = 18
object lblH5: TLabel
AnchorSideLeft.Control = edtSplit5
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = lbl5
Left = 158
Height = 15
Top = 147
Width = 17
BorderSpacing.Left = 6
Caption = 'Hz'
ParentColor = False
end
object Label6: TLabel
Left = 8
Height = 18
Top = 165
Width = 53
object lbl6: TLabel
AnchorSideLeft.Control = lbl1
AnchorSideTop.Control = edtSplit6
AnchorSideTop.Side = asrCenter
Left = 6
Height = 15
Top = 180
Width = 52
Caption = 'CTRL+6'
ParentColor = False
end
object Label12: TLabel
Left = 168
Height = 18
Top = 165
Width = 18
object lblH6: TLabel
AnchorSideLeft.Control = edtSplit6
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = lbl6
Left = 158
Height = 15
Top = 180
Width = 17
BorderSpacing.Left = 6
Caption = 'Hz'
ParentColor = False
end
object Label13: TLabel
Left = 8
Height = 18
Top = 194
Width = 53
object lbl7: TLabel
AnchorSideLeft.Control = lbl1
AnchorSideTop.Control = edtSplit7
AnchorSideTop.Side = asrCenter
Left = 6
Height = 15
Top = 213
Width = 52
Caption = 'CTRL+7'
ParentColor = False
end
object Label14: TLabel
Left = 168
Height = 18
Top = 194
Width = 18
object lblH7: TLabel
AnchorSideLeft.Control = edtSplit7
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = lbl7
Left = 158
Height = 15
Top = 213
Width = 17
BorderSpacing.Left = 6
Caption = 'Hz'
ParentColor = False
end
object Label15: TLabel
Left = 8
Height = 18
Top = 223
Width = 53
object lbl8: TLabel
AnchorSideLeft.Control = lbl1
AnchorSideTop.Control = edtSplit8
AnchorSideTop.Side = asrCenter
Left = 6
Height = 15
Top = 246
Width = 52
Caption = 'CTRL+8'
ParentColor = False
end
object Label16: TLabel
Left = 168
Height = 18
Top = 223
Width = 18
object lblH8: TLabel
AnchorSideLeft.Control = edtSplit8
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = lbl8
Left = 158
Height = 15
Top = 246
Width = 17
BorderSpacing.Left = 6
Caption = 'Hz'
ParentColor = False
end
object edtSplit1: TSpinEdit
Left = 72
Height = 27
Top = 16
AnchorSideLeft.Control = lbl1
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Owner
Left = 64
Height = 33
Top = 6
Width = 88
MaxValue = 50000
BorderSpacing.Left = 6
BorderSpacing.Top = 6
MaxValue = 9999
TabOrder = 0
end
object cmbSplit1: TComboBox
Left = 200
Height = 29
Top = 14
AnchorSideLeft.Control = lblH1
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = lblH1
AnchorSideTop.Side = asrCenter
Left = 181
Height = 33
Top = 6
Width = 100
BorderSpacing.Left = 6
ItemHeight = 0
ItemIndex = 0
Items.Strings = (
@ -163,18 +230,24 @@ object frmSplitSettings: TfrmSplitSettings
Text = 'UP'
end
object edtSplit2: TSpinEdit
Left = 72
Height = 27
Top = 45
AnchorSideLeft.Control = edtSplit1
AnchorSideTop.Control = edtSplit1
AnchorSideTop.Side = asrBottom
Left = 64
Height = 33
Top = 39
Width = 88
MaxValue = 50000
MaxValue = 9999
TabOrder = 2
Value = 1
end
object cmbSplit2: TComboBox
Left = 200
Height = 29
Top = 43
AnchorSideLeft.Control = cmbSplit1
AnchorSideTop.Control = lblH2
AnchorSideTop.Side = asrCenter
Left = 181
Height = 33
Top = 39
Width = 100
ItemHeight = 0
ItemIndex = 0
@ -186,17 +259,23 @@ object frmSplitSettings: TfrmSplitSettings
Text = 'UP'
end
object edtSplit3: TSpinEdit
Left = 72
Height = 27
Top = 74
AnchorSideLeft.Control = edtSplit2
AnchorSideTop.Control = edtSplit2
AnchorSideTop.Side = asrBottom
Left = 64
Height = 33
Top = 72
Width = 88
MaxValue = 50000
MaxValue = 9999
TabOrder = 4
Value = 1
end
object cmbSplit3: TComboBox
Left = 200
Height = 29
AnchorSideLeft.Control = cmbSplit2
AnchorSideTop.Control = lblH3
AnchorSideTop.Side = asrCenter
Left = 181
Height = 33
Top = 72
Width = 100
ItemHeight = 0
@ -209,18 +288,24 @@ object frmSplitSettings: TfrmSplitSettings
Text = 'UP'
end
object edtSplit4: TSpinEdit
Left = 72
Height = 27
Top = 103
AnchorSideLeft.Control = edtSplit3
AnchorSideTop.Control = edtSplit3
AnchorSideTop.Side = asrBottom
Left = 64
Height = 33
Top = 105
Width = 88
MaxValue = 50000
MaxValue = 9999
TabOrder = 6
Value = 1
end
object cmbSplit4: TComboBox
Left = 200
Height = 29
Top = 101
AnchorSideLeft.Control = cmbSplit3
AnchorSideTop.Control = lblH4
AnchorSideTop.Side = asrCenter
Left = 181
Height = 33
Top = 105
Width = 100
ItemHeight = 0
ItemIndex = 0
@ -232,18 +317,24 @@ object frmSplitSettings: TfrmSplitSettings
Text = 'UP'
end
object edtSplit5: TSpinEdit
Left = 72
Height = 27
Top = 133
AnchorSideLeft.Control = edtSplit4
AnchorSideTop.Control = edtSplit4
AnchorSideTop.Side = asrBottom
Left = 64
Height = 33
Top = 138
Width = 88
MaxValue = 50000
MaxValue = 9999
TabOrder = 8
Value = 1
end
object cmbSplit5: TComboBox
Left = 200
Height = 29
Top = 131
AnchorSideLeft.Control = cmbSplit4
AnchorSideTop.Control = lblH5
AnchorSideTop.Side = asrCenter
Left = 181
Height = 33
Top = 138
Width = 100
ItemHeight = 0
ItemIndex = 0
@ -255,18 +346,24 @@ object frmSplitSettings: TfrmSplitSettings
Text = 'UP'
end
object edtSplit6: TSpinEdit
Left = 72
Height = 27
Top = 162
AnchorSideLeft.Control = edtSplit5
AnchorSideTop.Control = edtSplit5
AnchorSideTop.Side = asrBottom
Left = 64
Height = 33
Top = 171
Width = 88
MaxValue = 50000
MaxValue = 9999
TabOrder = 10
Value = 1
end
object cmbSplit6: TComboBox
Left = 200
Height = 29
Top = 160
AnchorSideLeft.Control = cmbSplit5
AnchorSideTop.Control = lblH6
AnchorSideTop.Side = asrCenter
Left = 181
Height = 33
Top = 171
Width = 100
ItemHeight = 0
ItemIndex = 0
@ -278,18 +375,24 @@ object frmSplitSettings: TfrmSplitSettings
Text = 'UP'
end
object edtSplit7: TSpinEdit
Left = 72
Height = 27
Top = 191
AnchorSideLeft.Control = edtSplit6
AnchorSideTop.Control = edtSplit6
AnchorSideTop.Side = asrBottom
Left = 64
Height = 33
Top = 204
Width = 88
MaxValue = 50000
MaxValue = 9999
TabOrder = 12
Value = 1
end
object cmbSplit7: TComboBox
Left = 200
Height = 29
Top = 189
AnchorSideLeft.Control = cmbSplit6
AnchorSideTop.Control = lblH7
AnchorSideTop.Side = asrCenter
Left = 181
Height = 33
Top = 204
Width = 100
ItemHeight = 0
ItemIndex = 0
@ -301,18 +404,24 @@ object frmSplitSettings: TfrmSplitSettings
Text = 'UP'
end
object edtSplit8: TSpinEdit
Left = 72
Height = 27
Top = 220
AnchorSideLeft.Control = edtSplit7
AnchorSideTop.Control = edtSplit7
AnchorSideTop.Side = asrBottom
Left = 64
Height = 33
Top = 237
Width = 88
MaxValue = 50000
MaxValue = 9999
TabOrder = 14
Value = 1
end
object cmbSplit8: TComboBox
Left = 200
Height = 29
Top = 218
AnchorSideLeft.Control = cmbSplit7
AnchorSideTop.Control = lblH8
AnchorSideTop.Side = asrCenter
Left = 181
Height = 33
Top = 237
Width = 100
ItemHeight = 0
ItemIndex = 0
@ -324,22 +433,84 @@ object frmSplitSettings: TfrmSplitSettings
Text = 'UP'
end
object btnOK: TButton
Left = 32
AnchorSideLeft.Control = edtSplit9
AnchorSideTop.Control = edtSplit9
AnchorSideTop.Side = asrBottom
Left = 64
Height = 25
Top = 256
Top = 321
Width = 75
BorderSpacing.Top = 18
Caption = 'OK'
OnClick = btnOKClick
TabOrder = 16
end
object btnCancel: TButton
Left = 210
AnchorSideLeft.Control = cmbSplit9
AnchorSideTop.Control = cmbSplit9
AnchorSideTop.Side = asrBottom
AnchorSideRight.Side = asrBottom
Left = 181
Height = 25
Top = 256
Top = 321
Width = 75
BorderSpacing.Top = 18
Cancel = True
Caption = 'Cancel'
ModalResult = 2
TabOrder = 17
end
object lbl9: TLabel
AnchorSideLeft.Control = lbl1
AnchorSideTop.Control = edtSplit9
AnchorSideTop.Side = asrCenter
Left = 6
Height = 15
Top = 279
Width = 52
Caption = 'CTRL+9'
ParentColor = False
end
object lblH9: TLabel
AnchorSideLeft.Control = edtSplit9
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = lbl9
Left = 158
Height = 15
Top = 279
Width = 17
BorderSpacing.Left = 6
Caption = 'Hz'
ParentColor = False
end
object edtSplit9: TSpinEdit
AnchorSideLeft.Control = edtSplit8
AnchorSideTop.Control = edtSplit8
AnchorSideTop.Side = asrBottom
Left = 64
Height = 33
Top = 270
Width = 88
MaxValue = 8000
MinValue = 1
TabOrder = 18
Value = 2
end
object cmbSplit9: TComboBox
AnchorSideLeft.Control = cmbSplit8
AnchorSideTop.Control = lblH9
AnchorSideTop.Side = asrCenter
Left = 181
Height = 33
Top = 270
Width = 100
ItemHeight = 0
ItemIndex = 0
Items.Strings = (
'UP'
'DOWN'
)
TabOrder = 19
Text = 'UP'
end
end

View File

@ -23,6 +23,7 @@ type
cmbSplit6: TComboBox;
cmbSplit7: TComboBox;
cmbSplit8: TComboBox;
cmbSplit9: TComboBox;
edtSplit2: TSpinEdit;
edtSplit3: TSpinEdit;
edtSplit4: TSpinEdit;
@ -30,23 +31,26 @@ type
edtSplit6: TSpinEdit;
edtSplit7: TSpinEdit;
edtSplit8: TSpinEdit;
Label1: TLabel;
edtSplit9: TSpinEdit;
lbl1: TLabel;
edtSplit1: TSpinEdit;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
lblH4: TLabel;
lblH5: TLabel;
lblH6: TLabel;
lbl7: TLabel;
lblH7: TLabel;
lbl8: TLabel;
lblH8: TLabel;
lbl9: TLabel;
lblH9: TLabel;
lbl2: TLabel;
lbl3: TLabel;
lbl4: TLabel;
lbl5: TLabel;
lbl6: TLabel;
lblH1: TLabel;
lblH2: TLabel;
lblH3: TLabel;
procedure FormShow(Sender: TObject);
procedure btnOKClick(Sender: TObject);
private
@ -98,7 +102,12 @@ begin
if cmbSplit8.ItemIndex = 0 then
cqrini.WriteInteger('Split','8',edtSplit8.Value)
else
cqrini.WriteInteger('Split','8',edtSplit8.Value*-1)
cqrini.WriteInteger('Split','8',edtSplit8.Value*-1);
if cmbSplit9.ItemIndex = 0 then
cqrini.WriteInteger('Split','9',edtSplit9.Value)
else
cqrini.WriteInteger('Split','9',edtSplit9.Value*-1);
Close;
end;
procedure TfrmSplitSettings.FormShow(Sender: TObject);
@ -150,8 +159,15 @@ begin
else begin
edtSplit8.Value := cqrini.ReadInteger('Split','8',0)*-1;
cmbSplit8.ItemIndex := 1
end;
if cqrini.ReadInteger('Split','9',0) >= 0 then
edtSplit9.Value := cqrini.ReadInteger('Split','9',0)
else begin
edtSplit9.Value := cqrini.ReadInteger('Split','9',0)*-1;
cmbSplit9.ItemIndex := 1
end
end;
end.

View File

@ -977,7 +977,11 @@ begin
begin
dmUtils.EnterFreq;
key := 0;
end
end;
if (Shift = [ssCTRL]) then
if key in [VK_1..VK_9] then frmNewQSO.SetSplit(chr(key));
if ((Shift = [ssCTRL]) and (key = VK_0)) then
DisableSplit;
end;
procedure TfrmTRXControl.FormKeyUp(Sender: TObject; var Key: Word;
@ -1389,34 +1393,18 @@ begin
end;
procedure TfrmTRXControl.Split(Up : Integer);
{
var
a : String = '';
b : String = '';
f : Double;
v : String;
}
begin
{
f := StrToFloat(lblFreq.Caption)*1000000; //freq to Hz
f := f + up;
if mvfo = 'VFOA' then
v := 'VFOB'
else
v := 'VFOB';
if rbRadio1.Checked then
TRX1.SetSplit(v,FloatToStr(f))
else
TRX2.SetSplit(v,FloatToStr(f))
}
//we do split with XIT, no need to play with 2 VFOs
if Assigned(radio) then
begin
radio.SetSplit(up);
end;
end;
procedure TfrmTRXControl.DisableSplit;
begin
//if rbRadio1.Checked then
//TRX1.DisableSplit
//else
//TRX2.DisableSplit
if Assigned(radio) then radio.DisableSplit;
end;
function TfrmTRXControl.GetFreqHz : Double;

View File

@ -103,6 +103,8 @@ type TRigControl = class
procedure SetCurrVFO(vfo : TVFO);
procedure SetModePass(mode : TRigMode);
procedure SetFreqKHz(freq : Double);
procedure SetSplit(up:integer);
procedure DisableSplit;
procedure ClearRit;
procedure Restart;
procedure PwrOn;
@ -258,6 +260,15 @@ procedure TRigControl.ClearRit;
begin
RigCommand.Add('J 0')
end;
procedure TRigControl.SetSplit(up:integer);
Begin
RigCommand.Add('Z '+IntToStr(up));
RigCommand.Add('U XIT 1');
end;
procedure TRigControl.DisableSplit;
Begin
RigCommand.Add('U XIT 0');
end;
procedure TRigControl.PttOn;
begin
RigCommand.Add('T 1')

View File

@ -9,7 +9,7 @@ const
cMINOR = 4;
cRELEAS = 0;
cBUILD = 1;
cBUILD_DATE = '2019-10-23';
cBUILD_DATE = '2020-10-27';
implementation