Obiettivo:
L'obiettivo di questo articolo è descrivere il completo flusso di elaborazione dei log che porta alla creazione delle classifiche dello IAC per favorire la trasparenza e per condividere la metodologia del cross-check dei log nell'ambito dei contest VHF & Up tramite il software LX versione 1.64. (Traduzione della documentazione di LX 1.64 a cura di Steve IU1EAF/4)
Cosa è LX?
LX (Log cross checker) è un programma per il controllo dei log e l'elaborazione delle classifiche per i contest VHF & Up. E' stato originariamente sviluppato da Andrej OM1CW (sk). Ora il progetto è mantenuto da Lada OK1ZIA. La piattaforma prinicipalmente supportata è Linux, secondariamente si può utilizzare anche su sistemi Win32 grazie alle librerie Cygwin. [+] http://tucnak.nagano.cz/wiki/Lx
Perchè è stato scelto LX?
La scelta del software LX è stata dettata da diversi fattori: sw open source (quindi con possibilità di eventuali future implementazioni aggiuntive), semplicità ed efficacia nell'utilizzo.
Iniziamo:
LX si può scaricare liberamente dalla seguente pagina [+] http://ok1zia.nagano.cz/lx/ (è disponibile sia il codice sorgente sia l'eseguibile per sistemi Win32). Per ottenere la versione 1.64 di LX compatibile con sistemi Win32 clicchiamo semplicemente su "LxInstall-1.64.exe" e attendiamo il completamento del download. Una volta installato il software sul pc in uso troveremo all'interno della cartella di LX un file di configurazione molto importante "lx.cfg", per modificarlo e quindi configurare LX vi consiglio di utilizzare il comodissimo editor di testo "Notepad++".
Settaggi del file di configurazione "lx.cfg":
L'ordine delle righe è importante quindi fate attenzione a non modificarlo.
Vediamo ora un esempio del file in questione:
% Configuration file for LX software
% NOTE: Please keep order of the options!
%define
CTEST=IAC "Italian Activity Contest"
% VERBose Mode
% 0 - quiet (errors, some warns)
% 1 - verbose (all basic msgs)
% 2 - more verbose (save repairs)
% 3 - extremly verbose (Search for other referencies of repairs)
% 4 - debug (prints info that normal user will not understand)
VERBM=3
% Ignore slash suffixes (/P, /QRP, /3, ...) in all calls
NSLSH=0
%path to export all .ERR files
EPATH=errors
%define categories = band;psect;name
CATEG=144 MHz;2IT;2IT Gennaio 2017
% low power limit
LP_0144=0
LP_0432=0
% low power limit for category 1
%LPBC_0144_1=0
% qrp limit
QRP_0144=0
% low power limit for category 1
%QRPBC_0144_1=0
% for both low power and qrp
STRLP=0
% french politically correct power
%FPOWER=0
% start time of second contest phase
%PHASE=1200
% compare only two first characters of RST
RST2=1
% compare only RAW chars (without CEPT and portable)
RAWCALL=1
% limit for calls without checklog to be accepted
RL_0050=2
RL_0070=2
RL_0144=2
RL_0432=2
RL_1300=2
RL_2300=2
RL_3400=2
RL_5700=2
RL_G10=2
RL_G24=2
RL_G47=2
RL_G76=2
RL_G122=2
RL_G134=2
RL_G241=2
% set to 10 for TOP10 QSOs in results
TOP=10
% non-CW qsos have 0 points
CWONLY=0
% QSO point calculation method
% 1 = standard IARU trunc(QRB+1)
% 4 = WWL ring for OK activity
QSOP=1
% large WWL multiplier
% 0 = off
% 1 = on
% 2 = on with own loc included
WWLMULT=0
% penalize both sides (IARU rules since 2012)
PENBOTH=0
% check QSO number (1 for standard contests)
CHECKNR=0
%i CPATH= path to .EDI files where PSECT=Check will be forced
CPATH=check
% "LPATH=..." path to .EDI files
LPATH=ok
% Call-WWL database file - Not implemented yet
%CW_DB=tucnakcw
% DXCC-WWL database file
DW_DB=tucnakdw
% Country database file
CTYDB=cty.dat
% Database with WWLs and Calls which will be forced
% Warning: this can also override WWL from LOG
FW_DB=force.wwl
% Database with Bad Call <-> Correct Call which will be forced
BC_DB=calls.bad
% Diploma directory path
DIPLOMPATH=diplom
% Diploma template (xml file)
DIPLOMTMPL=vzor.xml
% Number of stations for diploma creation
DIPLOMPLACE=3
Adesso vediamo nel dettaglio il significato di ogni campo del file:
- Il campo "CTEST" indica il nome del Contest
%define
CTEST=IAC "Italian Activity Contest"
- Il campo "VERBM" indica il livello di dettaglio dei messaggi di output generati da LX nel terminale a riga di comando
% VERBose Mode
% 0 - quiet (errors, some warns)
% 1 - verbose (all basic msgs)
% 2 - more verbose (save repairs)
% 3 - extremly verbose (Search for other referencies of repairs)
% 4 - debug (prints info that normal user will not understand)
VERBM=3
- Il campo "NSLSH" indica se ignorare o meno i suffissi dei call (/P, /QRP, /4)
% Ignore slash suffixes (/P, /QRP, /3, ...) in all calls
NSLSH=0
- Il campo "EPATH" indica la directory nella quale LX esporta i risultati elaborati
%path to export all .ERR files
EPATH=errors
- Il campo "CATEG" indica la descrizione della categoria nel seguente formato: banda;codice psect della categoria;nome
Il valore "PBAND" nel file .EDI deve corrispondere alla banda.
Il valore "PSECT" nel file .EDI deve corrispondere al codice psect.
Nel caso si vogliano accettare tutte le bande impostare "*" come primo parametro, es. CATEG=*;MULTI;Multi
%define categories = band;psect;name
CATEG=144 MHz;2IT;2IT Gennaio 2017
- Il campo "LP_0144" e "LP_0432" indica il limite di potenza per la categoria "LP" (bassa potenza). Il valore di default è "0" (nessun limite)
% low power limit
LP_0144=0
LP_0432=0
- Il campo "LPBC_0144_1" indica il limite che è applicato soltanto per una categoria in una banda.
Permette per esempio di avere una singola categoria divisa per potenza. Il valore di default è 0 (nessun limite).
% low power limit for category 1
%LPBC_0144_1=0
- Il campo "QRP_0144" indica il limite di potenza per la categoria QRP (bassissima potenza).
Il valore di default è 0 (nessun limite).
% qrp limit
QRP_0144=0
- Il campo "QRPBC_0144_1" indica il limite che è applicato soltanto per una categoria in una banda.
Permette per esempio di avere una singola categoria divisa per potenza. Il valore di default è 0 (nessun limite).
% low power limit for category 1
%QRPBC_0144_1=0
- Il campo "STRLP" Fondamentalmente aggiunge alla categoria HP (alta potenza) soltanto i nominativi con la potenza maggiore del limite impostato. Il valore di default è 0, il che significa che tutte le stazioni sono nella categoria HP. Anche per il limite QRP.
% for both low power and qrp
STRLP=0
- Il campo "FPOWER" Abilita il Francesismo potenza "politicamente corretta".
% french politically correct power
%FPOWER=0
- Il campo "PHASE" indica l'orario di partenza della seconda fase del contest.
Per esempio "PHAE=1200" corrisponde con l'inizio della seconda fase del contest alle ore 12.00 UTC.
% start time of second contest phase
%PHASE=1200
- Il campo "RST2" indica se comparare solo i due primi caratteri del rapporto RST
% compare only two first characters of RST
RST2=1
- Il campo "RAWCALL" indica se comparare solo i nominativi "RAW" (senza /P)
% compare only RAW chars (without CEPT and portable)
RAWCALL=1
- Il campo "RL_0000" (al posto di "0000" si deve indicare la banda in questione) indica il limite di stazioni senza checklog di corrispondenza che devono essere accettate. I nominativi da un unico locatore sono accettati sempre. Ma quando più nominativi sono attivi da un locatore e non abbiamo checklog, noi non possiamo determinare se entrambi i nominativi erano attivi o se alcuni nominativi sono errati. Quindi per esempio se impostiamo il valore 2 la combinazione nominativo - locatore deve comparire nei log tre volte per essere accettata. Altrimenti viene considerato errore.
% limit for calls without checklog to be accepted
RL_0050=2
RL_0070=2
RL_0144=2
RL_0432=2
RL_1300=2
RL_2300=2
RL_3400=2
RL_5700=2
RL_G10=2
RL_G24=2
RL_G47=2
RL_G76=2
RL_G122=2
RL_G134=2
RL_G241=2
- Con il campo "TOP" impostato a 10 si può avere la TOP10 dei QSO nei risultati, oppure si può impostare un altro valore a scelta.
% set to 10 for TOP10 QSOs in results
TOP=10
- Quando il campo "CWONLY" è impostato a "1", i QSO non in modo CW saranno accettati ma il valore sarà di 0 punti.
% non-CW qsos have 0 points
CWONLY=0
- Il campo "QSOP" indica il metodo di calcolo del punteggio per QSO:
- 1 -> metodo standard IARU (1 punto a KM di QRB)
- 4 -> metodo ad anello di locatore WWL per l'activity contest OK
% QSO point calculation method
% 1 = standard IARU trunc(QRB+1)
% 4 = WWL ring for OK activity
QSOP=1
- Il campo "WWLMULT" indica se il locatore WWL è valido come moltiplicatore:
- 0 -> off
- 1 -> on
- 2 -> on, il proprio locatore è incluso anche se non collegato
% large WWL multiplier
% 0 = off
% 1 = on
% 2 = on with own loc included
WWLMULT=0
- Il campo "PENBOTH" indica se penalizzare entrambi i corrispondenti (regola IARU dal 2012)
% penalize both sides (IARU rules since 2012)
PENBOTH=0
- Il campo "CHECKNR" indica se LX deve controllare il numero progressivo passato nei QSO (impostare a 1 per i contest standard IARU)
% check QSO number (1 for standard contests)
CHECKNR=0
- Il campo "CPATH" indica la directory dei file .EDI nei quali il campo "PSECT=Check" sarà forzato
%i CPATH= path to .EDI files where PSECT=Check will be forced
CPATH=check
- Il campo "LPATH" indica la directory dei file .EDI validi per le classifiche da controllare
% "LPATH=..." path to .EDI files
LPATH=ok
- Il campo "CW_DB" indica il database dei call associati ai locatori WWL - funzionalità non ancora implementata
% Call-WWL database file - Not implemented yet
%CW_DB=tucnakcw
- Il campo "DW_DB" indica il nome del database con i locator WWL associati a ciascun country DXCC
% DXCC-WWL database file
DW_DB=tucnakdw
- Il campo "CTYDB" indica il nome del database con l'elenco dei country DXCC
% Country database file
CTYDB=cty.dat
- Il campo "FW_DB" indica il database con i locator WWL e i call che dovranno essere forzati.
Attenzione: questo database andrà a sovrascrivere i WWL nei log!
% Database with WWLs and Calls which will be forced
% Warning: this can also override WWL from LOG
FW_DB=force.wwl
- Il campo "BC_DB" indica il database con i [call errato <-> call corretto] che saranno forzati
% Database with Bad Call <-> Correct Call which will be forced
BC_DB=calls.bad
- Il campo "DIPLOMPATH" indica la directory nella quale salvare i file in formato xml dei diplomi
% Diploma directory path
DIPLOMPATH=diplom
- il campo "DIPLOMTMPL" indica il template dei diplomi in formato xml
% Diploma template (xml file)
DIPLOMTMPL=vzor.xml
- Il campo "DIPLOMPLACE" indica il numero di stazioni per le quali creare il diploma
% Number of stations for diploma creation
DIPLOMPLACE=3
Abbiamo visto tutta la documentazione relativa ad LX versione 1.64 per sistemi Win32.
Analizziamo ora il processo di ricezione e verifica preliminare dei log:
L'operatore che partecipa allo IAC può inviare il proprio log facendo l'upload tramite pannello sul sito web oppure inviandolo in allegato tramite email.
Ricezione tramite pannello web:
Al termine della compilazione del form sul sito da parte del partecipante il server prenderà in carico il file memorizzandolo in una cartella dedicata, registrando inoltre i dati del partecipante in un record di un database sql. Dopodichè invierà una mail di conferma di ricezione al partecipante e al Manager per informarlo che è stato preso in carico un log. Il Manager ora si collega alla cartella e scarica il log sul suo pc per poi procedere con la verifica preliminare di conformità del log.
Ricezione tramite email:
Il partecipante invia in allegato tramite mail il log al Manager, il quale una volta ricevuto il tutto procede a scaricare il log in questione nella cartella di archiviazione sul suo pc per ppoi procedere con la verifica preliminare di conformità del log.
Verifica preliminare di conformità:
Vengono controllati i seguenti parametri:
- Formato del file
- Nome del file
- Conformità del file al formato EDI {[+] standard EDI}
- Valore del campo "PSECT"
- Valore del campo "PBAND"
- Valore del campo "TDATE"
Conferma di ricezione:
Se la verifica preliminare di conformità del log ha esito positivo si procede ad inviare una email di conferma al partecipante.
Qualora l'esito della verifica sia negativo si procede a segnalare al partecipante gli errori presenti, lo si invita alla correzione e al re-invio del log.
Pubblicazione elenco log ricevuti sul sito web:
Quando la cartella di archiviazione dei log inizia a popolarsi si procede con la creazione di un elenco dei log ricevuti tramite l'aiuto del termnale a riga di comando.
La procedura è la seguente: tramite la combinazione del tasto "Windows" e del tasto "R" si apre la finestra "Esegui", si digita "cmd" e si preme "invio", si aprirà una finestra terminale, tramite il comando "cd" ci spostiamo all'interno della cartella di archiviazione dei log, tramite il comando "dir > nomedelfile.txt" creiamo all'interno della directory in questione un file di testo in formato .txt con l'elenco dei file presenti nella directory, tramite l'editor di testo "Notepad++" formattiamo il file rimuovendo il testo non necessario e procediamo poi alla pubblicazione dell'elenco sul sito web nella pagina dedicata.
Creazione della tabella "punteggi dichiarati":
Scaduto il termine ultimo di invio si procede con la copia dei log nella directory "ok" di LX.
Si presuppone di aver già modificato a seconda delle proprie necessità il file di configurazione "lx.cfg".
Apriamo quindi una finestra terminale a riga di comando, spostiamoci all'interno della directory di LX tramite il comando "cd" e avviamo il software digitando "lx.exe" seguito da "invio".
Il software produrrà l'output richiesto elaborando i log.
All'interno della cartella "errors" potremo trovare un file di testo denominato "lx_claimed.txt", tramite l'editor "Notepad++" copiamo il testo e lo pubblichiamo sul sito web nella pagina dedicata.
.. To be continued, be patient ..