From 5e2ce005b4f8a3bddc9a7462f24def5cd0df3006 Mon Sep 17 00:00:00 2001 From: OH1KH Date: Sat, 20 Apr 2019 09:09:40 +0300 Subject: [PATCH] TRXControl updates -uses new database column 'info' to show short description of selected memory. if no 'info' is entered for memory will show memory number and total count of memories as 'X of Y'. -Vfo buttons now visible. They change vfo, but there is no feedback of current vfo as Icom brand rigs do not support "Get_Vfo" command. -Checkbox 'pereferences/TRXcontor/Switch only between mode related memories' now works -Selection 'Open memory list' opens list of memories without editing buttons and without showModal. List can be kept open while logging qsos. Double click on list line changes rig to that frequency/mode. -Double click of line works also on Add/Modify memory list lines. -Corresponding help files updated. Squashed commit of the following: commit c46c9f799c47d7d89160e2386df9b285a90631b8 Author: OH1KH Date: Fri Apr 19 12:24:34 2019 +0300 Fix trxcontrol help commit 00bde9d982698c083453e555a07ccefdd94fb587 Author: OH1KH Date: Wed Apr 17 11:03:29 2019 +0300 vfo buttons visible commit e2e6b6e00a45625cf107cc0b6fce8234c5dd7267 Author: OH1KH Date: Tue Apr 16 19:05:57 2019 +0300 Removed some unconditional debug prints commit 57b71577959b0a9d6425a0e76f0631b71259cb47 Author: OH1KH Date: Tue Apr 16 11:12:24 2019 +0300 restored changelog, removed readme.oh1kh' commit 2287b6a1b426a7a222ed204e5e6bdc837efc51b4 Author: OH1KH Date: Tue Apr 16 11:04:02 2019 +0300 Fixed mode related settings usage + help files' commit 871e260c684d292f66eb2d54602a9ae33923c94f Merge: a1c0a17 29112ef Author: OH1KH Date: Mon Apr 15 11:44:08 2019 +0300 Fixed merge conflict in dData.lfm commit a1c0a1737b022043ac0c8b67d19cd96c3def4223 Merge: 65f3fec 9de2bfc Author: OH1KH Date: Mon Mar 18 20:49:36 2019 +0200 Merge branch 'master' into feature_trxmonitor commit 65f3fec81e347e54427ed090f648958ddf01ca15 Author: OH1KH Date: Mon Mar 18 20:42:24 2019 +0200 TRXfiles updated from devel commit cbed44dfdd645105fb69fed57c791ec1368ea58d Author: OH1KH Date: Thu Apr 19 18:23:33 2018 +0300 feature trxmonitor --- help/h1.html | 11 +- help/h30.html | 33 ++-- help/img/h117.png | Bin 22720 -> 19497 bytes help/img/h118.png | Bin 23231 -> 23130 bytes help/img/h121.png | Bin 0 -> 28034 bytes help/img/h122.png | Bin 0 -> 17828 bytes help/img/radio_memory.png | Bin 8300 -> 0 bytes src/dData.lfm | 8 +- src/dData.pas | 102 ++++++++---- src/fAddRadioMemory.lfm | 122 ++++++++++---- src/fAddRadioMemory.pas | 8 +- src/fRadioMemories.lfm | 148 +++++++++++------ src/fRadioMemories.pas | 107 +++++++++--- src/fTRXControl.lfm | 330 +++++++++++++++++++++++--------------- src/fTRXControl.pas | 241 ++++++++++++++++++++-------- 15 files changed, 762 insertions(+), 348 deletions(-) create mode 100644 help/img/h121.png create mode 100644 help/img/h122.png delete mode 100644 help/img/radio_memory.png diff --git a/help/h1.html b/help/h1.html index dd54146..d4abcd9 100644 --- a/help/h1.html +++ b/help/h1.html @@ -177,8 +177,10 @@
Checked bands are visible in both statistics appearing at the bottom of logging screen (bands/modes of the actual logged station) and main DXCC, WAZ and ITU zones statistics. - It also affects the Challenge points at the bottom of the DXCC statistics. -
+ It also affects the Challenge points at the bottom of the DXCC statistics.
+ Pressing button frequencies band, and mode limits within bands, can be set. +
+

TRX Control



@@ -230,8 +232,9 @@ and ALT+B (Mem up). These keys are used in N6TR clones to switch between bands.
You can also switch between memory frequencies with TRXControl's M up and M dwn buttons and set rig frequencies by double clicking rows in TRXControl's Add/Modify memory list. -

-

+

See also Operation: TRXControl +

+

Modes



Here you can set up the default bandwidth for any of the supported modes (CW - SSB - RTTY - AM - FM). diff --git a/help/h30.html b/help/h30.html index 7d6213a..b761868 100644 --- a/help/h30.html +++ b/help/h30.html @@ -31,17 +31,32 @@

TRX Control

-

- + + + +

+TRX Control window Shows current frequency and buttons allow change of Band, mode, memory and rig. +

You can select rig vfo with buttons A and B but there is no feedback what vfo is currenty used as Icom brand rigs do not support "Get_vfo" command. +

If M_up or M_dwn are pressed or memory is selected by double click of memory list, the information text will show up to Mem Info field. If frequency is changed manually after that info text will disappear. +
If memory does not have info text (max 25chr) just x of y is displayed where x refers to memory order in Add/Modify memory list and y total amount of memories. +None (in red) indicates that there are no memory lines. +
With P-on/off/stb buttons current rig can be set ON, OFF or STANDBY (if it supports rigctld power commands). +
Default setting for power buttons is hidden. You can change it via dropdown menu "Preferences". +

M_up and M_dwn buttons select next/previous entry from memory list. M_Wri adds entry to memory list from current rig frequency and mode and info field shows "MW ok". +
+

NOTE!!!
Check "pereferences/TRXcontor/Switch only between mode related memories"
Cqrlog TRXcontrol memories are categorized by mode (groups). CW, SSB(=AM+USB+LSB+FM), RTTY(=RTTY+DATA+PKTLSB+PKTUSB+PKTFM)[no mode selector for PKT* but you may "M wri" them anyway]. +So do not wonder if you get smaller amount of memories than in your list when pressing M_up and M_dwn with "Show mode related" checked. +

+ +
-TRX Control window Shows current frequency and buttons allow change of Band, mode, memory and rig. -
M_up and M_dwn buttons select next/previous entry from memory list. Buttons are current mode related. -
Example: If your Mode is SSB, only memories with mode USB or LSB will take effect from M-up/M_dwn buttons. -
M_Wri adds entry to memory list from current rig frequency and mode. -
-
With P-on/off/stb buttons current rig can be set ON, OFF or STANDBY (if it supports rigctld power commands). -
Default setting for power buttons is hidden. You can change it via dropdown menu "Preferences". +
You can set rig by double click of an memory row in Open memory list. Similar action happen also in Add/Modify memories. The differense is that you can keep + Open memory list open while loggeing qsos etc. Where as Add/Modify memories, when open, blocks other functionality. +
While Add/Modify memories is open you can use buttons in right frame. Texts of buttons are quite self explaining. +
Deleting a memory line, or all lines, do not have any further warning questions (Are you sure?). In case you deleted something wrong just close window with Cancel. No changes are recorded then. +
Closing Add/Modify memories is done with buttons OK or Cancel. Closing Open memory list window must be done using x at top right corner of window. +
Open memory list closes also if Add/Modify memories is opened. They can not be open at same time.

See also setting up TRXControl

