Software Requirements Specification for VHF/UHF Logging Program 1 Introduction 1.1 Scope This specification defines the requirements for a VHF/UHF logging program to be used by a rover, or fixed station participating in any of the ARRL sponsored contests which are held in June, August, September and January of each year. For the purposes of this document, the programs shall be called "RoverLog" (RL). 1.2 Target RoverLog is intended for operation using Intel 386 or higher desktop, portable or transportable machines. The proposed open development environment for this program should facilitate porting to other architectures, such as the PowerPc. The target machine is expected to support a standard windows enviroment that can be run under unix, Windows95 or WindowsNT. The TCL/Tk toolkit is the baseline for implementing this window environment. 1.3 Licensing RoverLog is intended to be licensed under the GNU Public License (GPL). This licensing allows for free distribution of RoverLog. The GPL requires that the source code be freely available. 1.4 Maintenance Tom Mayo, N1MU is the primary developer/maintainer of the RoverLog program. Sigurd Kimpel, KJ1k maintains the program documentation and supports development and maintainance of the program. Anyone wanting to contribute to this effort should contact either of the above. 2. Applicable documents TBSL 3. Requirements 3.1 Interface Requirements The RL program shall provide software interfaces support to a pointing device, a Global Positioning System (GPS) Receiver and a Terminal Node Controller. The user shall be able to select which of these interfaces are to be used (since most target machines will not support all of these interfaces). The Garmin Protocol, used with Garmin GPS45XL and later units shall be supported. The RL program shall interface to the QRZ CD-ROM. The RL program shall provide "socket" interfaces to support TCP/IP networking. Unix implementations shall support the "Berkley Socket Interface Standard". Windows95/WindowsNT implementations shall support the WinSock 2 interface. The RL program shall support networked operations by broadcasting successful contacts and by receiving and logging contacts reported by other machines. Contact information shall be encapsulated in User Datagram Protocol (UDP) data frames. 3.2 Data Requirements The RL shall log contacts between the user and other amateur radio stations participating in VHF/UHF contests. A successful contact (a.k.a.) a QSO, shall contain the following information; the UTC date/time of the contact, the callsign of the station contacted, the four character Maidenhead Grid Square (i.e., FN32) of the using station, the Grid Square of the station contacted and the frequency (i.e., 432) in MHz. Additional information such as mode, signal report and comments may be supported, but are not required for a successful contact. Unsuccessful contacts shall be logged. These contacts include QSOs that are not complete as well as duplicate contacts. In some cases, unsuccessful contacts may be upgraded to successful contacts when are the requisite information has been entered. The UTC date/time of the contact shall be stored as an unsigned double representing the number of seconds from a reference Julian date. The date/time format and processing are intended to be POSIX compatible, allowing reuse of the date/time handling routines resident in modern operating systems such as Windows, Unix and their varients. Each callsign shall consist of a prefix string, a suffix string, and an optional modifier. These elements are concatenated when displays and reports are generated. For example; KJ1K/R contains a prefix (KJ), a suffix (1K) and the modifier /R. Opional modifiers must start with the "/" character. Six character Maindenhead Grid Squares (i.e., FN32JK) shall be supported, but the operator need only enter four characters for a successful QSO. Logged data shall be formatted as eight bit ASCII character strings in any format that is convenient for processing. The RL program shall support exporting of data to the standard ARRL contest file format. The RL program shall support exporting of data in Comma Separated Variables (CSV) format. The RL program shall support importing of data from the CT contest program and the Log-EQF program. 3.3 Data Entry The RL program shall support real time and non-real time logging of data. During real time data logging, the date/time stamp shall be provided automatically by the host computer real time clock. For non-real time log entries, the program shall prompt the user to enter the date/time information manually. Data entry shall not require use of a pointing device, such as a mouse. Use of a pointing device shall be supported. A tab character or a return character shall advance the data entry cursor to the next field. A shift tab shall move the data entry cursor to the previous field. An alternate tab character shall bring the next data display/entry window into focus. An alternate-shift tab character shall bring the previous data display/entry window into focus. The F1 key shall present a menu of user options. The data entry methods perform data validitiy checks to reject data which is formatted incorrectly, or parametric data that is outside of the contest scope. Data validity checks shall be made on callsigns, dates, frequencies and grid squares. 3.4 Data Display/Entry Windows The RL program shall support the following data display/entry windows: a. Primary Data Entry/Edit Window. The Primary Data Entry/Edit window shall display all the fields associated with a given contact. The Primary Data Entry/Edit window shall indicate which fields are necessary for a successful contact. The Primary Data Entry/Edit window shall display and update date and time when logging real time data. The Primary Data Entry/Edit window shall allow update of date and time when editing or logging non-real time data. The Primary Data Entry/Edit window shall support entry of frequency band and operating mode via "selection boxes" or "radio buttons". The supported frequencies are; 50 MHz, 144 MHz, 222 MHz, 432 MHz, 446 MHz, 903 MHz, 1296 MHz, 2304 MHz, 3456 MHz, 5760 MHz, 10 GHz, 24 GHz, 47 GHz and light. The supported modes are cw, ssb, fm and digital. Entries into the grid square sent, frequency band and operating mode fields shall default to the values used for the previously entered contact or default to empty for the first contact. If a connected GPS is generating "good" position data, then the grid square sent field shall be automatically filled in with the six digit Maidenhead Grid Square. b. History Window The History window shall display the callsigns and frequency band of the TBR 20 contacts. As a goal, concurrent display of the History and the Primary Data Entry/Edit windows will be supported. The History Window shall default to the most recent contacts. The History Window shall have a scroll bar for displaying earlier contacts. The user shall be able to select "filters" to display data for a single band. If no filter is selected, the history log shall display contacts chronologically for all bands. c. Grid Square Window The Grid Square window for a specific band shall display a table that summarizes the grid squares worked, the number of successful contacts in each grid square from a given location and the grid square locations the rover station was in. The Grid Square window shall be formatted with the grid squares worked as rows, the grid squares the rover station was in as columns and the number of contacts as cells. The Grid Square window shall have scroll bars to view data not in the active area. Double clicking on a specific cell shall display a child window that details the contacts in the specified cell d. Callsign Database Window The Callsign Database window shall display information for a user specified callsign. The information displayed in the Callsign Database window shall be composite information from the QRZ CD-ROM and data from previous contacts. The Callsign Database window shall display bearing and distance estimates to the specified callsign (if available). 4.0 Design and Construction 4.1 Programming Languages The RL program shall be written in accordance with the proposed ANSI C++ programming language defined by TBSL. The TCL/Tk Toolset shall be used for window designs. 4.2 Configuration Management The RCS shall be used to track revision status. 4.3 Compile/Build Tools The GNU compiler version 2.8 or later shall be used to compile the RL program. Make files shall control the generation of program images.