3.3 Technical Information
N1MM Logger+ is a contest program written in Microsoft Visual Basic .NET. It uses an SQLite database for storing information. Writing and retrieving data to and from the database is done with SQL (Structured Query Language).
Running the program needs no more programs or files than supplied in the installation package and the program update (NewExeVx.x.x).
Do you need all the information given below to use the program? NO
WarningWe recommend not to change any data in the database or any other files unless you are very sure what you are doing. It is possible to change the behavior of the program and get erroneous results. If you have changed the contents of the database and the program behaves strange go back to the original (unaltered) version of the database.
No support will be given to users who change the database structure or contents. The same goes for changing other files used by the program.
Don't make changes if you are not very sure what you are doing. Second and last warning!
NoteAfter changing QSO information always do a rescore! Multiplier information and QSO points will be updated after a rescore so any changes made direct in the database will be lost. Change multiplier and QSO points in the (Cabrillo) output files. The program updates the database and not the other way around.
N.B. It is not possible to add a contest to the program this way. Contests can be added using the User Defined Contest method.
For contests other than those in UDC files, contest rules etc. are in the main program file (N1MM logger.net.exe) and are not stored in the database or any other files!
1. Directory structure
The program itself is installed under C:\Program Files (or C:\Program Files(x86) on 64-bit systems), but none of the files it writes to are stored there. All user files (databases, ini files, error logs, mc files, wav files, ADIF files, Cabrillo files, UDC files, call history files, etc.) are stored in dedicated subfolders in a Logger+ user files area, which by default is installed inside your personal Documents folder. The installer offers the capability to change either of these locations, but it is recommended that you accept the defaults.
Digital engine files (MMTTY, 2Tone, Fldigi) have not been written to accommodate this two-folder structure, and need to be stored outside the C:\Program Files path in Windows Vista, 7, 8 and 10. One solution is to place them in a directory outside the normal pre-defined Windows paths (e.g. under C:\Hamradio\MMTTY or C:\MMTTY or ...); a second solution is to create a folder inside your Documents folder for digital engines. Either way works.
2. The SQLite databases
Information that does not change between contests is kept in a database called N1MM Admin.s3db. Contest QSOs and related information are in databases that may be created or switched from the File menu. All of these databases are stored in the Databases subdirectory in the N1MM Logger+ user files area.
There is a special database file called Do_Not_Use_or_Erase.s3db in the Databases directory - do not erase this file, and do not name it as your log database!
3. The "N1MM logger.ini" file
The N1MM Logger.ini file is in the main N1MM Logger+ user files directory. Everything in the "N1MM logger.ini" file should be settable through the program's user interface. An item may not appear in the "N1MM logger.ini" file if its value is left at the default.
Removing the 'N1MM logger.ini' file will cause the program to start with default settings and will require all configuration items to be re-entered. In some cases where data in the file has become corrupted, this may be necessary. Before doing that, it is worthwhile to try renaming a recent backup from before when the problems started. There are up to seven backups retained in the main user file directory, one for each day of the week, as in N1MM Logger.iniMonday.bak, etc.
4. ADIF fields
N1MM Logger+ complies with the ADIF standard. However in the N1MM Logger+ database there is more information stored then we can export (and import) using standard ADIF tags. A number of N1MM Logger-specific tags have been added so when exporting an ADIF file and importing it again all information from the DXLOG table will be restored. A rescore will update the fields not imported and to get the score and multipliers shown correct on the screen.
APP_N1MM_EXCHANGE1 - content of the Exchange1 field
APP_N1MM_POINTS - content of the Points field
APP_N1MM_RADIO_NR - content of the RadioNr field (SO2R or SO2V)
APP_N1MM_MISCTEXT - content of the MiscText field (if used)
APP_N1MM_CONTINENT - content of the Continent field
APP_N1MM_CONTACTTYPE - content of the ContactType field (e.g. D for dupe)
APP_N1MM_ISRUNQSO - 0 for contacts made while in S&P mode, 1 for contacts made while in Run mode
APP_N1MM_RUN1RUN2:1 - content of the Run field. 1 means radio 1 was the Run radio, 2 means radio 2 was the Run radio.
APP_N1MM_RADIOINTERFACED - indicates whether a radio was interfaced for radio control(1) or not (0)
APP_N1MM_ISORIGINAL - True or False (meaning ?)
APP_N1MM_NETBIOSNAME - the NetBIOS name of the computer on which the contact was originally logged
APP_N1MM_RoverQTH - Rover QTH (if used)
APP_N1MM_HQ - IARU member organization abbreviation (for HQ stations in IARU contest)
Note that some fields in the database are used for different purposes in different contests, and may be exported/imported with different ADIF tags in different contests. For example, the Zone field in the database usually contains a CQ zone (CQZ tag in ADIF), but in some contests such as the IARU HF Championship, it contains the ITU zone (ITUZ tag in ADIF) instead. The Section and Misc fields are likewise often used for different purposes in different contests.
In the WAE contests, QTCs are not exported to or imported from ADIF. Exporting a WAE contest to ADIF and importing it into a different database will lose all information about QTCs exchanged during the contest. In order to copy QTC as well as QSO data, you must either use the File > Copy This Contest to Another Database menu item, or else import the TRN file created with the original contest log into a new empty database.
5. Callsign checking in the Digital Interface
Below describes how callsign checking is done in the Digital Interface windows.
It first checks to see if the callsign is of the right length (More than 2 less than 11). It then checks to see if someplace in the first 6 characters there is a number. 3rd it checks to see if there are no invalid characters in it. Then if it all that passes it goes through the Busted Call Checker. If the Busted Call Checker returns an Error message then the call is invalid. Anything else from the Busted Call Checker makes it a valid call.
As text comes into the Receive screen of the Digital Interface it gets printed to the window and placed in a temp buffer. When a space or a CR or LF is encountered the program will send the text in the temp buffer to the check callsign routines. Iif it comes back as a valid callsign it is sent to another routine that looks back thru the last 25 characters of the Receive screen and colors them accordingly. At the time the space is encountered the temp holding buffer is cleared and things get sent there all over again. The whole process above takes just over a millisecond to complete.
Unlike other software DE before the call is not required,it looks for space mostly after callsign.
Take a look at this sequence it explains how it picks up callsigns in the RX window:
A QWSCFGTWA5TTT WA5TTT UR 599 XXXXXXXXXX
The program sees the space between the TTT and the WA so it looks into its previous holding buffer which contains "QWSCFGTWA5TTT" that string does not equal a valid callsign even though there is one in it. So because it encountered the space the buffer is cleared and the next string starts being placed into it. When it hits the third space it goes back and checks the buffer again this time it finds WA5TTT and it says it is a valid call. The program now looks back 25 characters and any time it finds WA5TTT it will color it accordingly and also place it in the grab window.
As for the clicking on callsigns it follows the same rule except there is a routine that looks to see the characters that are under the mouse. If it is a valid call then it gets sent through the routines to place it in the entry window. There is a ltrs/figs line of text that shows the actual text that is being converted. This will give you an idea of what text is getting selected etc.
Problems will happen if the rules change in various countries and the rules in the Busted Call Checker can't keep up with the country changes so you get callsigns that do not come out of it OK. The main reason to add the Busted Call Checker routines in there is to cut down on a lot of garbage that would be getting colored that passed all of the check routines but were not really callsigns
6. Routers and Firewalls
A router provides your principal defense against the wild, wooly Internet. Everyone who connects to a broadband Internet service should only do so through a router.
A software firewall (like the Windows XP firewall, Zone Alarm, etc.) provides protection from the other computers behind your router. It's probably okay to turn off the Windows Firewall in a contest station.
Routers provide an important function called network address translation (NAT). If you look at your computer's IP address and see 192.168.x.y (or 10.x.y.z), then you're golden. The 192.168.x.y (and 10.x.y.z) address ranges are defined as local only and cannot be routeable across the Internet. If your PC has one of these addresses, it's as if you're behind a telephone switchboard and do not have a direct dial number. That's a good defense.
Software firewalls protect you from other computers behind your router. So if you take your laptop around with you and use various wireless networks, you absolutely need a software firewall. The other computers at Starbucks may be full of viruses, and you need a software firewall to protect you from them. Also, if you have a computer in your house that may be used for some less-than-safe surfing, you should have a software firewall. Kids may have permitted access for online gaming, peer-to-peer file sharing, or may have downloaded software that has spyware, etc. Protect your PC by running a software firewall. Finally, if you have a wireless network, make sure you control who access it. If your neighbor can access your network and has a bunch of malware on his machine, your machines could get infected, too.
6.1. Adding N1MM to the Windows firewall
When you do not want to turn off the Windows Firewall you can leave your windows firewall on even though you are behind a router. Add N1MM to your exceptions list and better yet add the local subnet (usually 192.168.1.0 (255.255.255.0)) to the port exceptions.