Technical Information

General Information

N1MM logger is a contest program written in Microsoft Visual Basic which uses a Microsoft Access 2000 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

We 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.

You are on your own!

Note: Normally there is no need to access the database or ini files.
Don't make changes if you are not very sure what you are doing. Second and last warning!

When you are interested in the structure of the database you need to have installed Microsoft Access 2000 or the Access 2000 viewer or more recent versions.
Note: When changing data always make a backup from the database (and preferably the whole N1MM logger directory).

Why is this information given?

Accessing information direct in the database sometimes gives possibilities not directly supported by the program.

Examples:

Note: After changing qso information always do a rescore!
N.B. Multiplier information and qso points will be updated after a rescore so these 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 and it's rules etc. are in the main program file (N1MM logger.exe) and are not stored in the database or any other files!

Directory structure

The default directory where the program is installed is in the 'Program Files' directory on the first hard disk (C:). Below this directory two directories are (or can be) made to support Digital Voice Keying (DVK).

C:\Program Files\N1MM Logger Program file directory
C:\Program Files\N1MM Logger\Letters Directory to store all wav files to 'speak' numbers and letters. Example files can be downloaded from the N1MM website, under 'Downloads', select in the menu: 'Other Files'.
C:\Program Files\N1MM Logger\Wav Directory to store all wav files used in the SSB function keys. You have to make these yourself.

Where is the program information stored?

There are several places where program information is stored.

The Access database

A database has tables with in it the data.

Table Contents
Antennas Antenna information ('Config | Configure Ports, Telnet Address, Others | Tab: Antennas')
BandModeFrequency Radio (vfo) number, frequency and mode information used when changing band.
CallHist Table used for 'Call History Lookup' function.
Contest All the available contests in the program
ContestInstance The contests which are shown in the contest dialog
CTYDAT Country information like 'master' prefix, name, CQ and IARU zone, latitude, longitude etc.
DXLOG QSOs from all the contests in the table ContestInstance
Lookup (Function) keys, States, Provinces etc
PacketSpots Packet spots for all the bands. Spots from this table are shown on the bandmaps
PacketSpotsTest Test packet spots (for program development)
Prefixes Prefixes recognized by the program with default country prefix
SectionsWorked Information to show the section multipliers in the Multipliers window
Settings Settings used by the program
Station Station information i.e. call, name, address etc.
ValidCalls Not used anymore (empty)

The "N1MM logger.ini" file

Everything in the "N1MM logger.ini" file should be settable through the program's User Interface. Defaults are in the file "Default Settings.txt" . An item will not appear in the "N1MM logger.ini" file if its value is the same as in the 'Default Settings.txt' file. Both files can be found in the program directory.

Functions section

Possible functions are:

[Com1] [Com2] [Com3] [Com4] [Com5] [Com6] [Com7]
[Com8] [Lpt1] [Lpt2] [Lpt3] [MutiplierWindow] [SO2R/V] [Files]
[Digital1] [Digital2] [MMTTY] [Function Keys] [Other] [Winkey] [Mode Control]
[Antennas] [SO2R/V Setup] [Available] [Packet] [Configurer] [ConfigurerDialog] [CW Window]
[Digital Interface] [Digital Interface Setup] [DigitalIO2] [EditContact] [EditLookupTable]    

Examples

[Packet]
Packet Tab=1 - Telnet window is selected, if removed the Packet tab is selected.

[Configurer]
Database Name=C:\Program Files\N1MM Logger\PI4GN-Maart-2004.mdb Selected database
Contest Type=VHFREG1Selected contest in the selected database
Contest NR=1 Selected contest number in the selected database
Recent Contest 1=VHFREG1:6-3-2004:C:\Program Files\N1MM Logger\PI4GN-Maart-2004.mdb Most recent opened contest

Window Section

Possible windows are:

[EntryWindow] [EntryWindow2] [GraphicalBandMap 1] [GraphicalBandMap 2]
[InfoWindow] [Log] [LogTypeSelectionDialog] [MultsByBand]
[PacketWindow] [PSKEngine] [ScoreSummary] [StationDialog]
[SuperCheckPartial] [AvailableMultsAndQs] [BandMap]  

Examples

[EntryWindow]
Top=3825
Left=2985
Height=3330
Width=5370

[PacketWindow]
WindowState=0 Window is open (default) or closed (0), the Entry window can not be closed
Top=9000
Left=3270
Height=2550
Width=12105
Telnet Port=K1TTT.NET The selected telnet cluster from the list. Specific for this section.

[BandMap]
CW Wide - 1=*RMF400CW Narrow - 1=*RMF250

[InfoWindow]
WWVMessagesVisible=False WWV messages are not shown in the Info window

Configuration files

After installation the files below are stored in the N1MM logger program directory.

Program files

Never delete these (program) files!

Database files

Files created on your command:

RTTY files

MMTTY files are not in the program installation package and should be downloaded separately when needed.

PSK and other modes

The MMVARI engine is used for most digital modes which is included in the N1MM installer. There is no need to download the MMVARI package for use with N1MM logger.

PSKCore files (all obsolete)

All PSKCore files below are obsolete and not required for use with N1MM logger anymore.

ADIF fields

N1MM logger complies to the latest ADIF standard. However in the N1MM logger database there is more information stored then we can export (and import) using ADIF. That is why a few 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 available. 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 from the table DXLOG table.
APP_N1MM_POINTS - content of the Points field from the table DXLOG table.
APP_N1MM_RADIO_NR - content of the RadioNr field from the table DXLOG table.
APP_N1MM_MISCTEXT - content of the MiscText field from the table DXLOG table.
APP_N1MM_CONTINENT - content of the Continent field from the table DXLOG table.
APP_N1MM_CONTACTTYPE - content of the ContactType field from the DXLOG table.
APP_N1MM_RUN1RUN2:1 - content of the Run field from the DXLOG table.is the Run1/Run2 tag. 1 means radio 1 was the Run radio,  2 means radio 2 was the Run radio.

Callsign checking in the Digital Interface

Below 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 check to see if there are no invalid characters in it. Then if it all that passes it goes thru 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, if 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 ho 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 tho 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 not 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 thru 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 and 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

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.

Robert K5PI.

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.