Skip to main content.
Mauston, WI, USA - Good Afternoon!
Updated: 12/28/2014    10:18:23 PM

NSLog.exe

Version 1.61 April 9, 2012

NSLog is a small utility program that reads the NexStorm™ Flashgate IPC-1 and 2 memory areas and then creates files suitable for enabling javascript updates of web pages as well as the creation of maps and graphs. It also has the option to upload several files at user-defined rates, which will then be accelerated when a user-defined level of lightning activity is reached. Files are only uploaded if they are newer than the previous copy uploaded, thus saving bandwidth to be better used when there is high activity. A great example of what can be done with this data is the NSDisplay script that is available on the Add-Ons tab.

NSLog was written using C++ Builder 6 and is based on the code provided by Astrogenic Systems (Relko) and included on the NexStorm™ distribution disk.

If you find this program useful and you wish to help defray the cost of the compiler, please feel free to use this link.  

Install/Uninstall - Download and unzip NSLog.zip, then place the NSLog folder anywhere on the hard drive of the computer running NexStorm™. To uninstall, simply delete the NSLog folder.

NSLog.zip contents - The NSLog folder contains:

1) NSLog.exe
2) nsFtp.exe (optional use now)
3) readme.txt

Operation - Simply run NSLog.exe and it will begin reading NexStorm™ data from the Flashgate IPC areas. Upon running the program for the first time, there will be a NSLog.cfg file (and backup) created to maintain your configuration data. There will also be a "hidden" \nslupload\ folder created which will contain the most recent copies of the files that are uploaded. Please don't set NSLog to create any of it's files in this folder! If starting NSLog with a shortcut or similar, be sure to specify the \nslog folder as the "start in location" or "working directory" so that its files are created in the right place.

There is also a command line switch "m" available to start NSLog minimized to the system tray (nslog m).


Many Thanks to Henkka Roblom, Brad Holcomb and Henk Harms who cheerfully helped test this program.

NexStorm™ is a product of Astrogenic Systems.

Menus

File - Clear Screen - Clears the scrolling screen display.

File - Minimize to Tray - Minimizes the program to the system tray. Clicking on the "-" in the upper right corner of the program will do the same.

File - Exit - Exits the program and saves the current configuration. The red x in the upper right corner of the program screen will do the same.

View - View xxxx File - Opens Notepad and displays the various files..

Config - See Config Tab.

Help - Online Help - Will open your default browser and bring you to this page.

Help - About - Displays the About screen which has version and contact information.

Config - General Tab - This screen has several options for configuring the program.

Screen On - Controls whether the data is written to the screen. If you're having trouble and have a very slow computer, you may want to experiment with turning this off.

Show in Miles/Km - Allows you to select the units that are displayed as well as logged.

Show Heartbeats & Noises - Controls whether these are written to the display screen.

Show Status Area - Show or hide the lower strike and upload information.

Confirm Red X Shutdowns - Whether you want to confirm program exit when clicking the "Red X".

Log Raw Data - Controls whether the raw data is logged.

Include Heartbeats & Noises - Not normally used, but available should they be needed.

Archive Raw Daily - With this checked a new file is created each day at midnight. Files are named yyyymmddNSRaw.txt.

Append Recap - If checked, a short recap of the day's activity will be appended to the end of NSRaw.txt when it is archived.

Archive Folder - Allows you to designate where all archived files will be placed. If nothing is selected the files will be created in the folder where NSLog is located.

Close Stike Limit - The distance that defines which strikes will be counted as "Close".

High Activity Threshold - The number of "Close" strikes per minute that will trigger the High Activity Uploads.

X Minute Strike Recording - Allows you to select the interval for the second set of counters. This can be anything from 2 to 60 minutes.

Processor Priority - Allows you to increase the priority that your processor gives NSLog. In testing, using realtime has resulted in an over 50% reduction of missed events during medium and high activity storms. If you notice any sluggishness of your mouse cursor or any other issues, you should leave this in normal. I haven't noticed any problems with slow downs or with any of the many weather programs that are running on my computer.

Gauge & Strike Colors - Click on any of the boxes to change to your desired color.

Ftp To Use - You have a choice between an internal routine managed within NSLog or using the external nsFtp "fire & forget" program. See the Troubleshooting Uploads tab for more information on both of these. The new internal FTP is highly recommended.