diff --git a/help/img/h117.png b/help/img/h117.png index e5a6216147086b6a99344728e0f791aca157444d..bcb3f404ec41f62102a435123c1021bd0ba8628c 100644 GIT binary patch literal 19497 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 diff --git a/help/img/h118.png b/help/img/h118.png index 93145ceca228d01f4759d62640c2335fe8d27806..500ebc5efd73e380aa8cff976049e164a84b90c9 100644 GIT binary patch literal 23130 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 diff --git a/help/img/h121.png b/help/img/h121.png new file mode 100644 index 0000000000000000000000000000000000000000..52cbc0b3ff9d362b0e56d766cb821f7c675e474b GIT binary patch literal 28034 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 VH1;p38ARZ5O;e$PWQAm)hLfJA3+d=QvH(h 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 literal 0 HcmV?d00001 diff --git a/help/img/radio_memory.png b/help/img/radio_memory.png deleted file mode 100644 index 2bc9d022a25464acbf1d00e319683f365cfbf7c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8300 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 ABLDyZ diff --git a/src/dData.lfm b/src/dData.lfm index f6d21f6..6adec36 100644 --- a/src/dData.lfm +++ b/src/dData.lfm @@ -2,10 +2,10 @@ object dmData: TdmData OnCreate = DataModuleCreate OnDestroy = DataModuleDestroy OldCreateOrder = False - Height = 674 - HorizontalOffset = 149 - VerticalOffset = 254 - Width = 1024 + Height = 606 + HorizontalOffset = 408 + VerticalOffset = 52 + Width = 822 PPI = 96 object dsrMain: TDataSource DataSet = qCQRLOG diff --git a/src/dData.pas b/src/dData.pas index 44f597f..30b8652 100644 --- a/src/dData.pas +++ b/src/dData.pas @@ -179,7 +179,7 @@ type procedure UpgradeCommonDatabase(old_version : Integer); procedure PrepareMysqlConfigFile; procedure DeleteOldConfigFiles; - procedure GetCurrentFreqFromMem(var freq : Double; var mode : String; var bandwidth : Integer); + procedure GetCurrentFreqFromMem(var freq : Double; var mode : String; var bandwidth : Integer; var info : String); public MainCon : TSQLConnection; BandMapCon : TSQLConnection; @@ -316,8 +316,8 @@ type procedure RemoveLoTWUploadedFlag(id : Integer); procedure StoreFreqMemories(grid : TStringGrid); procedure LoadFreqMemories(grid : TStringGrid); - procedure GetPreviousFreqFromMem(var freq : Double; var mode : String; var bandwidth : Integer); - procedure GetNextFreqFromMem(var freq : Double; var mode : String; var bandwidth : Integer); + procedure GetPreviousFreqFromMem(var freq : Double; var mode : String; var bandwidth : Integer; var info : String); + procedure GetNextFreqFromMem(var freq : Double; var mode : String; var bandwidth : Integer; var info : String); procedure OpenFreqMemories(mode : String); procedure SaveBandChanges(band : String; BandBegin, BandEnd, BandCW, BandRTTY, BandSSB, RXOffset, TXOffset : Currency); procedure GetRXTXOffset(Freq : Currency; var RXOffset,TXOffset : Currency); @@ -329,7 +329,7 @@ var dmData : TdmData; handle : THandle; reg : TRegExpr; - + MemNR : array of integer; implementation @@ -1153,7 +1153,7 @@ begin end; tmrDBPing.Interval := CDB_PING_INT*1000; - tmrDBPing.Enabled := True + tmrDBPing.Enabled := True; end; procedure TdmData.DataModuleDestroy(Sender: TObject); @@ -3122,7 +3122,8 @@ begin Q1.SQL.Add(' id int NOT NULL AUTO_INCREMENT PRIMARY KEY,'); Q1.SQL.Add(' freq numeric(10,4) NOT NULL,'); Q1.SQL.Add(' mode varchar(10) NOT NULL,'); - Q1.SQL.Add(' bandwidth int NOT NULL'); + Q1.SQL.Add(' bandwidth int NOT NULL,'); + Q1.SQL.Add(' info varchar(25) NULL'); //null makes log backward compatible with old cqrlogs Q1.SQL.Add(') COLLATE '+QuotedStr('utf8_bin')+';'); if fDebugLevel>=1 then Writeln(Q1.SQL.Text); Q1.ExecSQL; @@ -3974,7 +3975,7 @@ end; procedure TdmData.StoreFreqMemories(grid : TStringGrid); const - C_INS = 'insert into freqmem (freq,mode,bandwidth) values (:freq,:mode,:bandwidth)'; + C_INS = 'insert into freqmem (freq,mode,bandwidth,info) values (:freq,:mode,:bandwidth,:info)'; C_DEL = 'delete from freqmem'; var i : Integer; @@ -3990,6 +3991,7 @@ begin Q.Params[0].AsFloat := StrToFloat(grid.Cells[0,i]); Q.Params[1].AsString := grid.Cells[1,i]; Q.Params[2].AsInteger := StrToInt(grid.Cells[2,i]); + Q.Params[3].AsString := grid.Cells[3,i]; Q.ExecSQL end except @@ -4005,7 +4007,7 @@ end; procedure TdmData.LoadFreqMemories(grid : TStringGrid); const - C_SEL = 'select freq,mode,bandwidth from freqmem order by id'; + C_SEL = 'select freq,mode,bandwidth,info from freqmem order by id'; begin try grid.RowCount := 1; @@ -4018,6 +4020,7 @@ begin grid.Cells[0,grid.RowCount-1] := FloatToStrF(Q.Fields[0].AsFloat,ffFixed,15,3); grid.Cells[1,grid.RowCount-1] := Q.Fields[1].AsString; grid.Cells[2,grid.RowCount-1] := IntToStr(Q.Fields[2].AsInteger); + grid.Cells[3,grid.RowCount-1] := Q.Fields[3].AsString; Q.Next end finally @@ -4028,54 +4031,89 @@ end; procedure TdmData.OpenFreqMemories(mode : String); const - C_SEL = 'select id,freq,mode,bandwidth from freqmem'; + C_SEL = 'select id,freq,mode,bandwidth,info from freqmem'; +var + c : integer; begin qFreqMem.Close; if trFreqMem.Active then trFreqMem.Rollback; - if (mode='') then - qFreqMem.SQL.Text := C_SEL + ' order by id' - else begin - if ((mode='LSB') or (mode='USB') or (mode='FM') or (mode='AM')) then - begin - qFreqMem.SQL.Text := C_SEL + ' where (mode = ' + QuotedStr('LSB') +') or ' + - '(mode = ' + QuotedStr('USB') + ') or (mode = ' + QuotedStr('FM') + ') or ' + - '(mode = ' + QuotedStr('AM')+ ') order by id' - end - else - qFreqMem.SQL.Text := C_SEL + ' where (mode = ' + QuotedStr(mode) +') order by id' - end; + if not cqrini.ReadBool('TRX','MemModeRelated',False) then mode:=''; //use related settings!! + if (mode='') then qFreqMem.SQL.Text := C_SEL + ' order by id' + else + begin + case mode of + 'LSB','USB','FM','AM' :qFreqMem.SQL.Text := C_SEL + ' where (mode = ' + QuotedStr('LSB') +') or ' + + '(mode = ' + QuotedStr('USB') + ') or (mode = ' + QuotedStr('FM') + ') or ' + + '(mode = ' + QuotedStr('AM')+ ') order by id'; + 'RTTY','PKTLSB','PKTUSB', + 'PKTFM','DATA' :qFreqMem.SQL.Text := C_SEL + ' where (mode = ' + QuotedStr('RTTY') +') or ' + + '(mode = ' + QuotedStr('PKTLSB') + ') or (mode = ' + QuotedStr('PKTUSB') + ') or ' + + '(mode = ' + QuotedStr('PKTFM') + ') or (mode = ' + QuotedStr('DATA')+ ') order by id'; + else + qFreqMem.SQL.Text := C_SEL + ' where (mode = ' + QuotedStr(mode) +') order by id' + end; + end; if fDebugLevel>=1 then Writeln('FreqmemSql:',qFreqMem.SQL.Text); trFreqMem.StartTransaction; qFreqMem.Open; + qFreqMem.First; + qFreqMem.prior; + fFirstMemId := qFreqMem.Fields[0].AsInteger; + + c:=-1; + setLength(MemNR,qFreqMem.RecordCount+1); + repeat + begin + inc(c); + MemNR[c]:= qFreqMem.Fields[0].AsInteger; + if fDebugLevel>=1 then Writeln('FreqmemNR:',c,'=',MemNR[c]); + qFreqMem.Next; + end; + until qFreqMem.Eof; + qFreqMem.Last; fLastMemId := qFreqMem.Fields[0].AsInteger; - qFreqMem.First; - fFirstMemId := qFreqMem.Fields[0].AsInteger; + if fDebugLevel>=1 then Writeln('FreqmemFirst:',fFirstMemId,' FreqmemLast:',fLastMemId); end; -procedure TdmData.GetCurrentFreqFromMem(var freq : Double; var mode : String; var bandwidth : Integer); +procedure TdmData.GetCurrentFreqFromMem(var freq : Double; var mode : String; var bandwidth : Integer; var info : String); +var + c: integer; begin - if (qFreqMem.RecordCount > 0) then + if qFreqMem.Active and (qFreqMem.RecordCount > 0) then begin freq := qFreqMem.Fields[1].AsFloat; mode := qFreqMem.Fields[2].AsString; - bandwidth := qFreqMem.Fields[3].AsInteger + bandwidth := qFreqMem.Fields[3].AsInteger; + info := qFreqMem.Fields[4].AsString; + frmTRXControl.edtMemNr.Font.Color:= clDefault; // May be red if previous was "None" + if info='' then + begin + for c:=0 to qFreqMem.RecordCount do + if MemNR[c]= qFreqMem.Fields[0].AsInteger then break; + frmTRXControl.edtMemNr.Text := IntToStr(c+1)+' of '+ IntToStr(qFreqMem.RecordCount ); + end + else frmTRXControl.edtMemNr.Text := info; + frmTRXControl.infosetstage :=1; end else begin freq := 0; mode := 'CW'; - bandwidth := 0 + bandwidth := 0; + frmTRXControl.edtMemNr.Font.Color:= clRed; + frmTRXControl.edtMemNr.Text := 'None'; + frmTRXControl.infosetstage :=1; end; if fDebugLevel>=1 then Writeln('Freq:',freq,' mode:',mode,' bandwidth:',bandwidth); end; -procedure TdmData.GetPreviousFreqFromMem(var freq : Double; var mode : String; var bandwidth : Integer); +procedure TdmData.GetPreviousFreqFromMem(var freq : Double; var mode : String; var bandwidth : Integer; var info : String); begin if not qFreqMem.Active then begin @@ -4085,16 +4123,17 @@ begin else begin //if qFreqMem.Bof then doesn't work because when it's on the first record, it has to call Prior again to be sure that //it's really first - that caused user has to click twice to get on the end of the table + if fDebugLevel>=1 then writeln('-----------UP---', qFreqMem.Fields[0].AsInteger,' ', fFirstMemId); if (fFirstMemId = qFreqMem.Fields[0].AsInteger) then qFreqMem.Last else qFreqMem.Prior end; - GetCurrentFreqFromMem(freq,mode,bandwidth) + GetCurrentFreqFromMem(freq,mode,bandwidth,info) end; -procedure TdmData.GetNextFreqFromMem(var freq : Double; var mode : String; var bandwidth : Integer); +procedure TdmData.GetNextFreqFromMem(var freq : Double; var mode : String; var bandwidth : Integer; var info : String); begin if not qFreqMem.Active then begin @@ -4103,12 +4142,13 @@ begin end else begin //if qFreqMem.Eof then the same problem like with Bof() + if fDebugLevel>=1 then writeln('-----------DN---', qFreqMem.Fields[0].AsInteger,' ', fLastMemId); if (fLastMemId = qFreqMem.Fields[0].AsInteger) then qFreqMem.First else qFreqMem.Next end; - GetCurrentFreqFromMem(freq,mode,bandwidth) + GetCurrentFreqFromMem(freq,mode,bandwidth,info) end; diff --git a/src/fAddRadioMemory.lfm b/src/fAddRadioMemory.lfm index 32a8246..40b82f8 100644 --- a/src/fAddRadioMemory.lfm +++ b/src/fAddRadioMemory.lfm @@ -1,85 +1,149 @@ object frmAddRadioMemory: TfrmAddRadioMemory - Left = 420 - Height = 204 - Top = 260 + Left = 32 + Height = 222 + Top = 235 Width = 308 BorderStyle = bsDialog Caption = 'New memory' - ClientHeight = 204 + ClientHeight = 222 ClientWidth = 308 OnCreate = FormCreate OnShow = FormShow Position = poOwnerFormCenter - LCLVersion = '1.4.4.0' - object Label1: TLabel - Left = 16 + LCLVersion = '1.8.4.0' + object lblFreq: TLabel + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = Owner + Left = 12 Height = 17 - Top = 16 + Top = 2 Width = 112 + BorderSpacing.Left = 12 + BorderSpacing.Top = 2 Caption = 'Frequency in kHz' ParentColor = False end object edtFreq: TEdit - Left = 16 - Height = 27 - Top = 40 + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = lblFreq + AnchorSideTop.Side = asrBottom + Left = 12 + Height = 34 + Top = 19 Width = 192 + BorderSpacing.Left = 12 TabOrder = 0 Text = '0' end - object Label2: TLabel - Left = 16 + object lblMode: TLabel + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = edtFreq + AnchorSideTop.Side = asrBottom + Left = 12 Height = 17 - Top = 80 - Width = 39 + Top = 55 + Width = 36 + BorderSpacing.Left = 12 + BorderSpacing.Top = 2 Caption = 'Mode' ParentColor = False end object cmbMode: TComboBox - Left = 16 - Height = 29 - Top = 104 + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = lblMode + AnchorSideTop.Side = asrBottom + Left = 12 + Height = 34 + Top = 72 Width = 192 AutoComplete = True AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Left = 12 CharCase = ecUppercase ItemHeight = 0 TabOrder = 1 Text = 'CMBMODE' end - object Label3: TLabel - Left = 16 + object lblWidth: TLabel + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = cmbMode + AnchorSideTop.Side = asrBottom + Left = 12 Height = 17 - Top = 144 - Width = 102 + Top = 108 + Width = 100 + BorderSpacing.Left = 12 + BorderSpacing.Top = 2 Caption = 'Bandwidth (Hz)' ParentColor = False end object edtWidth: TEdit - Left = 16 - Height = 27 - Top = 172 + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = lblWidth + AnchorSideTop.Side = asrBottom + Left = 12 + Height = 34 + Top = 125 Width = 112 + BorderSpacing.Left = 12 TabOrder = 2 Text = '0' end object Button1: TButton - Left = 224 + AnchorSideTop.Control = Owner + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + Left = 221 Height = 25 - Top = 16 + Top = 6 Width = 75 + Anchors = [akTop, akRight] + BorderSpacing.Top = 6 + BorderSpacing.Right = 12 Caption = 'OK' OnClick = Button1Click TabOrder = 3 end object Button2: TButton - Left = 224 + AnchorSideTop.Control = Button1 + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + Left = 221 Height = 25 - Top = 48 + Top = 37 Width = 75 + Anchors = [akTop, akRight] + BorderSpacing.Top = 6 + BorderSpacing.Right = 12 Cancel = True Caption = 'Cancel' ModalResult = 2 TabOrder = 4 end + object lblInfo: TLabel + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = edtWidth + AnchorSideTop.Side = asrBottom + Left = 12 + Height = 17 + Top = 161 + Width = 25 + BorderSpacing.Left = 12 + BorderSpacing.Top = 2 + Caption = 'Info' + ParentColor = False + end + object edtInfo: TEdit + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = lblInfo + AnchorSideTop.Side = asrBottom + Left = 12 + Height = 34 + Top = 178 + Width = 284 + BorderSpacing.Left = 12 + MaxLength = 25 + TabOrder = 5 + end end diff --git a/src/fAddRadioMemory.pas b/src/fAddRadioMemory.pas index 59d3c00..c53b8b2 100644 --- a/src/fAddRadioMemory.pas +++ b/src/fAddRadioMemory.pas @@ -16,11 +16,13 @@ type Button1: TButton; Button2: TButton; cmbMode: TComboBox; + edtInfo: TEdit; edtFreq: TEdit; edtWidth: TEdit; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; + lblFreq: TLabel; + lblMode: TLabel; + lblWidth: TLabel; + lblInfo: TLabel; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender : TObject); procedure FormShow(Sender: TObject); diff --git a/src/fRadioMemories.lfm b/src/fRadioMemories.lfm index a4a0667..5dfb9bd 100644 --- a/src/fRadioMemories.lfm +++ b/src/fRadioMemories.lfm @@ -1,105 +1,157 @@ object frmRadioMemories: TfrmRadioMemories - Left = 476 - Height = 510 - Top = 232 - Width = 482 + Left = 120 + Height = 415 + Top = 125 + Width = 578 Caption = 'Memories' - ClientHeight = 510 - ClientWidth = 482 + ClientHeight = 415 + ClientWidth = 578 OnClose = FormClose OnShow = FormShow - LCLVersion = '1.4.4.0' + LCLVersion = '1.8.4.0' object sgrdMem: TStringGrid + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = Owner Left = 0 - Height = 510 + Height = 415 Top = 0 - Width = 379 + Width = 478 Align = alClient - ColCount = 3 + ColCount = 4 + Columns = < + item + Title.Caption = 'Freq (kHz)' + Width = 81 + end + item + Title.Caption = 'Mode' + Width = 74 + end + item + Title.Caption = 'Bandwidth (Hz)' + Width = 109 + end + item + Title.Caption = 'Info' + Width = 211 + end> FixedCols = 0 RowCount = 1 TabOrder = 0 OnCompareCells = sgrdMemCompareCells + OnDblClick = sgrdMemDblClick + OnSelectCell = sgrdMemSelectCell ColWidths = ( - 132 - 104 - 115 - ) - Cells = ( - 3 - 0 - 0 - 'Freq (kHz)' - 1 - 0 - 'Mode' - 2 - 0 - 'Bandwidth (Hz)' + 81 + 74 + 109 + 211 ) end object Panel1: TPanel - Left = 379 - Height = 510 + AnchorSideLeft.Side = asrCenter + AnchorSideTop.Control = Owner + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = sgrdMem + Left = 478 + Height = 415 Top = 0 - Width = 103 + Width = 100 Align = alRight + Anchors = [akTop, akRight] BevelOuter = bvNone - ClientHeight = 510 - ClientWidth = 103 + ClientHeight = 415 + ClientWidth = 100 TabOrder = 1 - object Button1: TButton - Left = 16 + object btnCancel: TButton + AnchorSideLeft.Control = btnOK + AnchorSideTop.Control = btnOK + AnchorSideTop.Side = asrBottom + Left = 13 Height = 25 - Top = 48 + Top = 43 Width = 75 + BorderSpacing.Top = 6 Cancel = True Caption = 'Cancel' ModalResult = 2 TabOrder = 0 end - object Button2: TButton - Left = 16 + object btnAdd: TButton + AnchorSideLeft.Control = btnOK + AnchorSideTop.Control = btnCancel + AnchorSideTop.Side = asrBottom + Left = 13 Height = 25 - Top = 128 + Top = 110 Width = 75 Action = acAdd + BorderSpacing.Top = 42 TabOrder = 1 end - object Button3: TButton - Left = 16 + object btnEdit: TButton + AnchorSideLeft.Control = btnOK + AnchorSideTop.Control = btnAdd + AnchorSideTop.Side = asrBottom + Left = 13 Height = 25 - Top = 160 + Top = 141 Width = 75 Action = acEdit + BorderSpacing.Top = 6 TabOrder = 2 end - object Button4: TButton - Left = 16 + object btnDelete: TButton + AnchorSideLeft.Control = btnOK + AnchorSideTop.Control = btnEdit + AnchorSideTop.Side = asrBottom + Left = 13 Height = 25 - Top = 200 + Top = 172 Width = 75 Action = acDelete + BorderSpacing.Top = 6 TabOrder = 3 end - object btnFunction: TButton - Left = 16 + object btnMore: TButton + AnchorSideLeft.Control = btnOK + AnchorSideTop.Control = btnDelAll + AnchorSideTop.Side = asrBottom + Left = 13 Height = 25 - Top = 254 + Top = 258 Width = 75 + BorderSpacing.Top = 30 Caption = 'More...' - OnClick = btnFunctionClick + OnClick = btnMoreClick TabOrder = 4 end object btnOK: TButton - Left = 16 + AnchorSideLeft.Control = Panel1 + AnchorSideLeft.Side = asrCenter + AnchorSideTop.Control = Panel1 + Left = 13 Height = 25 - Top = 16 + Top = 12 Width = 75 + BorderSpacing.Top = 12 Caption = 'OK' ModalResult = 1 TabOrder = 5 end + object btnDelAll: TButton + AnchorSideLeft.Control = btnOK + AnchorSideTop.Control = btnDelete + AnchorSideTop.Side = asrBottom + Left = 13 + Height = 25 + Top = 203 + Width = 75 + BorderSpacing.Top = 6 + Caption = 'Delete All' + OnClick = btnDelAllClick + TabOrder = 6 + end end object acMem: TActionList left = 24 diff --git a/src/fRadioMemories.pas b/src/fRadioMemories.pas index f8f52f4..e15a338 100644 --- a/src/fRadioMemories.pas +++ b/src/fRadioMemories.pas @@ -22,12 +22,13 @@ type acSortByFreq: TAction; acUp: TAction; acMem: TActionList; - Button1: TButton; - Button2: TButton; - Button3: TButton; - Button4: TButton; - btnFunction: TButton; + btnCancel: TButton; + btnAdd: TButton; + btnEdit: TButton; + btnDelete: TButton; + btnMore: TButton; btnOK: TButton; + btnDelAll: TButton; MenuItem1: TMenuItem; MenuItem2: TMenuItem; MenuItem3: TMenuItem; @@ -43,32 +44,42 @@ type procedure acExportExecute(Sender: TObject); procedure acImportExecute(Sender: TObject); procedure acSortByFreqExecute(Sender: TObject); - procedure btnFunctionClick(Sender: TObject); + procedure btnDelAllClick(Sender: TObject); + procedure btnMoreClick(Sender: TObject); procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); procedure FormShow(Sender: TObject); procedure sgrdMemCompareCells(Sender: TObject; ACol, ARow, BCol, BRow: Integer; var Result: integer); + procedure sgrdMemDblClick(Sender: TObject); + procedure sgrdMemSelectCell(Sender: TObject; aCol, aRow: Integer; + var CanSelect: Boolean); private - procedure AddToGrid(freq,mode,bandwidth : String); + + procedure AddToGrid(freq,mode,bandwidth,info : String); + public { public declarations } + ShowMode : Boolean; end; var frmRadioMemories: TfrmRadioMemories; + dcRow : integer; + dcRowOk : boolean ; implementation {$R *.lfm} { TfrmRadioMemories } -uses dUtils, fAddRadioMemory; +uses dUtils, fAddRadioMemory, fTRXControl; -procedure TfrmRadioMemories.AddToGrid(freq,mode,bandwidth : String); +procedure TfrmRadioMemories.AddToGrid(freq,mode,bandwidth,info : String); begin sgrdMem.RowCount := sgrdMem.RowCount + 1; sgrdMem.Cells[0,sgrdMem.RowCount-1] := FloatToStrF(StrToFloat(freq),ffFixed,15,3); sgrdMem.Cells[1,sgrdMem.RowCount-1] := mode; - sgrdMem.Cells[2,sgrdMem.RowCount-1] := bandwidth + sgrdMem.Cells[2,sgrdMem.RowCount-1] := bandwidth; + sgrdMem.Cells[3,sgrdMem.RowCount-1] := info; end; procedure TfrmRadioMemories.acAddExecute(Sender: TObject); @@ -77,7 +88,7 @@ begin try if frmAddRadioMemory.ShowModal = mrOK then begin - AddToGrid(frmAddRadioMemory.edtFreq.Text,frmAddRadioMemory.cmbMode.Text,frmAddRadioMemory.edtWidth.Text) + AddToGrid(frmAddRadioMemory.edtFreq.Text,frmAddRadioMemory.cmbMode.Text,frmAddRadioMemory.edtWidth.Text,frmAddRadioMemory.edtInfo.Text) end finally FreeAndNil(frmAddRadioMemory) @@ -92,6 +103,18 @@ begin sgrdMem.DeleteRow(sgrdMem.Row) end; +procedure TfrmRadioMemories.btnDelAllClick(Sender: TObject); +begin + if (sgrdMem.RowCount < 2) then + Application.MessageBox('There is nothing to delete','Info...',mb_ok+mb_IconInformation) + else + begin + repeat + sgrdMem.DeleteRow(sgrdMem.Row) + until (sgrdMem.RowCount < 2) ; + end; +end; + procedure TfrmRadioMemories.acEditExecute(Sender: TObject); begin frmAddRadioMemory := TfrmAddRadioMemory.Create(frmRadioMemories); @@ -99,11 +122,13 @@ begin frmAddRadioMemory.edtFreq.Text := sgrdMem.Cells[0,sgrdMem.Row]; frmAddRadioMemory.cmbMode.Text := sgrdMem.Cells[1,sgrdMem.Row]; frmAddRadioMemory.edtWidth.Text := sgrdMem.Cells[2,sgrdMem.Row]; + frmAddRadioMemory.edtInfo.Text := sgrdMem.Cells[3,sgrdMem.Row]; if frmAddRadioMemory.ShowModal = mrOK then begin sgrdMem.Cells[0,sgrdMem.Row] := FloatToStrF(StrToFloat(frmAddRadioMemory.edtFreq.Text),ffFixed,15,6); sgrdMem.Cells[1,sgrdMem.Row] := frmAddRadioMemory.cmbMode.Text; - sgrdMem.Cells[2,sgrdMem.Row] := frmAddRadioMemory.edtWidth.Text + sgrdMem.Cells[2,sgrdMem.Row] := frmAddRadioMemory.edtWidth.Text; + sgrdMem.Cells[3,sgrdMem.Row] := frmAddRadioMemory.edtInfo.Text end finally FreeAndNil(frmAddRadioMemory) @@ -120,7 +145,7 @@ begin l := TStringList.Create; try for i:=1 to sgrdMem.RowCount-1 do - l.Add(sgrdMem.Cells[0,i]+';'+sgrdMem.Cells[1,i]+';'+sgrdMem.Cells[2,i]); + l.Add(sgrdMem.Cells[0,i]+';'+sgrdMem.Cells[1,i]+';'+sgrdMem.Cells[2,i]+';'+sgrdMem.Cells[3,i]); l.SaveToFile(dlgSave.FileName); ShowMessage('File saved to '+dlgSave.FileName) @@ -133,13 +158,14 @@ end; procedure TfrmRadioMemories.acImportExecute(Sender: TObject); const C_ERR = 'File has wrong format at line %d'+LineEnding+LineEnding+ - 'Right format is freq(in kHz);mode;bandwidth' +LineEnding+LineEnding+ 'e.g.'+LineEnding+LineEnding+ - '10120.0;CW;300'; + 'Right format is freq(in kHz);mode;bandwidth,info' +LineEnding+LineEnding+ 'e.g.'+LineEnding+LineEnding+ + '10120.0;CW;300.text'; type TFreq = record freq : String[20]; mode : String[10]; width : String[8]; + info : String[25]; end; var @@ -163,7 +189,7 @@ begin inc(i); a := dmUtils.Explode(';',l); - if (Length(a)<>3) then + if (Length(a)<>4) then begin Application.MessageBox(PChar(Format(C_ERR,[i])),'Error...',mb_OK+mb_IconError); exit @@ -190,12 +216,13 @@ begin SetLength(d,i); d[i-1].freq := a[0]; d[i-1].mode := a[1]; - d[i-1].width := a[2] + d[i-1].width := a[2]; + d[i-1].info := a[3]; end; for i:= 0 to Length(d)-1 do begin - AddToGrid(d[i].freq, d[i].mode, d[i].width) + AddToGrid(d[i].freq, d[i].mode, d[i].width,d[i].info) end; ShowMessage('File has been imported') @@ -210,25 +237,26 @@ begin sgrdMem.SortColRow(true, 0, sgrdMem.FixedRows, sgrdMem.RowCount-1) end; -procedure TfrmRadioMemories.btnFunctionClick(Sender: TObject); +procedure TfrmRadioMemories.btnMoreClick(Sender: TObject); var p : TPoint; begin p.x := 10; p.y := 10; - p := btnFunction.ClientToScreen(p); + p := btnMore.ClientToScreen(p); popMem.PopUp(p.x, p.y) end; procedure TfrmRadioMemories.FormClose(Sender: TObject; var CloseAction: TCloseAction); begin - dmUtils.SaveWindowPos(frmRadioMemories) + dmUtils.SaveWindowPos(frmRadioMemories); end; procedure TfrmRadioMemories.FormShow(Sender: TObject); begin - dmUtils.LoadWindowPos(frmRadioMemories) + dmUtils.LoadWindowPos(frmRadioMemories); + ShowMode := False; end; procedure TfrmRadioMemories.sgrdMemCompareCells(Sender: TObject; ACol, ARow, @@ -239,5 +267,40 @@ begin result := -result end; +procedure TfrmRadioMemories.sgrdMemDblClick(Sender: TObject); +var //set rig frequeny from memory table with doubleclick + freq :Double; + mode :String; + bandwidth :Integer; + info :String; +begin + if dcRowOk then + begin + freq := StrToFloat(sgrdMem.Cells[0,dcRow]); + mode := sgrdMem.Cells[1,dcRow]; + bandwidth := StrToInt(sgrdMem.Cells[2,dcRow]); + info := sgrdMem.Cells[3,dcRow]; + if freq > 0 then + Begin + frmTRXControl.SetFreqModeBandWidth(freq,mode,bandwidth); + if (dcRow = sgrdMem.RowCount-1) then + frmTRXControl.edtMemNr.Font.Color:= clFuchsia + else + frmTRXControl.edtMemNr.Font.Color:= clDefault; + if info='' then frmTRXControl.edtMemNr.Text := 'M '+IntToStr(dcRow+1) + else frmTRXControl.edtMemNr.Text := info; + frmTRXControl.infosetstage :=1; + end; + dcRowOk :=false; //we handeld this one + end; +end; + +procedure TfrmRadioMemories.sgrdMemSelectCell(Sender: TObject; aCol, + aRow: Integer; var CanSelect: Boolean); +begin + dcRow:=aRow; //remember clicked row and handle it with ondblclick + dcRowOk :=true; +end; + end. diff --git a/src/fTRXControl.lfm b/src/fTRXControl.lfm index a10ad17..77d2331 100644 --- a/src/fTRXControl.lfm +++ b/src/fTRXControl.lfm @@ -1,12 +1,12 @@ object frmTRXControl: TfrmTRXControl - Left = 804 - Height = 277 - Top = 52 - Width = 307 + Left = 877 + Height = 321 + Top = 3 + Width = 284 Anchors = [] Caption = 'TRX control' - ClientHeight = 254 - ClientWidth = 307 + ClientHeight = 296 + ClientWidth = 284 Icon.Data = { BE1000000000010001002020000001002000A810000016000000280000002000 0000400000000100200000000000001000006400000064000000000000000000 @@ -153,158 +153,159 @@ object frmTRXControl: TfrmTRXControl OnKeyDown = FormKeyDown OnKeyUp = FormKeyUp OnShow = FormShow - LCLVersion = '1.8.2.0' + LCLVersion = '2.0.0.4' object gbMode: TGroupBox - Left = 240 - Height = 254 - Top = 0 - Width = 67 - Align = alRight + AnchorSideLeft.Control = gbVfo + AnchorSideTop.Control = gbVfo + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Side = asrBottom + Left = 205 + Height = 243 + Top = 48 + Width = 78 + Anchors = [akTop, akRight] + BorderSpacing.Right = 1 Caption = ' Mode ' - ClientHeight = 238 - ClientWidth = 65 + ClientHeight = 225 + ClientWidth = 76 TabOrder = 0 object btnCW: TButton AnchorSideLeft.Control = gbMode AnchorSideTop.Control = gbMode - Left = 6 + Left = 13 Height = 25 - Top = 1 + Top = 0 Width = 51 - BorderSpacing.Left = 6 - BorderSpacing.Top = 1 + BorderSpacing.Left = 13 Caption = 'CW' OnClick = btnCWClick TabOrder = 0 end object btnSSB: TButton - AnchorSideLeft.Control = gbMode + AnchorSideLeft.Control = btnCW AnchorSideTop.Control = btnCW AnchorSideTop.Side = asrBottom - Left = 6 + Left = 13 Height = 25 - Top = 27 + Top = 25 Width = 51 - BorderSpacing.Left = 6 - BorderSpacing.Top = 1 Caption = 'SSB' OnClick = btnSSBClick TabOrder = 1 end object btnRTTY: TButton - AnchorSideLeft.Control = gbMode + AnchorSideLeft.Control = btnCW AnchorSideTop.Control = btnSSB AnchorSideTop.Side = asrBottom - Left = 6 + Left = 13 Height = 25 - Top = 53 + Top = 50 Width = 51 - BorderSpacing.Left = 6 - BorderSpacing.Top = 1 Caption = 'RTTY' OnClick = btnRTTYClick TabOrder = 2 end object btnAM: TButton - AnchorSideLeft.Control = gbMode + AnchorSideLeft.Control = btnCW AnchorSideTop.Control = btnRTTY AnchorSideTop.Side = asrBottom - Left = 6 + Left = 13 Height = 25 - Top = 79 + Top = 75 Width = 51 - BorderSpacing.Left = 6 - BorderSpacing.Top = 1 Caption = 'AM' OnClick = btnAMClick TabOrder = 3 end object btnFM: TButton - AnchorSideLeft.Control = gbMode + AnchorSideLeft.Control = btnCW AnchorSideTop.Control = btnAM AnchorSideTop.Side = asrBottom - Left = 6 + Left = 13 Height = 25 - Top = 105 + Top = 100 Width = 51 - BorderSpacing.Left = 6 - BorderSpacing.Top = 1 Caption = 'FM' OnClick = btnFMClick TabOrder = 4 end object btnMemUp: TButton - AnchorSideLeft.Control = gbMode + AnchorSideLeft.Control = btnCW AnchorSideTop.Control = btnFM + AnchorSideTop.Side = asrBottom AnchorSideRight.Side = asrBottom - Left = 6 + Left = 13 Height = 25 - Top = 106 + Top = 125 Width = 51 - BorderSpacing.Left = 6 - BorderSpacing.Top = 1 BorderSpacing.Right = 6 Caption = 'M up' OnClick = btnMemUpClick TabOrder = 5 end object btnMemDwn: TButton - AnchorSideLeft.Control = gbMode + AnchorSideLeft.Control = btnCW AnchorSideTop.Control = btnMemUp AnchorSideTop.Side = asrBottom AnchorSideBottom.Side = asrBottom - Left = 6 + Left = 13 Height = 25 - Top = 132 + Top = 150 Width = 51 - BorderSpacing.Left = 6 - BorderSpacing.Top = 1 Caption = 'M dwn' OnClick = btnMemDwnClick TabOrder = 6 end object btnMemWri: TButton - AnchorSideLeft.Control = gbMode + AnchorSideLeft.Control = btnCW AnchorSideTop.Control = btnMemDwn AnchorSideTop.Side = asrBottom AnchorSideBottom.Side = asrBottom - Left = 6 + Left = 13 Height = 25 - Top = 158 + Top = 182 Width = 51 - BorderSpacing.Left = 6 - BorderSpacing.Top = 1 + BorderSpacing.Top = 7 Caption = 'M Wri' + Font.Color = clRed OnClick = btnMemWriClick + ParentFont = False TabOrder = 7 end end object pnlMain: TPanel + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = Owner Left = 0 - Height = 254 + Height = 296 Top = 0 - Width = 240 - Align = alClient + Width = 200 + Align = alLeft BevelOuter = bvNone Caption = 'pnlMain' - ClientHeight = 254 - ClientWidth = 240 + ClientHeight = 296 + ClientWidth = 200 TabOrder = 1 - object gbVfo: TGroupBox - Left = 0 - Height = 72 + object gbFreq: TGroupBox + AnchorSideLeft.Control = pnlMain + AnchorSideTop.Control = pnlMain + Left = 1 + Height = 59 Top = 0 - Width = 240 + Width = 199 Align = alTop + BorderSpacing.Left = 1 Caption = ' Freq ' - ClientHeight = 56 - ClientWidth = 238 + ClientHeight = 41 + ClientWidth = 197 TabOrder = 0 object lblFreq: TLabel - AnchorSideTop.Control = gbVfo - AnchorSideRight.Control = gbVfo + AnchorSideTop.Control = gbFreq + AnchorSideRight.Control = gbFreq AnchorSideRight.Side = asrBottom - Left = -3 + Left = -44 Height = 49 Top = 1 Width = 235 @@ -320,43 +321,21 @@ object frmTRXControl: TfrmTRXControl ParentColor = False ParentFont = False end - object btnVFOA: TButton - AnchorSideLeft.Control = gbVfo - AnchorSideTop.Control = gbVfo - Left = 6 - Height = 25 - Top = 1 - Width = 32 - BorderSpacing.Left = 6 - BorderSpacing.Top = 1 - Caption = 'A' - TabOrder = 0 - Visible = False - end - object btnVFOB: TButton - AnchorSideLeft.Control = gbVfo - AnchorSideTop.Control = btnVFOA - AnchorSideTop.Side = asrBottom - Left = 6 - Height = 25 - Top = 27 - Width = 32 - BorderSpacing.Left = 6 - BorderSpacing.Top = 1 - Caption = 'B' - TabOrder = 1 - Visible = False - end end object gbBand: TGroupBox - Left = 0 - Height = 156 - Top = 72 - Width = 240 + AnchorSideLeft.Control = pnlMain + AnchorSideTop.Control = gbInfo + Left = 1 + Height = 159 + Top = 111 + Width = 199 Align = alClient + Anchors = [akTop, akLeft, akBottom] + BorderSpacing.Left = 1 + BorderSpacing.Top = 3 Caption = ' Band ' - ClientHeight = 140 - ClientWidth = 238 + ClientHeight = 141 + ClientWidth = 197 TabOrder = 1 object btn160m: TButton AnchorSideLeft.Control = gbBand @@ -422,7 +401,7 @@ object frmTRXControl: TfrmTRXControl AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = btn15m AnchorSideTop.Side = asrBottom - Left = 91 + Left = 70 Height = 25 Top = 84 Width = 56 @@ -437,7 +416,7 @@ object frmTRXControl: TfrmTRXControl AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = btn17m AnchorSideTop.Side = asrBottom - Left = 91 + Left = 70 Height = 25 Top = 58 Width = 56 @@ -452,7 +431,7 @@ object frmTRXControl: TfrmTRXControl AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = btn20m AnchorSideTop.Side = asrBottom - Left = 91 + Left = 70 Height = 25 Top = 32 Width = 56 @@ -466,7 +445,7 @@ object frmTRXControl: TfrmTRXControl AnchorSideLeft.Control = gbBand AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = gbBand - Left = 91 + Left = 70 Height = 25 Top = 6 Width = 56 @@ -480,7 +459,7 @@ object frmTRXControl: TfrmTRXControl AnchorSideTop.Control = gbBand AnchorSideRight.Control = gbBand AnchorSideRight.Side = asrBottom - Left = 176 + Left = 135 Height = 25 Top = 6 Width = 56 @@ -497,7 +476,7 @@ object frmTRXControl: TfrmTRXControl AnchorSideTop.Side = asrBottom AnchorSideRight.Control = gbBand AnchorSideRight.Side = asrBottom - Left = 176 + Left = 135 Height = 25 Top = 32 Width = 56 @@ -514,7 +493,7 @@ object frmTRXControl: TfrmTRXControl AnchorSideTop.Side = asrBottom AnchorSideRight.Control = gbBand AnchorSideRight.Side = asrBottom - Left = 176 + Left = 135 Height = 25 Top = 84 Width = 56 @@ -531,7 +510,7 @@ object frmTRXControl: TfrmTRXControl AnchorSideTop.Side = asrBottom AnchorSideRight.Control = gbBand AnchorSideRight.Side = asrBottom - Left = 176 + Left = 135 Height = 25 Top = 58 Width = 56 @@ -544,17 +523,19 @@ object frmTRXControl: TfrmTRXControl TabOrder = 11 end object pnlPower: TPanel - AnchorSideTop.Side = asrBottom + AnchorSideLeft.Control = gbBand + AnchorSideTop.Side = asrCenter AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = gbBand AnchorSideBottom.Side = asrBottom Left = 0 Height = 30 - Top = 110 - Width = 238 - Align = alBottom + Top = 111 + Width = 197 + Anchors = [akLeft, akRight, akBottom] BevelOuter = bvNone ClientHeight = 30 - ClientWidth = 238 + ClientWidth = 197 TabOrder = 12 Visible = False object btPon: TButton @@ -573,7 +554,7 @@ object frmTRXControl: TfrmTRXControl AnchorSideLeft.Control = pnlPower AnchorSideLeft.Side = asrCenter AnchorSideTop.Control = pnlPower - Left = 91 + Left = 70 Height = 25 Top = 0 Width = 56 @@ -586,7 +567,7 @@ object frmTRXControl: TfrmTRXControl AnchorSideTop.Control = pnlPower AnchorSideRight.Control = pnlPower AnchorSideRight.Side = asrBottom - Left = 176 + Left = 135 Height = 25 Top = 0 Width = 56 @@ -599,14 +580,19 @@ object frmTRXControl: TfrmTRXControl end end object pnlRig: TPanel + AnchorSideLeft.Control = pnlMain + AnchorSideRight.Control = gbInfo + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = pnlMain + AnchorSideBottom.Side = asrBottom Left = 0 Height = 26 - Top = 228 - Width = 240 + Top = 270 + Width = 200 Align = alBottom BevelOuter = bvNone ClientHeight = 26 - ClientWidth = 240 + ClientWidth = 200 ParentBidiMode = False TabOrder = 2 object rbRadio1: TRadioButton @@ -629,7 +615,7 @@ object frmTRXControl: TfrmTRXControl AnchorSideTop.Control = pnlRig AnchorSideRight.Control = pnlRig AnchorSideRight.Side = asrBottom - Left = 176 + Left = 136 Height = 23 Top = 1 Width = 57 @@ -643,36 +629,116 @@ object frmTRXControl: TfrmTRXControl TabOrder = 1 end end + object gbInfo: TGroupBox + AnchorSideLeft.Control = pnlMain + AnchorSideTop.Control = gbFreq + Left = 1 + Height = 46 + Top = 62 + Width = 199 + Align = alTop + BorderSpacing.Left = 1 + BorderSpacing.Top = 3 + Caption = 'Mem Info' + ClientHeight = 28 + ClientWidth = 197 + TabOrder = 3 + object edtMemNr: TEdit + AnchorSideLeft.Control = gbInfo + AnchorSideTop.Control = gbInfo + AnchorSideRight.Control = gbInfo + AnchorSideRight.Side = asrBottom + Cursor = crNone + Left = 6 + Height = 27 + Top = 0 + Width = 185 + Anchors = [akTop, akLeft, akRight] + AutoSize = False + AutoSelect = False + BorderSpacing.Left = 6 + BorderSpacing.Right = 6 + DragCursor = crNone + ParentFont = False + ReadOnly = True + TabOrder = 0 + end + end + end + object gbVfo: TGroupBox + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = pnlMain + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + Left = 205 + Height = 48 + Top = 0 + Width = 78 + Anchors = [akTop, akRight] + BorderSpacing.Right = 1 + Caption = 'Vfo' + ClientHeight = 30 + ClientWidth = 76 + TabOrder = 2 + object btnVFOA: TButton + AnchorSideLeft.Control = gbVfo + AnchorSideTop.Control = gbVfo + Left = 13 + Height = 25 + Top = 0 + Width = 25 + BorderSpacing.Left = 13 + Caption = 'A' + OnClick = btnVFOAClick + TabOrder = 0 + end + object btnVFOB: TButton + AnchorSideLeft.Control = btnVFOA + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = btnVFOA + Left = 38 + Height = 25 + Top = 0 + Width = 25 + Caption = 'B' + OnClick = btnVFOBClick + TabOrder = 1 + end end object tmrRadio: TTimer Enabled = False Interval = 500 OnTimer = tmrRadioTimer - left = 64 - top = 48 + left = 80 + top = 16 end object mnuMem: TMainMenu - left = 104 - top = 48 - object MenuItem1: TMenuItem + left = 40 + top = 16 + object mnuPref: TMenuItem Caption = 'Preferences' - object MenuItem2: TMenuItem - Action = acAddModMem + object mnuOpenMem: TMenuItem + Caption = 'Open memory list' + OnClick = acAddModMemExecute end - object MenuItem3: TMenuItem + object mnuAddMod: TMenuItem + Action = acAddModMem + Caption = 'Add/Modify memories' + end + object mnuShowPwr: TMenuItem Caption = 'Show Pwr buttons' Checked = True - OnClick = MenuItem3Click + OnClick = mnuShowPwrClick end - object MenuItem4: TMenuItem + object mnuProgPref: TMenuItem Caption = 'Preferences' - OnClick = MenuItem4Click + OnClick = mnuProgPrefClick end end end object acMem: TActionList - left = 144 - top = 48 + left = 56 + top = 16 object acAddModMem: TAction Caption = 'Add/Modify memory' OnExecute = acAddModMemExecute diff --git a/src/fTRXControl.pas b/src/fTRXControl.pas index 3cfd653..1b280ca 100644 --- a/src/fTRXControl.pas +++ b/src/fTRXControl.pas @@ -55,15 +55,19 @@ type btPoff: TButton; btPon: TButton; btPstby: TButton; + edtMemNr: TEdit; gbBand: TGroupBox; - gbVfo: TGroupBox; + gbFreq: TGroupBox; gbMode: TGroupBox; + gbInfo: TGroupBox; + gbVfo: TGroupBox; GroupBox4: TGroupBox; lblFreq: TLabel; - MenuItem1: TMenuItem; - MenuItem2: TMenuItem; - MenuItem3: TMenuItem; - MenuItem4: TMenuItem; + mnuOpenMem: TMenuItem; + mnuPref: TMenuItem; + mnuAddMod: TMenuItem; + mnuShowPwr: TMenuItem; + mnuProgPref: TMenuItem; mnuMem: TMainMenu; pnlRig: TPanel; pnlMain: TPanel; @@ -75,6 +79,8 @@ type procedure btnMemWriClick(Sender: TObject); procedure btnMemDwnClick(Sender: TObject); procedure btnMemUpClick(Sender: TObject); + procedure btnVFOAClick(Sender: TObject); + procedure btnVFOBClick(Sender: TObject); procedure btPoffClick(Sender: TObject); procedure btPonClick(Sender: TObject); procedure btPstbyClick(Sender: TObject); @@ -102,8 +108,8 @@ type procedure btnFMClick(Sender: TObject); procedure btnRTTYClick(Sender: TObject); procedure btnSSBClick(Sender: TObject); - procedure MenuItem3Click(Sender: TObject); - procedure MenuItem4Click(Sender: TObject); + procedure mnuShowPwrClick(Sender: TObject); + procedure mnuProgPrefClick(Sender: TObject); procedure rbRadio1Click(Sender: TObject); procedure rbRadio2Click(Sender: TObject); procedure tmrRadioTimer(Sender : TObject); @@ -143,6 +149,8 @@ type } AutoMode : Boolean; //Running : Boolean; + infosetstage : integer; + infosetfreq : String; procedure SynTRX; function GetFreqFromModeBand(band : Integer;smode : String) : String; @@ -166,6 +174,7 @@ type procedure LoadButtonCaptions; procedure SetDebugMode(DebugMode : Boolean); procedure LoadBandButtons; + function ListModeClose : Boolean; procedure HLTune(start:boolean); end; @@ -225,6 +234,7 @@ var ModeWas : String; //store mode while tuning with AM BwWas : integer; Tuning : Boolean = false; + MemRelated : boolean; implementation {$R *.lfm} @@ -342,6 +352,8 @@ var b : String = ''; f : Double; m : String; + oldG : integer; + mG : integer; begin if Assigned(radio) then begin @@ -353,6 +365,23 @@ begin lblFreq.Caption := FormatFloat(empty_freq+';;',f); UpdateModeButtons(m); ClearButtonsColor; + // this waits5 rig polls before lock freq set by memory. After that if freq chanfǵes (by vfo knob) clean info text + // stupid but works quite well + case infosetstage of + 4: begin + infosetfreq:= lblFreq.Caption; + inc(infosetstage); + end; + 5: begin + if (infosetfreq <> lblFreq.Caption) then + begin + edtMemNr.Text:=''; + infosetstage:=0; + end; + end; + else + if ((infosetstage > 0) and (infosetstage < 4)) then inc(infosetstage); + end; if (f = 0) then begin if cqrini.ReadBool('BandMap','UseNewQSOFreqMode',False) then @@ -377,14 +406,35 @@ begin end; m := radio.GetRawMode; - if (m<>old_mode) then - begin - if not (((old_mode='LSB') or (old_mode='USB')) and ((m='LSB') or (m='USB'))) then - begin - old_mode := m; - dmData.OpenFreqMemories(old_mode) - end - end; + + if MemRelated <> cqrini.ReadBool('TRX','MemModeRelated',False) then //user changed settings + begin + MemRelated := cqrini.ReadBool('TRX','MemModeRelated',False); + dmData.OpenFreqMemories(m); + end + else + begin + if MemRelated then //use related settings; + begin + //Group1 'LSB','USB','FM','AM' + //Group2 'RTTY','PKTLSB','PKTUSB','PKTFM','DATA' + case old_mode of + 'LSB','USB','FM','AM' : oldG:=1; + 'RTTY','PKTLSB','PKTUSB','PKTFM','DATA' : oldG:=2; + else oldG:=0; //CW or unlisted + end; + case m of + 'LSB','USB','FM','AM' : mG:=1; + 'RTTY','PKTLSB','PKTUSB','PKTFM','DATA' : mG:=2; + else mG:=0; //CW or unlisted + end; + if (oldG<>mG)then + begin + old_mode := m; + dmData.OpenFreqMemories(old_mode) + end + end; + end; if (b='') then b := dmUtils.GetBandFromFreq(lblFreq.Caption); @@ -468,6 +518,7 @@ begin rbRadio1.Caption := cqrini.ReadString('TRX1','Desc','Radio 1'); rbRadio2.Caption := cqrini.ReadString('TRX2','Desc','Radio 2'); old_mode := ''; + MemRelated := cqrini.ReadBool('TRX','MemModeRelated',False); end; procedure TfrmTRXControl.btn10mClick(Sender: TObject); @@ -479,7 +530,8 @@ begin mode := GetActualMode; freq := GetFreqFromModeBand(8,mode); SetModeFreq(mode,freq); - btn10m.Font.Color := clRed; + btn10m.Font.Color := clRed; + frmTRXControl.edtMemNr.Text := ''; //clear memo nr display if any text from last M push end; procedure TfrmTRXControl.btn12mClick(Sender: TObject); @@ -491,7 +543,8 @@ begin mode := GetActualMode; freq := GetFreqFromModeBand(7,mode); SetModeFreq(mode,freq); - btn12m.Font.Color := clRed; + btn12m.Font.Color := clRed; + frmTRXControl.edtMemNr.Text := ''; //clear memo nr display if any text from last M push end; procedure TfrmTRXControl.btn15mClick(Sender: TObject); @@ -503,7 +556,8 @@ begin mode := GetActualMode; freq := GetFreqFromModeBand(6,mode); SetModeFreq(mode,freq); - btn15m.Font.Color := clRed; + btn15m.Font.Color := clRed; + frmTRXControl.edtMemNr.Text := ''; //clear memo nr display if any text from last M push end; procedure TfrmTRXControl.btn160mClick(Sender: TObject); @@ -515,7 +569,8 @@ begin mode := GetActualMode; freq := GetFreqFromModeBand(0,mode); SetModeFreq(mode,freq); - btn160m.Font.Color := clRed; + btn160m.Font.Color := clRed; + frmTRXControl.edtMemNr.Text := ''; //clear memo nr display if any text from last M push end; procedure TfrmTRXControl.btn17mClick(Sender: TObject); @@ -527,7 +582,8 @@ begin mode := GetActualMode; freq := GetFreqFromModeBand(5,mode); SetModeFreq(mode,freq); - btn17m.Font.Color := clRed; + btn17m.Font.Color := clRed; + frmTRXControl.edtMemNr.Text := ''; //clear memo nr display if any text from last M push end; procedure TfrmTRXControl.btn20mClick(Sender: TObject); @@ -539,7 +595,8 @@ begin mode := GetActualMode; freq := GetFreqFromModeBand(4,mode); SetModeFreq(mode,freq); - btn20m.Font.Color := clRed; + btn20m.Font.Color := clRed; + frmTRXControl.edtMemNr.Text := ''; //clear memo nr display if any text from last M push end; procedure TfrmTRXControl.btn2mClick(Sender: TObject); @@ -551,7 +608,8 @@ begin mode := GetActualMode; freq := GetFreqFromModeBand(10,mode); SetModeFreq(mode,freq); - btn2m.Font.Color := clRed; + btn2m.Font.Color := clRed; + frmTRXControl.edtMemNr.Text := ''; //clear memo nr display if any text from last M push end; procedure TfrmTRXControl.btn30mClick(Sender: TObject); @@ -563,7 +621,8 @@ begin mode := GetActualMode; freq := GetFreqFromModeBand(3,mode); SetModeFreq(mode,freq); - btn30m.Font.Color := clRed; + btn30m.Font.Color := clRed; + frmTRXControl.edtMemNr.Text := ''; //clear memo nr display if any text from last M push end; procedure TfrmTRXControl.btn40mClick(Sender: TObject); @@ -575,7 +634,8 @@ begin mode := GetActualMode; freq := GetFreqFromModeBand(2,mode); SetModeFreq(mode,freq); - btn40m.Font.Color := clRed; + btn40m.Font.Color := clRed; + frmTRXControl.edtMemNr.Text := ''; //clear memo nr display if any text from last M push end; procedure TfrmTRXControl.btn6mClick(Sender: TObject); @@ -587,7 +647,8 @@ begin mode := GetActualMode; freq := GetFreqFromModeBand(9,mode); SetModeFreq(mode,freq); - btn6m.Font.Color := clRed; + btn6m.Font.Color := clRed; + frmTRXControl.edtMemNr.Text := ''; //clear memo nr display if any text from last M push end; procedure TfrmTRXControl.btn70cmClick(Sender: TObject); @@ -599,7 +660,8 @@ begin mode := GetActualMode; freq := GetFreqFromModeBand(11,mode); SetModeFreq(mode,freq); - btn70cm.Font.Color := clRed; + btn70cm.Font.Color := clRed; + frmTRXControl.edtMemNr.Text := ''; //clear memo nr display if any text from last M push end; procedure TfrmTRXControl.btn80mClick(Sender: TObject); @@ -611,33 +673,28 @@ begin mode := GetActualMode; freq := GetFreqFromModeBand(1,mode); SetModeFreq(mode,freq); - btn80m.Font.Color := clRed; + btn80m.Font.Color := clRed; + frmTRXControl.edtMemNr.Text := ''; //clear memo nr display if any text from last M push end; -procedure TfrmTRXControl.btnAMClick(Sender: TObject); +procedure TfrmTRXControl.btnVFOAClick(Sender: TObject); begin - SetMode('AM',GetBandWidth('AM')) + if Assigned(radio) then radio.SetCurrVfo(VFOA); +end; +procedure TfrmTRXControl.btnVFOBClick(Sender: TObject); +begin + if Assigned(radio) then radio.SetCurrVfo(VFOB); end; - procedure TfrmTRXControl.btnCWClick(Sender: TObject); begin + frmTRXControl.edtMemNr.Text := ''; //clear memo nr display if any text from last M push SetMode('CW',GetBandWidth('CW')) end; - -procedure TfrmTRXControl.btnFMClick(Sender: TObject); -begin - SetMode('FM',GetBandWidth('FM')) -end; - -procedure TfrmTRXControl.btnRTTYClick(Sender: TObject); -begin - SetMode('RTTY',GetBandWidth('RTTY')) -end; - procedure TfrmTRXControl.btnSSBClick(Sender: TObject); var tmp : Currency; begin + frmTRXControl.edtMemNr.Text := ''; //clear memo nr display if any text from last M push if not TryStrToCurr(lblFreq.Caption,tmp) then SetMode('LSB',GetBandWidth('SSB')) else begin @@ -651,24 +708,39 @@ begin end end end; +procedure TfrmTRXControl.btnRTTYClick(Sender: TObject); +begin + frmTRXControl.edtMemNr.Text := ''; //clear memo nr display if any text from last M push + SetMode('RTTY',GetBandWidth('RTTY')) +end; +procedure TfrmTRXControl.btnAMClick(Sender: TObject); +begin + frmTRXControl.edtMemNr.Text := ''; //clear memo nr display if any text from last M push + SetMode('AM',GetBandWidth('AM')) +end; +procedure TfrmTRXControl.btnFMClick(Sender: TObject); +begin + frmTRXControl.edtMemNr.Text := ''; //clear memo nr display if any text from last M push + SetMode('FM',GetBandWidth('FM')) +end; -procedure TfrmTRXControl.MenuItem3Click(Sender: TObject); +procedure TfrmTRXControl.mnuShowPwrClick(Sender: TObject); begin if pnlPower.Visible then Begin pnlPower.Visible:= false; - Menuitem3.Checked:= false; + mnuShowPwr.Checked:= false; end else Begin pnlPower.Visible:= true; btPonClick(nil); //setting buttons visible sends PwrOn to sync button colors - Menuitem3.Checked:= true; + mnuShowPwr.Checked:= true; end; cqrini.WriteBool('TRX','PowerButtons',pnlPower.Visible); end; -procedure TfrmTRXControl.MenuItem4Click(Sender: TObject); +procedure TfrmTRXControl.mnuProgPrefClick(Sender: TObject); begin cqrini.WriteInteger('Pref', 'ActPageIdx', 5); //set DXCuster tab active. Number may change if preferences page change frmNewQSO.acPreferences.Execute @@ -696,20 +768,49 @@ begin thRig.Terminate; dmUtils.SaveWindowPos(frmTRXControl); end; +function TfrmTRXControl.ListModeClose : boolean; + +Begin + Result :=false; + if (frmRadioMemories <> nil) then + if (frmRadioMemories.ShowMode) then //is open in show list mode + begin + FreeAndNil(frmRadioMemories); + Result :=true; + end; +end; procedure TfrmTRXControl.acAddModMemExecute(Sender: TObject); + begin - frmRadioMemories := TfrmRadioMemories.Create(frmTRXControl); - try - dmData.LoadFreqMemories(frmRadioMemories.sgrdMem); - frmRadioMemories.ShowModal; - if frmRadioMemories.ModalResult = mrOK then - begin - dmData.StoreFreqMemories(frmRadioMemories.sgrdMem) - end - finally - FreeAndNil(frmRadioMemories) - end + ListModeClose; + frmRadioMemories := TfrmRadioMemories.Create(frmTRXControl); + if Sender = mnuOpenMem then //show only + Begin + frmRadioMemories.Show; + frmRadioMemories.Panel1.Visible:=false; + frmRadioMemories.ShowMode := True; + try + dmData.LoadFreqMemories(frmRadioMemories.sgrdMem); + except + on E: Exception do + ShowMessage( 'Could not load memories: '+ E.ClassName + #13#10 + E.Message ); + end; + end + else + begin + try + dmData.LoadFreqMemories(frmRadioMemories.sgrdMem); + frmRadioMemories.ShowModal; + if frmRadioMemories.ModalResult = mrOK then + begin + dmData.StoreFreqMemories(frmRadioMemories.sgrdMem) + end + finally + FreeAndNil(frmRadioMemories); + end; + end; + end; procedure TfrmTRXControl.btnMemWriClick(Sender: TObject); @@ -724,12 +825,13 @@ begin Dfreq := radio.GetFreqkHz; if Dfreq > 0 then begin + ListModeClose; frmRadioMemories := TfrmRadioMemories.Create(frmTRXControl); try dmData.LoadFreqMemories(frmRadioMemories.sgrdMem); bandwidth:= radio.GetPassOnly; mode := radio.GetRawMode; - freq := FloatToStrF(Dfreq,ffFixed,15,0); + freq := FloatToStrF(Dfreq,ffGeneral,15,0); if (mode<>'') then begin frmRadioMemories.sgrdMem.RowCount := frmRadioMemories.sgrdMem.RowCount + 1; @@ -737,11 +839,13 @@ begin frmRadioMemories.sgrdMem.Cells[1,frmRadioMemories.sgrdMem.RowCount-1] := mode; frmRadioMemories.sgrdMem.Cells[2,frmRadioMemories.sgrdMem.RowCount-1] := IntToStr(bandwidth); dmData.StoreFreqMemories(frmRadioMemories.sgrdMem); - lblFreq.Caption:='MemW OK'; + edtMemNr.Font.Color:= clRed; + edtMemNr.Text:='MW ok'; + infosetstage:=1; end finally - FreeAndNil(frmRadioMemories) - end + FreeAndNil(frmRadioMemories); + end; end; end; @@ -750,8 +854,10 @@ var freq : Double; mode : String; bandwidth : Integer; + info : String; begin - dmData.GetNextFreqFromMem(freq,mode,bandwidth); + dmData.GetNextFreqFromMem(freq,mode,bandwidth,info); + if dmData.DebugLevel>=1 then writeln('--------------FMWI',freq,' ',mode,' ',bandwidth,' ',info); if freq > 0 then SetFreqModeBandWidth(freq,mode,bandwidth) end; @@ -761,8 +867,9 @@ var freq : Double; mode : String; bandwidth : Integer; + info : String; begin - dmData.GetPreviousFreqFromMem(freq,mode,bandwidth); + dmData.GetPreviousFreqFromMem(freq,mode,bandwidth,info); if freq > 0 then SetFreqModeBandWidth(freq,mode,bandwidth) end; @@ -851,6 +958,7 @@ var port : Integer; poll : Integer; begin + if Assigned(radio) then begin FreeAndNil(radio); @@ -899,7 +1007,7 @@ begin Result := True; pnlPower.Visible := cqrini.ReadBool('TRX','PowerButtons',False); - Menuitem3.Checked := pnlPower.Visible; + mnuShowPwr.Checked := pnlPower.Visible; if pnlPower.Visible then btPonClick(nil); // all rigs do not support rigctld power switching //so we just put pwr button ON and send rigctld PWR ON cmd @@ -1145,7 +1253,6 @@ begin SetFreqModeBandWidth(f,mode,bandwidth) end; - function TfrmTRXControl.GetModeFreqNewQSO(var mode,freq : String) : Boolean; begin Result := False; @@ -1175,7 +1282,8 @@ begin btn10m.Font.Color := COLOR_WINDOWTEXT; btn6m.Font.Color := COLOR_WINDOWTEXT; btn2m.Font.Color := COLOR_WINDOWTEXT; - btn70cm.Font.Color := COLOR_WINDOWTEXT + btn70cm.Font.Color := COLOR_WINDOWTEXT; + end; function TfrmTRXControl.GetModeBand(var mode,band : String) : Boolean; @@ -1222,7 +1330,8 @@ begin btnAM.Font.Color := clRed else if mode = 'FM' then - btnFM.Font.Color := clRed + btnFM.Font.Color := clRed; + end; procedure TfrmTRXControl.Split(Up : Integer);