Fix for eQSL errors log

While checked my eQSL errors I found some confirmations that
	really were valid qsos and need to be added to Cqrlog.
	Then noted that RSTs were upside down because they are from
	opponent stations view.

	Because being lazy fixed eQSL errors file so that RSTs are ready swapped.
	Then, if error QSO is found to be valid and added to log by
	importing eQSL_errors.adi, the reports are right way round.

	I.E. eQSL RST_sent by opponent station is placed to RST_rcvd.

	RST-sent (eQSl RST-rcvd) is usually empty and must be edited afterwards,
	as well as removing eQSL/LoTW qsl sent mark if upload is needed.

	LoTW does not handle RSTs, this effects only eQSL.
This commit is contained in:
OH1KH 2022-05-27 08:55:19 +03:00
parent 17a8505fb7
commit 63241d4284
4 changed files with 27 additions and 6 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 119 KiB

View File

@ -32,6 +32,7 @@
Sometimes you find some "QSO not found" errors in LoTW or eQSL download. There are some reasons for that.<br>
<ul>
<li>QSO did not complete and you did not log that, but the opponent station thinks it is completed.</li>
<li>You forgot to set remote on and logged qso only to your digital mode program. (You find qso from it's log)
<li>People type in their old paper logs to computer and upload them to LoTW/eQSL. QSO is ok but it is somewhere in your earlier paper logs.</li>
<li>QSO may be an SWL report waiting to confirm via eQSL</li>
</ul><br>
@ -55,8 +56,12 @@ If you do not want to import all error qsos, or want to send a confirmation to e
<p>Here is a sample eQSL error file opened with Leafpad editor (that shows line numbers at left side).
LoTW error file looks very similar, but has some text more for every qso record.
<br><br>When you edit file do not touch the header of the file. Lines from 1 to 8 where header ends with "EOH" (End Of Header).
<br>You can remove qso records that you do not want to import to your log by removing all record's lines. For example here remove the CQ750RSI qso means
to remove lines 10 - 22. Adif tag APP_CQRLOG_ERROR:XXX specifies one error qso data lenght (to EOH tag) but it is actually not used for anything.
<br>You can remove qso records that you do not want to import to your log by removing all record's lines. For example here remove the F-21716 qso means
to remove lines 10 - 23. Adif tag &lt;APP_CQRLOG_ERROR:XXX specifies error label data lenght but it is actually not used for anything.
<br>There are also other comments starting with &lt;APP_CQRLOG_NOTE that are just for information.
<br><br><b>NOTE:</b>RST sent/rcvd are swapped to be ready for import to your log. I.E. senders RST_sent is placed to (your) RST_rcvd already.
<br>(This concerns mainly eQSL as LoTW does not handle RSTs)
<br>You just have to fix your RST_sent to proper value, as well as remove "LoTW/eQSL uploaded" mark if you want to upload this "found qso" to LoTW/eQSL after import.
</p><p>
<h5>SWL</h5>
Cqrlog fixes error record if adif tag APP_EQSL_SWL is found.<br>

View File

@ -578,18 +578,33 @@ Begin
Buf:=buf+'<EOR>'; //in case we have broken record in broken file (hit eof before it is time)
if LocalDbg then
Writeln('one record read: ',Buf);
//here we add some stuff to every record received. It does not mess up "qso in log" checking
//but makes record to be ready for write to error log if qso was not found in log
//=====================================
//check SWL and is so change contest_id to find those easier
//if there is tag QSLMSG move data of it to (comment to qso).
if pos('APP_EQSL_SWL:1>Y',uppercase(buf))>0 then
Begin
Cstamp:= '<CONTEST_ID:25>SWL_was_not_found_in_log!';
Buf:=StringReplace(buf,'<QSLMSG:','<COMMENT:',[rfIgnoreCase]);
Buf:=StringReplace(buf,'<QSLMSG:','<COMMENT:',[rfIgnoreCase]); //SWL should inform "qso with", put it to Comment field
Buf:=StringReplace(buf,'<RST_RCVD:0>','<RST_SENT+:3>SWL',[rfIgnoreCase]); //we need this for temp use
Buf:=StringReplace(buf,'<RST_SENT:','<RST_RCVD:',[rfIgnoreCase]);
Buf:=StringReplace(buf,'<RST_SENT:','<RST_RCVD:',[rfIgnoreCase]); //generate RST_s as "SWL" for own log (upload to eQSL)
Buf:=StringReplace(buf,'<RST_SENT+:','<RST_SENT:',[rfIgnoreCase]);
end
else
Begin
Cstamp:= '<CONTEST_ID:25>Qso_was_not_found_in_log!';
if pos('APP_LOTW',uppercase(buf))=0 then //it is eQSL
begin
Cstamp:= Cstamp+LineEnding+'<APP_CQRLOG_NOTE:61>RST sent/rcvd are swapped to be ready for import to your log!'
+LineEnding+'<APP_CQRLOG_NOTE:43>You have to fix your RST_SENT after import!';
Buf:=StringReplace(buf,'<RST_RCVD:','<RST_SENT+:',[rfIgnoreCase]); //swap sent/rcvd for own log import
Buf:=StringReplace(buf,'<RST_SENT:','<RST_RCVD:',[rfIgnoreCase]);
Buf:=StringReplace(buf,'<RST_SENT+:','<RST_SENT:',[rfIgnoreCase]);
end;
end;
//Here we create a qso record that has comment and lotw+eqsl sent set.
//user can add this record to log to get rid of lotw/eqsl error "Not found in log"
@ -600,8 +615,9 @@ Begin
+LineEnding+'<EQSL_QSL_SENT:1>Y<EQSL_QSLSDATE:8>'+Dstamp+'<APP_CQRLOG_NOTE:36>This line prevents reupload to eQSL'
+LineEnding+Cstamp
+LineEnding+Buf;
//=====================================
mode := ''; //be sure there is no mode at this point
mode := ''; //be sure there is no mode at this point
repeat
begin
if frmAdifImport.getNextAdifTag(Buf,prik,data) then

View File

@ -18,7 +18,7 @@ const
cRELEAS = 2;
cBUILD = 1;
cBUILD_DATE = '2022-05-12';
cBUILD_DATE = '2022-05-27';
implementation