Log FTP Transfers - Will create a log with information about each of the transfers. Use this only when necessary because the log file can grow very large in a hurry. If you're using internal FTP the log will be archived at midnight in the same place that you have designated for NSRaw.txt archiving, and will have the date appended to the file name.

Verbose - (Internal Only) If this is checked it will log all of the communications with the server. Each upload will be 25 lines in the log rather than the normal 6 essential ones, but it might be helpful for troubleshooting your setup or if you're just curious.

Connect Timeout - (Internal Only) You can select how long the ftp will wait before it quits on a connect. 5-6 seconds should be fine and most connects will be nearly instantaneous.

Transfered Today - (Internal Only) Shows how much you've uploaded and if logging is on, this information will be appended to the log when it is archived.


Realtime Tab

Create Realtime File - Allows you to select whether this file is created or not.

Realtime File Folder - Default is in the folder that contains the NSLog.exe program, but the file can be placed elsewhere. Do not select the \nslupload\ folder.

FTP The Realtime File - Allows you to select whether the file will be uploaded or not.

Normal Rate - The rate at which the file is uploaded when High Activity is not sensed.

Accelerated Rate - The rate at which the file is uploaded when High Activity is sensed as determined by the close strike configuration on the general tab.

Login - Standard.

Server - In this example I'm uploading to the /web/ folder on my site which happens to be the root.

Password- Standard.

Passive - Passive if checked, active if not.

File Rename - The file is uploaded with a different file name and then renamed once the transfer is complete. It is recommended to use this if your server allows.

Port - The standard is 21, but you can change to something different if you need to.

Clone Button - While NSLog is designed to allow you to upload files to different servers and different folders, many users will be sending their files to the same place. This button copies the FTP info as entered on the Realtime tab to all the others to make initial setup a bit easier.

Strikes Tab - Just like the Realtime Tab except:

Normal & Accelerated Rate Minutes of Strikes  - Allows you to select how minutes of data are stored in NSStrikes.txt. The range is from 1 to 1440 (24 hours).  The NSStrikes.txt file can get quite large during high activity, so it's probably a good idea to have a reduced number of strikes in the file when those conditions are present.


Storms Tab - Just like the Realtime Tab except:

Create Storms File - NSStorms.txt will be created in the Storms File Folder and will contain all storms that are active at the time. Once storms expire they are moved to NSOldStorms.txt.

Archive Daily - The day's storms that are in NSOldStorms.txt will be archived in the folder that you've selected on the General tab, and will be named yyyymmddNSStorms.txt. If this is not selected NSOldStorms.txt will continue to grow and will have to be moved/renamed/deleted manually.  This allows the creation of monthly or annual storm files if those are desired.

Trac Release Time - Set this the same or longer than you've set in NexStorm. If a storm has no activity for this amount of time, it is moved to the NSOldStorms.txt file.

Minimum Storm Duration - Storms shorter than this are not saved to the NSOldStorms.txt file.

Location of TRACReport.txt - The folder that you've configured NexStorm to create this file in. If in doubt, look in NexStorm's Data Export configuration screen.


Graph Tab - Just like the Realtime Tab except:

Log Interval - Allows you to select how often the current strike data is written to the log file.

Max Lines in Log - Limits the size of the file so it doesn't eat up too much space.

Upload 1 - 5 Tabs

These work just like the Realtime and Graph file uploads, and allow you to upload up to 5 additional files which can be sent to different locations. File times are checked on these files and they will not be uploaded unless they are newer. If you select 0 Minutes in the Accelerated Rate box, NSLog will check your Upload 1-5's every 15 seconds when in High Activity mode. You'll want to select Binary on these if your file is a graphic or other binary file format.

Filters Tab

This tab is not applicable for most users, but will be invaluable to those who have chronic problems with artificial strikes from sources such as an electric fence, malfunctioning street light or a neighbor with a welder.

Two areas can be defined by setting the "right and left" bearings and the "long and short" distances of the problem(s).  Strikes and storms that NSLog sees within these boundaries are then totally disregarded and excluded from all NSLog proveded data. If using this feature, you may want to consider using NSDisplay to show your data on the web because it has now been tailored to do just that.

Troubleshooting Uploads

