Athena, some history
Athena is the goddess of wisdom, peace, warfare, strategy, handicrafts and reason, shrewd companion of heroes and the goddess of heroic endeavour
The goddess Athena was a superb strategist and many of the Greek myths recount tales of her help given to various gods, goddesses, and heroes as they went into battle or faced seemingly impossible tests. Although she was widely known in one of her roles as "Athena Goddess of War", it was as a mediator and a planner that she excelled. She always worked to prevent war, but once war had been joined the goddess Athena fought efficiently for her side.
In this constellation Athena will be used as a graphical interface to display N1mmLogger compatible real time contests statistics including goal data. Athena can help you with the best strategy and do welll in e.g. the CQ "Worldwide War"contest....
Athena provides the following features
- Display of real-time contest statistics
- Graphs will show hourly rate, cumulative totals and goal
- Graphs selectable for number of QSO's and multipliers, points or score
- Graphs per operator and band
- All band numerical statistics with indication on how many minutes/qso's a new multiplier will be "worth"
- Goal data can be imported from previous (n1mmlogger) contests and is text file based
- Goals can easy manipulated to fit into current contest view
Athena was developed to provide a (near) real-time insight in how the contest is progressing; How many qso's, multipliers have been worked and what the current score is. This data is presented per band and/or as a total view for all bands. Operator specific data can be shown to see how your operators are doing individually. In addition goal data can be added to the band graphics to get a feeling how thing are going. This goal can be imported from previous contest or build up from scratch. Goal data can be easily saved and read back as requested. Due to the fact that the current goal implementation of n1mmlogger is rudimentary the goal data of n1mmlogger is not used.
Athena will only read data from n1mmlogger and will not make any alteration to any n1mmlogger file, including the precious database file (.mdb). Statistics will be calculated on the fly and stored in between. Only the created goal data will be stored on the file system in a XML file format. Athena user setting (a.o. last contest, or if operator data is enabled) will be stored per (windows) user in the user data application directory
Main screen will be displayed when Athena is started and will reflect the last state (contest, graph options, etc) as saved on previous exit.
- About/Help button : Provide information on the current Athena version
- Open file button: Select a n1mmlogger database file (*.mdb) where the contest resides whom statistics you would like to get
- Contest selection dropdown: Select one of the contests within the current database file. In case of zero qso's in the selected contest an information icon is shown
- Update interval selection: Select one of the predefined intervals. Athena will update all graphs according to this interval. Indication when a new update is available is given at the bottom of the window with the progress indicator
- Item selection: Select which data to be displayed in the graphs. Possible selections are QSO, Multipliers, Points and calculated Score (multipliers * points)
- Operator data checkbox: When selected, the requested graphs are detailed with operator data, i.e. When operators are used in n1mmLogger (CTRL O) for each of the operators the data is presented as stacked bars. Note: for the score (mult*points) calculation it is assumed that every operator has an equal share
- Window alignment selection: All graph windows are displayed within the main window (technical called a multiple document interface or MDI). Graph windows can be stacked, horizontal or vertical aligned
- Goal button: Goal data can be enabled to show along with the other statistics. Goal data can be read, created and edited
- Stats button: When selected the total statistics are given in a numerical format. Also an indication is provided how much a new multiplier would be "worth" at this moment. This indication can be used to determine how long you should keep trying working the (new) multiplier or going to look after a new one....
- All Bands, Bands, Total buttons: These buttons are build up dynamical and will reflect the actual bands in the contest with qso's.
- Left click: Only the selected band will be displayed full size in the main window
- CTR Left click: The selected band will be added to the existing graphs
- Bottom part of the window, Update indicator: Progress indicator, when green bar is retracted a new update of all graphs will be done. To force an immediate update you can Left click in the progress bar or on the "Update now!" text
Band graph window will give the requested statistics (near) real-time. Dependent on the options set it will give QSO, Multiplier, Points and Score information as aggregated per hour and as a cumulative running total. In addition, goal and operator specifics are shown
Vertical axis will be automatic scaled, horizontal (Date) axis can be set to a pre-defined set of choices (see below the right click menu options)
A portion of the graph can be zoomed in by "drawing" a rectangle with Left mouse button clicked
Right Click menu options
- Copy : Copies the image to the clipboard. Copied image can be pasted for e.g. documentation in ms-word documents
- Save image as : Saves the image to a local file in a number of different file formats
- Page setup : Setup the page for printing purposes
- Show point’s values : When enabled, the distinct point values are shown when the cursor is on a valid point value pair in the graph
- Un-Zoom : When zoomed in, this will reset the zoom factor
- Undo all Zoom/Pan : When zoomed in and panned in will reset both
- Date axis conform this band only:
Date axis will be scaled to just hold all date values for this band
- Date axis conform all bands:
Date axis will be scaled to just hold all date values taken into account the first and most recent qso of all bands
- Date axis conform this band to nearest full day :
Date axis will be scaled to just hold all date values for this band, but rounded to the nearest full day (00:00)
- Date axis conform all bands to nearest full day :
Date axis will be scaled to just hold all date values taken into account the first and most recent qso of all bands, but rounded to the nearest full day (00:00)
In addition to the real time contest data, static goal data be displayed on the same graph as well. Goal data is displayed as a separate trace and will give the accumulated values. It can be set for each band separate, for the total (all bands) only or both.
Goal data can be build up from scratch or based on a previous contest (i.e. the contest results you achieved last year) and altered to suite your needs. More than one set of goal data could be prepared in advance, stored and applied quickly to accommodate different scenario's (good conditions or major aurora...). Goal data is saved as an .xml file and therefore can be just read for convenience with a normal text editor if needed.
- Open saved goal file: A file dialog will open and an .xml goal file can be selected. Data of this goal file will be used on the graphs
- Create/Edit goal: Based on the (if applicable) goal file this goal data will be loaded, edited and saved
Editing of goal data is done by providing hourly based goal data. The date/time of this goal data should match exactly the date/time of the active contest. In the Tool menu a handy tool is provided to shift all date/times by a fixed amount.
- File/New : A blank goal template is given, ready to input the relevant goal data
- File/Open : An already saved (.xml) goal file can be loaded or an n1mmlogger (.mdb) database. In case of a n1mmlogger database subsequent selections are given to select the appropriate contest instance. Goal data will be constructed according to this contest
- File/Save : The onscreen goal data will be saved under the active goal data file name
- File/Save as.. : The onscreen goal data can be saved under a different file name
- File/Print : The onscreen goal data could be printed. Not implemented yet...
- File/Exit : Exit the goal editor, in case of unsaved data the user will be warned to save the data first
- Tools, Offset date/time : Open the tool window to calculate/set a to be applied offset to the actual goal data
Goal data is edited by using 2 tables, left table will display/edit the data on a per band bases and the right table the "all bands total" data. Both tables can be "connected" in a sense that the "all bands total" table will automatically calculate the totals of all bands. If "not connected" the "all bands total" tables can be edited as needed, but will not present necessarily the correct totals !, although the edited goal data for the individual bands and the "all bands total" will be shown on the relevant graphs. Use of the "not connected" mode would be to just provide "all bands total" data in case you are not interested in the individual bands.
- Filter on band : Select the band to provide goal data. Presented list is automatically build and will show in bold first the bands active in the current goal data. Subsequent all other bands are shownd which could exists as n1mmlogger valid bands. Please take not of the awkward 420MHz/32MHz and 1240/1300 MHz bands
- Auto totals : Will "connect" both tables as described above. A warning will be given if this table already contains data.
- Add row: Go to the last row (row indicated with an asterix *) and input data
- Delete row: Select the row by selecting the first cell (complete row will be blue) and press the Delete key
- Change cell: Select the to be edited cell and type in a new value or input a new date/time by using the date/time picker dialog
- Sort Colomuns: Goal data can be sorted on all columns. Select the column to be sorted by clicking the column header. Sort direction will be reversed when you click again on the column header as indicated by the small arrow
To shift the present goal data by a fixed amount in a handy way an offset value can be applied. This offset value can be calculated or direct input. An offset value (hours) will be calculated based on the two date/time values. Initially both Date/time boxes will be preset with the date/time value of the first qso in the active contest and the first qso in the present goal data, but can overriden as needed.
How can this functionality been used:
- Open the contest whom statistics need to be shown/followed
- Start the contest in the normal way, presumably in the first hour you will make at least one qso :-)
- Enable Athena's goal window and load goal data from previous year’s contest via File/Open and select the appropriate n1mmlogger database and contest instance
- Open the goal tool "offset date/time". Automatically the needed offset will be calculated and can be applied to the present goal data
- Save the goal data, and load it as the goal data to be used
End result is that previous year’s contest results are automatically aligned with this year contest date/time and on the different graphs last year’s results is shown as the to be beaten score!
StatisticsCurrent contest statistics are given numerical in this window, together with some indication how much a new multiplier would be "worth".
In the above picture one multiplier would add 6200 points to the score (the amount of total points gained so far). Also if you would need to add 6200 to your score by making only qso's you would need by average (up till now) 5 qso's and with the present rate this would mean (on average) 4 minutes.
At the moment I think this indication is fairly rudimentary, so if you have a better algorithm, drop me an email....
To deploy Athena, please unzip the latest athena.zip (see the "resources" tab) and store both files in the same directory. Athena consist of 2 files; the actual executable (athene.exe) and a DLL (zedgraph.dll) which provides the graphical engine (Zedgraph is an open source project)
As pointed out above, Athena gets the real-time data by reading the active n1mmlogger contest instance periodically. This contest instance resides in the active n1mmlogger .mdb database (e.g. ham.mdb). This database will be read and written by n1mmlogger in the normal way when using the n1mmlogger application. Normally you would like to have Athena run on a different computer as the one on which n1mmlogger runs and actual contest logging is done. A number of deployment scenario's come to mind:
- Deploy on a separate "Athena host" also n1mmlogger and connect both n1mmlogger and Athena to the same local database (e.g. ham.mdb). Add this host to the, if applicable other n1mmlogger hosts when using n1mmlogger's multi station setup or enable multi station setup even when a single user setup would be adequate for the particular contest. At the background n1mmlogger will treat the "Athena host" as another station and will keep that database/contest instance in sync. Please refer to the n1mmlogger documentation how to setup a multi station configuration
- Deploy Athena on a separate computer and connect to the active n1mmlogger database (which will normal resides) on a different host via windows network/file sharing mechanism
- Deploy Athena and n1mmlogger on the same host. Connect both Athena and n1mmlogger to the same active n1mmlogger database. This is the least favored configuration as Athena will penalize computer performance. However for testing and learning Athena this is the most used configuration
Athena is developed using Microsoft Visual Studio 2008 Express as a Window Forms .NET (v3.5) application using c#.
Computer requirements are moderate, a common personal computer with SVGA screen and running XP or Vista is sufficient. However, .Net 3.5 should be installed. Host should be network connected to the n1mmlogger network (see "Deployment")