If using nsFtp the upload times on the NSLog main screen indicate when NSLog last asked nsFtp to upload the files. Because nsFtp is a "Fire and Forget" program, NSLog doesn't know whether the uploads were successful or not. If using internal FTP each upload will start with the word "Upload", then show the number of bytes as they are transfered, and finally the time that it finishes. If you don't get a good connect it'll show the word "Failed" and it's time to check your server and internet connection.

When NSLog determines it is time for an upload, it checks the file time of the target file and compares that with the most recently uploaded copy of that file. If the file is newer, a copy is placed in the nslupload folder and FTP is asked to upload it. By observing the file times in the nslupload folder, you can determine how often each of the files is being created and uploaded. The nslupload folder is created as a hidden folder within the same folder that contains NSLog.exe. In order to see it, you may have to enable "Show hidden files and folders" in Windows Explorer. Don't forget that files are only uploaded when there's a newer one available, so many times NSStrikes.txt looks pretty stagnant on a slow day.

Show Hidden

Should you notice that a file is not being updated in the nslupload folder, First make sure that all of the server information is correct on the tab for that particular file. Also check that the file is actually being created in the location that you have specified.

If all of the above checks out, you may try enabling ftp logging on the Configuration-General tab. This can reveal several possible errors. Some servers cannot handle 3-5 second uploads of the Realtime.txt file, but will handle 10-15 seconds just fine. Be sure to turn ftp logging off when you are done because the file can grow quite large in a short period of time. Also, you may delete the log file at any time and it will be re-created by NSLog when necessary.

Internal FTP

Ftp logging looks different than previously with nsFtp so I'll explain some of the details. Here's a typical transfer:

Uploading nslupload\NSRealtime.txt at 06:40:55:437 2010/12/29 (1 in queue)
Connected 06:40:55:562 (00 sec 125 ms)
CWD /public_html/lightning
Opening ASCII mode data connection for NSRealtime.txt.nsl
152bytes received/sent in 344 milliseconds
Disconnecting 06:40:56:468 (01 sec 31 ms)

On the first line, the queue info within parenthesis will only show up when there are other ftp jobs waiting. This can be due to:

1. Uploading too fast for your server and/or internet connection in which case you'll see it a lot.
2. Either your server or internet connection are down or "flakey" which can happen occasionally.

When this happens you should see that the number increase when we send the larger files, then decreases as we catch up. Seeing these entries isn't bad, it just means the queue is doing it's job. But if it's extreme, it might mean that you're updating too frequently for your server or internet connection. If your internet connection or server go down, the queue will be limited to a maximum of 7 so that things don't too backed up.

The times within parentheses on the Connected and Disconnecting lines are elapsed time. If an asterisk shows up next to the connect elapsed time then it's within 1 second of the time you have set in config for the connect timeout. That way you can do a search of the log for "*" to see how often things are getting close for connect times and if you see it a lot, and you're seeing a lot of connect timeout errors consider increasing by a second.

If you have rename selected you'll see that extra ".nsl" at the end of the uploaded filename which goes away after the file is renamed on the server.

Any problems that happen should have the word "error" in the entry so you can search for that. If you're seeing connect timeout errors but they're only every hour or two, you're probably ok because that seems to be the norm on the three servers I tested with.

The way I review the ftp log is to select View-View FTP Log then in notepad search for

1. "error" to see if there were any premature disconnects or other problems.
2. "*" to see if there are a lot of slow conects or if I need to increase my connect timeout.
3. "queue" to see if I've had any of those buildups, but you would probably have already seen those when searching for the above.

Then I'll do a "File-Save As" if I want to keep a copy for something. If I want to clean out the file and start fresh I'll turn off ftp logging then I'll do "Edit-Select All-Delete" then "File-Save" and then turn the logging back on. Try not to save the cleaned out file when an ftp session writing to the log or it "most likely" will lock the NSFtpLog.txt file up. If this happens you will have to shut NSLog down and restart it to get the logging working again.

The ftp logging has a verbose! mode where you'll see all of the communications with the server. Each upload will be 25 lines in the log rather than the normal 6 essential ones, but it might be helpful for troubleshooting your setup or if you're just curious.

If logging is on at midnight, the day's log will be archived in the same place that you have set for NSRaw.txt archiving. The amount of data sent that day will also be appended to the end of it.

If you notice problems, please let me know and send me the log if you had that turned on. A screenshot would be helpful too. If you have some decent lightning activity please let me know how the NSLog counts compare with those in NexStorm.

nsFtp

Some users find that nsFtp will occasionally hang and they find several instances remaining in Task Manager. Often this can be cured by reducing the frequency of NSRealtime uploads. To confirm that an instance is truly hung, configure Task Manager to show the process id (PID) by going View- Select Columns and then tick PID (Process Identifier).

Task Manager

If the same PID remains for more than a minute or so, nsFtp is hung and you can delete that instance by right clicking and selecting End Process. This has been a tough one to find and fix. Sometimes it seems to be an issue with the server, sometimes the ISP and sometimes the uploading computer. Awhile ago I did some troubleshooting with Tom in North Carolina and I could upload to his server just fine at 3 second intervals but he could not. He ended up slowing his uploads down to 10 seconds and things worked much better for him. It has also been noted that some antivirus programs can at times cause a locked file in the nslupload folder, so if you experience that set your antivirus program to exclude the entire NSLog folder from scans and see if that improves things. If you are experiencing extreme problems with this and wish to work with me on it, please drop me an EMail (contact info below) and we'll see what we can learn.

Uploading NexStorm Files

You may choose to have NSLog upload your NexStorm and Wasp2 images and data if you want to let NSLog control the rate of the uploads. The following settings will allow creation of the files on your hard disk without NexStorm or Wasp2 uploading them.

NS Data Export  NS Screenshot  Wasp2 FTP

NSDisplay 1

November 13, 2013 Version

This venerable old script, originally created by Henkka Roblom back in 2008 before there was an NSLog, has been recently updated to use the NSStorms-include and nslmap scripts below. All display and updates are accomplished using NSLog provided data with no other uploaded files necessary. Since NSLog only uploads files when there have been changes, bandwidth use is greatly reduced.

The use of nslmaps provides some unique auto and manual zoom capabilities that many will like, and can be configured to look exactly like your NexStorm generated images.  NSStorms provides a display of the wealth of storm data that NSLog now provides.

For those who are using NSLog's ability to filter out unwanted strikes (such as from an electric fence) this is the perfect way to accurately show the results. This script can be seen in action on my NSDisplay page and can be downloaded here. View the readme file to learn more.

 

Radar Overlays for NSDisplay 1

Given a little time and some money, it is possible to have radar overlays that work with NSDisplay (see mine, link above). Take a look at the readme file to see if this is something that interests you. If so, you can download the essentials here.

 

NSStorms-include.php

This script uses NSLog's NSStorms.txt and NSOldStorms.txt files to create unformatted tables of storm data. It is meant to be included in another page which contains style information that controls how the table is displayed. If called with no parameters the table will contain current storm data, and if called with the "expired" parameter it will display previous storms of the day. This script can be seen in action on my NSDisplay page (if there's any storm action) and can be downloaded here.

 

nslmap.php

This script uses NSLog's NSStrikes.txt and NSStorms.txt files to place strike and storm symbols on "clean copies" of NexStorm's maps. It is quite configurable for symbology and supports zooming to different ranges based on current lightning activity. A nice feature is that the zoom can be set to key on distant storms until a certain distance, and then key on the closest. There is also a manual zoom option available.

With this script it isn't necessary to upload nexstorm.png periodically all day long if you don't wish to.  It can also be used with maps from a source other than NexStorm as long as your location is exactly in the center of the map and that you know the distance from edge-to-edge for each map. This script turned out to be much more accurate than I expected, can be seen in action on my NSDisplay page and can be downloaded here.

 

nslog2grlevel.php

GRLevel3 owners may be interested in trying this out. Tom Chaplin from Carterlake.org originally released this code in the GRLevelX owners forum in 2006. This version has been modified to read the NSStrikes.txt file and display your lightning data in GRLevel3 just as his original script did with the Weather Display produced data. The .zip file contains the script that creates the placefile, an icon file and the Xara Xtreme file that created the .png icon file. You can download it here. The placefile produced can be seen here and to see it in action, add that same URL to your placefile manager and select either LaCrosse (ARX) or one of the other radars in the area.

 

nslog2kmz.php

Once again leveraging Tom's code above, this script produces a .kmz file that Google Earth can read. Users need to select Add-Network Link in Google Earth and then paste http://yoursite.org/NSStrikes.kml in the Link field and give it an appropriate name. Nothing else is required of them. NSStrikes.kml creates a network link that will periodically call nslog2kmz.php which then delivers the compressed data to Google Earth for display. You can download it here.

I've begun using the Google Earth view of my lightning to better calibrate my system and am very happy with the information that it provides.  It has a great ruler to measure distances with, but I found myself wishing I had range rings that matched the distances in segmented ranging.  So, I figured out a way to put together a .kml file to do that and later added another to displays the radials. The package can be downloaded here.

Google Earth

 

nsFtp.exe

This small little FTP program was developed to support NSLog.exe because there didn't seem to be any free command line programs that would support both long filenames and the server rename function. If you wish, this program can be used for uploading other files via batch files. The syntax to use with one space between each parameter is:

nsFtp.exe logit fullpath filename login password server passive binary rename port

logit - Whether to log the transaction or not, T or F. NSFtpLog.txt will be created if T selected.

fullpath - Full path to the file to be uploaded. If the path contains a long filename, or a name with spaces, enclose this in quotes. In fact, quotes shouldn't hurt anything in either case.

filename - The name you want for your file when it's on your server.

login - The login that you use for your server.

password - Your password.

server - Where you want your file.

passive - T for passive and F for active.

binary - T to upload in binary mode and F for ASCII. Text files should be uploaded in ASCII mode and graphics in binary.

rename - T to upload with a ".tmp" extension followed by a quick rename to your desired name. If your server doesn't support rename, use F.

port - Normally 21, but you can change to something else here.

Examples:

nsFtp.exe T C:\NSLog\Testbat\seo.txt newname.txt jmcmurry mypassword jcweather.us/web/ T F T 21

nsFtp.exe F "C:\Documents and Settings\jmcmurry\Desktop\seo.txt" newname.txt jmcmurry mypassword jcweather.us/web/ T F T 21

 

Strikes JpGraphs

These JpGraph files use the data from NSGraph.txt to plot lightning activity.

strikes.php

strikes.png

strikes2.php

strikes2.png

JpGraph is available at http://www.aditus.nu/jpgraph/jpdownload.php and the strikes files can be downloaded here.

The NSLog created datafile structures:

NSRaw.txt - Comma Delimited - Updated with each Strike - This is the exact data as read from the Flashgate IPC. This is the same structure used in NSStrikes.txt which is suitable for data needed covering the last xx minutes such as nslog2grlevel.php above.

Position Type Name Description
0 int Count All Events
1 int Year yyyy
2 int Month mm
3 int Day dd
4 int Time Stamp Seconds since Midnight
5 int Bearing 0-3600
6 int Distance km
7 int Raw Bearing 0-3600
8 int Raw Distance km
9 int TRAC X 0-1000
10 int TRAC Y 0-1000
11 int Raw X 0-1000
12 int Raw Y 0-1000
13 int Strike Type 0-CG, 1-IC
14 int Strike Polarity 0-Pos, 1-Neg
 

NSRealtime.txt - Comma Delimited - Updated with each Strike - Suitable for rapid uploads to be used by javascript routines.

Position Type Name Description
0 int Year yyyy
1 int Month mm
2 int Day dd
3 int Hour hh
4 int Minute mm
5 int Second ss
6 int Bearing Degrees
7 int Distance Km or Mi as Selected
8 int TRAC X  
9 int TRAC Y  
10 string Strike Type +CG, -CG, +IC, -IC
11 int +CG 1-Yes, 0-No
12 int -CG 1-Yes, 0-No
13 int +IC 1-Yes, 0-No
14 int -IC 1-Yes, 0-No
15 int Strikes Since Midnight  
16 int Noises Since Midnight  
17 int Close Since Midnight  
18 int CG+ Since Midnight  
19 int CG- Since Midnight  
20 int IC+ Since Midnight  
21 int IC- Since Midnight  
22 int Peak Rate Per Min Since Midnight
23 string Peak Rate Time hh:mm:ss
24 int Strikes /Min  
25 int Noises /Min  
26 int Close /Min  
27 int +CG /Min  
28 int -CG /Min  
29 int +IC /Min  
30 int -IC /Min  
31 int Current Rate Minutes - X below
32 int X Min Strikes User Selectable counter
33 int X Min Noises 2 Min - 60 Min
34 int X Min Close  
35 int X Min +CG  
36 int X Min -CG  
37 int X Min +IC  
38 int X Min -IC  
39 string Upload Rate Normal or High
40 string Up Time hh:mm:ss (154:08:23 )
41 string Last Strike Time hh:mm:ss
42 int Days Ave Bearing Degrees
43 int Day's Ave Distance Km or Mi as Selected
44 int 1 Min Ave Bearing  
45 int 1 Min Ave Distance  
46 int X Min Ave Bearing  
47 int X Min Ave Distance  
48 int Peak Burst Rate Per Sec Since Midnight
49 string Peak Burst Time hh:mm:ss
50 int Strikes Minutes # of Minutes stored in NSStrikes.txt
51 int Antenna Offset 1 - 360
52 int Distance Units Being Used 0 = km, 1 = mi

NSStorms.txt & NSOldStorms.txt - Comma Delimited - Storm Information for Upload and an Option to Archive Each Day

Position Type Name Description
0 string Storm ID e.g. A-9732
1 string Detect Date mm-dd-yy
2 string Detect Time hh:mm:ss
3 int Detect Bearing 0-360 Degrees
4 int Detect Distance Km or Mi as Selected
5 int Detect X See the Manual
6 int Detect Y  
7 string Last Active Time hh:mm:ss
8 int Current Bearing 0-360 Degrees
9 int Current Distance Km or Mi as Selected
10 int Storm X See the Manual
11 int Storm Y  
12 int Current Strike Rate  
13 int Max Strike Rate  
14 string Max Strike Time hh:mm:ss
15 int Bearing When Closest  
16 int Closest Distance  
17 string Closest Time hh:mm:ss
18 int Category 0-3 Weak -> Severe
19 int Max Category See Manual for Details
20 int Current Trend 0-3 See Manual
21 int Total Strikes  
22 int +CG Strikes  
23 int -CG Strikes  
24 int +IC Strikes  
25 int -IC Strikes  
26 int Close Alarm Distance Km or Mi as Selected
27 int Severe Strike Rate  
28 int Severe Cell Strike Rate  
29 int Close Alarm 0 - silent, 1 - triggered
30 int Severe Alarm 0 - silent, 1 - triggered
31 int Cell Alarm 0 - silent, 1 - triggered
32 string Duration hh:mm:ss

NSGraph.txt - Comma Delimited - User Selectable Log Interval and File Length - Suitable for JpGraph, GraphWeather and other charts.

Position Type Name Description
0 int Year yyyy
1 int Month mm
2 int Day dd
3 int Hour hh
4 int Minute mm
5 int Second ss
6 int Strikes Since Midnight  
7 int Noises Since Midnight  
8 int Close Since Midnight  
9 int Strikes /Min  
10 int Noises /Min  
11 int Close /Min  
12 int +CG /Min  
13 int -CG /Min  
14 int +IC /Min  
15 int -IC /Min  
16 int Current Rate Minutes - X below
17 int X Min Strikes User Selectable counter
18 int X Min Noises 2 Min - 60 Min
19 int X Min Close  
20 int X Min +CG  
21 int X Min -CG  
22 int X Min +IC  
23 int X Min -IC  

Revisions

Version    1.0   3/21/09   Initial Release
  1.01   5/23/09   Modification to enable the LD-250
  1.02   7/7/09   Changed midnight and counter routines
  1.03   7/16/09   Changes to save config and NSStrikes midnight code
  1.04   7/19/09   Command line switch added to start minimized (nslog m)
          nsFtp will now kill itself if not done in 120 seconds
          More tweaks to the NSStrikes midnight code
  1.05   7/27/09   Added compression to nsFtp and tweaked some of the settings
          More work on the NSStrikes midnight code
          "Loosened" the strike filters to hopefully take care of the occasional "brain dead" condition
  1.06   8/6/09   Modified the strike capture thread (again)
          Another change to NSStrikes midnight code & added a range check to the times
          Changes to ftp timing to reduce "collisions"
  1.07   11/6/09   One last change to NSStrikes management
          Another improvement to strikes capture
          Changes to improve peak rate and time
          Added code to prevent user selection of the \nslupload\ folder for storing files
          Removed the message box from "red x" exit. It Was holding up re-boots for some
  1.08   3/26/10   Code change for Strikes file existence
          Added back the red x message box but made it optional
          Changed code where selecting files for upload
          Changes for a locked file issue
          Change to server determination code in nsFtp & added an extra kill attempt
  1.081   3/28/10   Added low level abort code to nsFtp
  1.09   4/25/10   Added Average strike distance and direction.
          Highlighted the last strike type
  1.1   7/17/10   Moved strikes.txt pruning call
          Some minor display tweaks
          Changed the strike type determination code
          Found & fixed a variable that could contribute to incomplete strike data (Risd)
          Fixed a bug where raw logging was unchecked but heartbeats & noises was checked
          Added Peak Burst (strikes/sec)
          Added a backup of the NSLog.cfg that is used if this file goes missing
          Hopefully found the cause of the "brain dead" condition that happens very occasionally
          Fixed a long standing bug in the filename date when archiving NSRaw.txt at the end of the month
          Added the option to increase the processor priority of NSLog.exe
          Added an additional low level abort call to nsFtp that was previously overlooked
  1.11   7/19/10   Fixed where the new processor priority box was not visible on the config tab
          Improved new event filter
  1.12   7/19/10   Fixed bad bug in the "improved" new event filter
  1.13   8/31/10   Re-adjusted thread priorities - big improvement!
          Moved ftp processing into a thread
          Fixed bug where NexStorm is restarted while NSLog stayed running
          More work on the acquisition filter
          Added an immediate refresh of the screen when coming out of minimize
          Added strike type percentage meters
  1.14   9/14/10   Added color selection for the gauges & strike hilighting
          Increased the ftp thread priority
          Fixed the LD-250 error in the aquisition filter
  1.2   1/16/11   Several significant tweaks to the new event filter (large improvement)
          Changed how NSLog and nsFtp interact to reduce (eliminate?) zombie nsFtp's
          Minor tweak to nsFtp kill time to determine if hung
          Fixed a Win2K problem displaying in 6 main screen fields
          Added an internal ftp option to replace nsFtp (see the configuration tab)
  1.3   4/4/11   Added an accelerated rate to the strikes tab to limit the size of the file during high activity
          Added the current value of that rate to NSRealtime
          Added the reading of IPC-2 to create a NSStorms file & added a tab for that
          Added the ability to filter out strikes & storms in 2 areas for those who have problem areas (electric fence etc)
          Made a change in the strikes processing thread because we saw it go "dead" during high activity when testing
          Fixed a bug in NSStrikes management
  1.31   4/10/11   Previous change to the strikes processing thread reversed (bad idea caused a lockup in a large storm)
  1.32   5/13/11   Fixed problem with minimum storm time determination
          Added antenna offset and units of measurement (mi or km) to NSRealtime
          Added NSStorms and NSOldStorms to the View menu
  1.33   5/27/11   Changed thread priorities as they were causing problems during intense storms
          Removed the "Show Status Area" option
  1.4   6/24/11   Now reads the TracReport.txt file so it knows when storms have been merged and should be removed
          NSStorms.txt & NSStrikes.txt will now be sent every 4-5 minutes when they are empty
          More work on the thread priorities
  1.41   7/19/11   Reduces the frequency that it reads the TRACReport.txt file
          Re-wrote portions of the storm processing code
          Added a list of the current storms to the main screen
  1.5   2/16/12   Worked on merged storms
          More work on the IPC-2 data gathering thread
          Changed some screen updating code
          Utilizes new IPC-2 info that Relko added in NexStorm 1.9 to detect merged storms
  1.51   3/5/12   The storms area at the bottom now says "IPC-2 Not Active" until it receives the first message
  1.6   3/20/12   Found & fixed the problem that kept ver 1.5 from working for some users
          Changes to the strike aquisition thread to finally get rid of the "brain dead" condition during extreme activity
  1.61   4/9/12   Greatly improved the IPC-1 handling thread so now it will handle the "super" storms efficiently
          Tested to ~1800 events (strikes & noises) per minute for 1/2 hour while missing only .0013 of the total events
          Added a 2nd attempt to the NSGraph.txt update in case something interferes with the first one