CS4311 Fall 2002

Remotely Controlled Radio Frequency Jammer Software Requirements Specification Version <1.2> 4/5/2018

 2002 CS4311 Software Requirements Specification

Document Control

Approval The Guidance Team and the clients shall approve this document.

Document Change Control Initial Release: 6/14/02 Current Release: Version 01.0 Indicator of Last Page in Document: § Date of Last Review: 8/23/2002 Date of Next Review: none Target Date for Next Update: None

Distribution List This following list of people shall receive a copy of this document every time a new version of this document becomes available: Guidance Team Members: Dr. Steve Roach Dr. Ann Gates Francisco Javier Leyva Client: U.S. Army Research Laboratory / Survivability Lethality Analysis Directorate Mr. Ed Zarrett, Aviation Group leader Mr. Rubin Leon, Aviation Group member Software Teams: Decerto Invictus Motevation Walkabout IceSoft

Change Summary The following table details changes made between versions of this document

Version Date Modifier Description 0.1 5/5/02 F. Leyva Combined SRSs from Software Teams 0.2 7/16/02 S. Roach Edited to remove redundancies 0.3 8/5/02 F. Leyva/S. Roach Use Cases, reorganization 0.4 8/6/02 S. Roach/F. Leyva Minor edits, appendices, object model, use case diagrams 0.5 8/10/02 S. Roach Figure Sketches 0.6 8/12/02 S. Roach/ F. Leyva Corrected proof errors 1.0 8/25/02 S. Roach/ F. Leyva Document approved by Zarrett and Leon 1.1 10/21/02 S. Roach Errors discovered by 4311 class

Software Requirements Specification CS4311 Fall 2002 Date Page 4/5/2018 ii Software Requirements Specification

TABLE OF CONTENTS DOCUMENT CONTROL...... II

APPROVAL...... II DOCUMENT CHANGE CONTROL...... II DISTRIBUTION LIST...... II CHANGE SUMMARY...... II 1. INTRODUCTION...... 6

1.1. PURPOSE AND INTENDED AUDIENCE...... 6 1.2. SCOPE OF PRODUCT...... 6 1.3. DEFINITIONS, ACRONYMS, AND ABBREVIATIONS...... 7 1.3.1. Definitions...... 7 1.3.2. Acronyms...... 10 1.3.3. Abbreviations...... 10 1.4. OVERVIEW...... 10 1.5. REFERENCES...... 11 2. GENERAL DESCRIPTION...... 12

2.1. PRODUCT PERSPECTIVE...... 12 2.2. PRODUCT FEATURES...... 12 2.2.1. Common Use Cases...... 13 2.2.1.1. Use Case 1: Sender Communicates with Receiver...... 13 2.2.1.2. Use Case 2: Display Jammer Information...... 14 2.2.2. Master Use Cases...... 15 2.2.2.1. Use Case 1: Master Sends Setting to Slave...... 15 2.2.2.2. Use Case 2: Master Controls Jammer...... 17 2.2.2.3. Use Case 3: Master Display File Contents...... 18 2.2.2.4. Use Case 4: Master Manage Data and Configurations...... 18 2.2.3. Slave Use Cases...... 19 2.2.3.1. Use Case 1: Slave Controls Jammer...... 20 2.3. USER CHARACTERISTICS...... 22 2.4. GENERAL CONSTRAINTS...... 22 2.5. ASSUMPTIONS AND DEPENDENCIES...... 22 3. SPECIFIC REQUIREMENTS: MASTER SYSTEM...... 23

3.1. EXTERNAL INTERFACE REQUIREMENTS...... 23 3.1.1. User Interfaces...... 23 3.1.1.1. User Interface Elements...... 23 3.1.2. Hardware Interfaces...... 25 3.1.3. Software Interfaces...... 26 3.1.4. Communications Interfaces...... 26 3.1.4.1. RS232...... 26 3.1.4.2. Remote communication protocol...... 26 3.2. BEHAVIORAL REQUIREMENTS...... 26 3.2.1. Same Class of User...... 26 3.2.2. Related Real-world Objects...... 26 3.2.2.1. Files: Configuration, System Activity, Experiment Data...... 26 3.2.2.2. TTL Switches...... 27 3.2.2.3. Waveform...... 27 3.2.2.4. DAC...... 27 3.2.2.5. Timer...... 27 3.2.3. Stimulus...... 27 3.2.3.1. System Startup...... 27 3.2.3.2. System Shutdown...... 27 3.2.3.3. Menu Items Selected...... 28 3.2.3.4. Command Buttons...... 29

Software Requirements Specification CS4311 Fall 2002 Date Page 4/5/2018 iii Software Requirements Specification

3.2.3.5. Other Mouse Clicks and Keystrokes...... 31 3.2.3.6. Messages Received...... 31 3.2.4. Related Features...... 32 3.2.4.1. Set TWT Mode...... 32 3.2.4.2. Set TWT Input Voltage...... 32 3.2.4.3. Set Waveform...... 32 3.2.4.4. Override Slave...... 32 3.2.5. Functional...... 32 3.3. NON-BEHAVIORAL REQUIREMENTS...... 32 3.3.1. Performance Requirements...... 32 3.3.2. Qualitative Requirements...... 33 3.3.2.1. Availability...... 33 3.3.2.2. Security...... 33 3.3.2.3. Maintainability...... 33 3.3.2.4. Portability...... 33 3.3.3. Design and Implementation Constraints...... 33 3.4. OTHER REQUIREMENTS...... 33 3.4.1. Database...... 33 3.4.2. Operations...... 33 3.4.3. Site Adaptation...... 34 4. APPENDIX A: MODES...... 35 5. APPENDIX B: FREEWAVE TRANSCEIVER DATA...... 36 6. APPENDIX C: COMMUNICATIONS PROTOCOL...... 37 7. APPENDIX D: COMMANDS...... 38 8. APPENDIX E: ERROR AND WARNING MESSAGES...... 42 9. APPENDIX F: CONFIGURATION FILE ENTRIES...... 43 10. APPENDIX G: OBJECT MODEL DIAGRAM...... 44 11. APPENDIX H: STATE TRANSITION DIAGRAM...... 46 12. APPENDIX I: DATA FLOW DIAGRAM...... 49

TABLE OF TABLES Table 1-1Definitions...... 7 Table 1-2 Acronyms...... 10 Table 1-3 Abbreviations...... 10 Table 3-1: GUI Menu System...... 25 Table 4-1: System Modes...... 35 Table 5-1: Freewave Cable Pinout...... 36 Table 5-2: Data Communications Parameters...... 36 Table 7-1: Master and Slave Commands...... 38 Table 8-1 Error and Warning Messages...... 42 Table 9-1 Configuration File Entries...... 43

TABLE OF FIGURES Figure 1 - Remotely Controlled Radio Frequency Jammer Diagram...... 7 Figure 2 -Common Use Cases...... 13 Figure 3 - Master Use Case Diagram...... 16 Figure 4 - Slave Use Case Diagram...... 20 Figure 5 - Main GUI Window...... 24 Figure 6 - Text Message Window...... 30 Figure 7 - Master Subsystem Object Diagram...... 44 Figure 8 - Slave Subsystem Object Diagram...... 45 Software Requirements Specification CS4311 Fall 2002 Date Page 4/5/2018 iv Software Requirements Specification

Figure 9 - Master Controller's State Transition Diagram...... 46 Figure 10 - Data Collector's State Transition Diagram...... 46 Figure 11 - User Interface State Transition Diagram...... 47 Figure 12 - Slave Controller State Transition Diagram...... 48 Figure 13 - Slave Controller State Transition Diagram...... 48 Figure 14 - Master System Data Flow Diagram - LEVEL 1...... 49 Figure 15 - Master System Data Flow Diagram - LEVEL 2 – Process Command...... 50

Software Requirements Specification CS4311 Fall 2002 Date Page 4/5/2018 v Software Requirements Specification

1. Introduction

1.1. Purpose and Intended Audience The purpose of this Software Requirements Specification (SRS) is to clearly and precisely describe the requirements of the software system being developed, hereafter referred to as the Remotely Controlled Radio Frequency Jammer System, the RF Jammer System, or simply the System. The developers will use this document as a reference in the design, implementation, and maintenance of the software.

This document divides the system requirements into two major sections, behavioral requirements and non- behavioral requirements. Behavioral requirements describe the interaction between the system and its environment. Non-behavioral requirements relate to the definition of the attributes of the product as it performs its functions.

The intended audience of this document is the U.S. Army Research Laboratory Survivability Lethality Analysis Directorate (ARL/SLAD), the Guidance Team, and the software development teams. The SRS serves as an agreement between the aforementioned parties regarding the software to be developed.

Text given in gray highlight refers to changes since the previous version of this document.

1.2. Scope of Product The ARL/SLAD provides survivability support to various U.S. Army programs and agencies and is building a RF jammer to support a missile-firing program. ARL/SLAD is testing the tracking capabilities of missile guidance systems when exposed to RF signals. The jammer, located on a tracked vehicle, will broadcast RF signals intended to interfere with a missile’s guidance systems before and during flight. For safety reasons, this jammer must be remotely operated.

The ARL/SLAD program has requested the development of a Remote Jammer Control System that allows remote operation of the RF jammer. The system will be composed of two subsystems as shown schematically in Figure 1: a master and a slave. The slave system will control the RF jammer. The Master system will provide a user interface and control the slave system remotely. While ultimately the system will support multiple slaves, the system under development will support a single slave. The communication between master and slave is realized through a pair of Freewave wireless modems. This remote capability will allow the users of the system to make comparably many changes to the jammer’s settings than would be possible with a non-remote system. With the potential high cost associated with time on a missile range, this capability minimizes the time spent commuting to and from the jammer site.

While a prototype system has been constructed, it does not fully satisfy client needs. The client desires an improved user interface on the Master system, data logging capability, and robust communication error recovery. The controls must be able to monitor the status of the switches, the execution of the commands, log this information, and be able to change the frequency with which it does this. ARL/SLAD has also requested that the controls allow room for growth.

Completion of this project will provide ARL/SLAD with the capability to control the RF Jammer from long distances (up to 14 miles), improving the efficiency of testing while maintaining a high degree of safety.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 6 Software Requirements Specification

Antenna Antenna

Master Laptop Computer TTL Input Voltage

Output Voltage

Freewave RF Modem or

VIA RS-232

8 TTL Switching lines Software will link through 0-10 volt line (.5 volt RF Jammer Freewavemodem, Need to Increment) Control 8 TTL switches and One 0-10 volt attenuator.

Figure 1 - Remotely Controlled Radio Frequency Jammer Diagram

1.3. Definitions, Acronyms, and Abbreviations

1.3.1. Definitions

Table 1 below lists the definitions used in this document with respect to both the Master-GUI and Slave-UI. The definitions given below are specific to this document and may not be identical to definitions of these terms in common use. The purpose of this section is to assist the user in understanding the requirements for the system. Table 1-1Definitions TERM DEFINITION Acknowledge Packet A packet set to indicate the receipt of a data packet. Analog Signal A continuous signal, typically a voltage signal. Attenuator A device that controls the amount of power that goes into the radio frequency jammer transmitter wave tube. Attenuator output A meter that indicates the voltage output of the TWT. indicator Automatic ping A setting that causes the Master to send pings to the Slave periodically according to a user- defined rate. Click An operation using a mouse or other pointing device where the user presses the pointing device button over the desired icon. Command An operation that is carried out by the slave system when a user or the Master system tells it to do so, e.g., to set a waveform, set a voltage, and set the TWT mode. Configuration A collection of TTL switch settings, a value for the outgoing attenuator and a value for the incoming attenuation reading. Comma Separated File in which the first line contains the headings for each column entry. The values are

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 7 Software Requirements Specification

Variables separated by commas (hence the name of the format). Lines end with carriage return/linefeed characters. Countdown Timer The system countdown timer is used to schedule events. There are two types of events: normal events such as data collection and special events such as communication failure. Current Waveform Current waveform refers to the waveform to which the RF jammer is set and that is reflected on the interfaces at the Master and Slave ends of the system. DAC card digital-to-analog converter (interface used to communicate between slave system and jammer) Data Packet A packet containing a subset of the data in a message. Data Read Interval The maximum period of time between two data readings for display on the Master GUI. Data Transmission The transmission of a Data Block(s) to the Master/Slave to the Slave/Master through the RS-232 Transceiver. Directory A special file in a hierarchical file system that contains either files or other directories. Directory is synonymous with folder. Double Click Two down and up motions on the mouse (or other pointing device) button completed in rapid succession. Drag An operation using a mouse or other pointing device where the user presses the pointing device button and moves the pointing device while the button is pressed. File name The name of a file in a file system. A file name consists of a path name and a unique file name. The root name of a file name is a file name without a path name and without a file extension. File extension A set of characters in a file name including and following the right-most period of the file name. Focus See Window Focus. Folder See Directory. Freewave Modem A model DGR 115 Freewave Wireless Spread Spectrum Data Transceiver, used to facilitate communication between the master and slave systems. Graphical user interface An interface for issuing commands to the Master system utilizing a pointing device, such as a mouse, that manipulates and activates graphical images on a monitor. Host OS The operating system under which the Master end of the Remote Jammer system will run. Icon A small pictorial representation on a screen that represents an action or idea. Input Voltage The amount of voltage, as specified by the user, that is ultimately delivered to the TWT. Jammer See RF jammer Link Refers to the connection status between the RS232 transceivers on the master and slave Local Mode The state in which the slave system will only accept commands from a user at the slave system, and ignore commands received from the Master system. Lock Mode The state that the system is in when all inputs, with the exception of the unlock command, are disabled. Lost Focus Event The GUI event that occurs when a window changes from being the window with focus to a window without focus. Master System A subsystem running on a laptop computer that provides a user interface and controls the Slave subsystem by sending commands to the slave via a wireless RS232 communication line. Measurement Studio A software development tool developed by National Instruments for virtual instrumentation needs, and test, measurement, and automation applications. It includes tools for simulating measurement equipment and communicating with DAC card. Message An arbitrary sequence of bits sent from one machine to another typically composed of packets. MouseClick Event The GUI event that occurs when a mouse (or other pointing device) button is pushed down and released. MouseUp Event The GUI event that occurs when a mouse (or other pointing device) button is released after having been pushed down.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 8 Software Requirements Specification

National Instruments Electronics and software company based in Austin (DAC card and Measurement Studio software are created by National Instruments) Output Voltage The amount of voltage output from the TWTA, read via a 30 Db coupler. Output voltage graph Graph which displays the change in output voltage of the jammer over time (graph displays last 30 minutes of data) Override The act of one system gaining control over another system in order to operate the RF jammer. Packet A fixed format string sent from one machine to another. Two types of packets are data packets and acknowledge packets. Ping Signal sent out by a system to determine the status of communication with another system. Ping Interval The amount of time a system waits between receiving the response from a ping and sending another one. Radiate Emission of radio frequency signals. Remote Mode The state in which the slave system will only accept commands from the Master system and ignore commands from a user at the slave system. Radiate Mode The state in which the jammer is capable of radiating signals from the TWT. RF Jammer A device that emits a particular radio frequency or waveform depending on the setting of its TTL switches. The strength of the RF depends on the input voltage to the jammer’s TWTA. RS-232 Transceiver See Freewave Modem. Set Waveform An action available to the user that allows him or her to change the RF jammer’s current waveform to the desired waveform. Single Click One down and up motion on the mouse button. See Click. Slave Subsystem The subsystem that directly controls the Jammer. This system receives commands from the Master system. Standby Mode The state in which the jammer is not radiating voltage from the TWT. Standby/operate switch refers to the TTL switch that will be used to change the jammer from operate mode (radiating) to standby mode (not radiating) System Setting The information that makes up the current state of the system: TWT Status, Waveform, input/output voltage, ping rate, output voltage read rate, the system currently in control, and the state of the communication. Text Field A region or space where text can be entered or is displayed. Timeout 1. An event resulting from an action taking longer than a fixed allowable time. A timeout may indicate a malfunction in part of the system. 2. A fixed time that provides an upper bound on the length of time an activity may take. It is an error if the activity is not completed before this time. Timestamp Data consisting of a date and a time that corresponds to the exact date and time that some specific information about the system is logged. Transceiver See Freewave Modem. Traveling Wave Tube A component of the RF jammer to which input voltage is supplied. Transmission Retry Limit The number of times a data packet is resent without success before an error is signaled. Transmission Timeout The timeout allowed between the time a data packet is sent and an acknowledge packet is received. TTL Switch A logic switch that has two states: on or off. TTL switch indicator Indicates the positions of the TTL switches. TWT mode One of four modes: OFF, WARMING, STANDBY, and RADIATE. TWT Output Voltage The voltage received from the slave system. TWT Reading Interval The rate at which a voltage reading is obtained from the jammer’s TWT. TWT-mode TTL Switch TTL Switch that sets TWT to either standby or operate mode. Unlock Mode The state that the system is in when all of the system’s functionality, with the exception of

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 9 Software Requirements Specification

the unlock function, is enabled Voltage Input The voltage received from the Master system. Voltage read interval Refers to the number of seconds between updating the output voltage Warming Mode A state in which the jammer cannot be used to radiate signals. Waveform A radio frequency that is defined by a particular selection of TTL switches on the RF jammer. Window An element of a graphical user environment that contains at a minimum a border and a viewing area. Window Focus A property of a unique window in a windowing GUI. The window with window focus receives input events such as keystrokes and mouse events. Windows without focus do not receive these events. Windows ™ The Windows operating system developed by Microsoft.

1.3.2. Acronyms

Table 1-2 Acronyms ARL/SLAD Army Research Laboratory Survivability Lethality Analysis Directorate CSV Comma Separated Value DAC Digital to Analog Converter DFD Data Flow Diagram GUI Graphical User Interface OS Operating System PC Personal Computer RF Radio Frequency SLAD Survivability Lethality Analysis Directorate SRS Software Requirement Specification STD State Transition Diagram TTL Transistor to Transistor Logic TWT Traveling Wave Tube TWTA Trans Wave Tube Amplifier UI User Interface UTEP University of Texas at El Paso

1.3.3. Abbreviations

Table 1-3 Abbreviations Sec Seconds V Volts V/sec Volts per second

1.4. Overview The SRS is divided into three major sections: Introduction, General Description, and Specific Requirements.

General Description, describes the product, its functionality, and its structure. It contains: (1) Product Perspective, which is a description of the use of the product and the environment the product used to; (2) Product Features, which describes the main features of the software from a high-level point of view;

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 10 Software Requirements Specification

(3) User Characteristics, which identifies the different types of system users and describes their individual interaction with the system. Use-cases are used to define the user characteristics; a description of the actors, use-case and scenarios are included in this section; (4) General Constraints, which explains factors that constrain the options of the development team including organizational factor, hardware limitations or safety and security considerations; and (5) Assumptions and Dependencies, which lists each of the factors that affect the requirements stated in the SRS.

Specific Requirements, describes the specific requirements for the software system. It consists of (1) External Interface Requirements, which describes the requirements for user, hardware, software, and communications interfaces; (2) Behavioral Requirements, which divides behavioral requirements into the following categories: related real-world objects, stimulus, related features, and functional requirements; (3) Non-Behavioral Requirements, which includes performance requirements, qualitative requirements, and design and implementation constraints; and (4) Other Requirements, which will list all other requirements not included in the previous sections.

Appendix A describes the modes of operation for the Master and Slave systems. Appendix B describes characteristics of the Freewave Wireless Transceivers. Appendix C describes the communication protocol to be used between the Master and the Slave. Appendix D describes Master and Slave commands and the system responses to these. Appendix E is a listing of error and warning messages delivered by the system. Appendix F describes the configuration file contents. Appendix G contains the object model diagram for the system. Appendix H contains the data flow diagrams for the system. Appendix I contains state transition diagrams of the system.

1.5. References [1] ARL/SLAD, Spread Spectrum Data Transceivers Software Development, CS4310 Handout, 1/15/02. [2] Decerto Invictus, IceSoft, Motevation,Walkabout, Interview Report. January 31, 2002. [3] Decerto Invictus, IceSoft, Motevation,Walkabout, Feasibility Report. March 4, 2002. [4] Decerto Invictus, IceSoft, Motevation,Walkabout, Prototype Report. 2002. [5] Roach, S., [email protected]: Questions, e-mail message dated 2/27/02, 1:31 p.m. [6] Roach, S., Jammer requirements clarification, e-mail message dated 4/13/02, 11:24 a.m. [7] FreeWave Spread Spectrum Wireless Data Transceiver User Manual, FreeWave Technologies, Inc., Boulder, CO.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 11 Software Requirements Specification

2. General Description

2.1. Product Perspective The ARL/SLAD is constructing a RF jamming system to interfere with missile guidance. The RF jamming system will be tested on a missile range, possibly with live fire. The Remotely Controlled Radio Frequency Jamming system will enable remote operation of the jammer.

The system consists of a master unit, a slave unit, a National Instruments DAC card, and a pair of RS-232 Freewave modems, as shown in Figure 1. The controls signals to the jammer consist of a set of TTL switches and an input voltage. Setting the voltage and these switches controls the behavior of the jammer. Other than the main power switch, there are no other jammer controls. For diagnostic purposes, the jammer produces an output voltage.

The Master system communicates with the Slave system using an RS232 protocol. Wireless modems provide for communication over the required distances (up to 14 miles). The Master system will run on a laptop or notebook computer utilizing the Windows 2000 or Windows 98 operating system. This subsystem provides an intuitive user interface, transmits commands to, and receives data from the Slave subsystem. The Master system shall have the following capabilities.

 The Master will provide an interface to display the current TTL switch settings and output voltage, including voltage data from the previous half-hour of operation.  The Master will provide an interface to change the TTL switch settings and the output voltage.  The Master will facilitate creation, modification, and deletion of switch configurations called waveforms.  The Master will collect and store data acquired from the Slave. The format of this data must be compatible with Microsoft Excel. The data collection rate must be user-configurable.  The Master will regularly check the status of communications with the Slave and immediately report communication failure.

The Slave system will be interfaced to the jammer via a National Instruments DAC card. The Slave system shall have the following capabilities:

 The Slave will set the TTL switches and output voltage on the DAC card, allowing control of the jammer.  The Slave will read the voltage output by the jammer.  The Slave will respond to commands sent by the Master.  The Slave will report data to the Master.  The Slave will provide a user interface that allows operation without a Master.

2.2. Product Features This section summarizes the essential features of the Remote Jammer Control System from a user perspective. The system is conveniently divided into two subsystems: the Master system and the Slave system. This section will present use case diagrams and descriptions. Use cases describe the interactions between the user, the GUI provided for the Freewave System, the DAC, and the host OS. Use case diagrams for both master and slave systems are presented along with a detailed description of each use case involving the interaction of the systems and the user.

The primary functions of the Master system are to provide an interface that allows a user to control the RF jammer, to display the status of the jammer, and to manage configuration and data sets. The primary functions

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 12 Software Requirements Specification of the Slave subsystem are to control the jammer and to provide a user interface to display the current status of the jammer.

In the following descriptions, steps in a scenario are numbered sequentially. Alternative actions or outcomes to a particular step are indicated by the flag “(ALT #)” where # is an alternative listed below the particular scenario. These alternatives replace steps in the main scenario. An alternative may return to a step in the main scenario if indicated by the alternative steps.

2.2.1. Common Use Cases Both the Master and the Slave communicate using a common protocol. The protocol is intended to ensure the integrity of the communications. A message is a string of data to be transferred from a sender to a receiver. A message is divided into one or more packets. A packet is a fixed-format element transferred from the sender to the receiver. A data packet contains parts of the message. The sender sends a data packet to the receiver. The receiver sends an acknowledge packet back to the sender. The system consists of a single Master and one or more Slaves.

Actors Sender: The machine sending a message to a receiver. Receiver: The machine receiving a message.

Sender Communicates with Receiver

Sender Receiver

Display Jammer Information

Figure 2 -Common Use Cases

2.2.1.1. Use Case 1: Sender Communicates with Receiver Used by: Common Use Cases 2, 3, and 4 Preconditions: The Sender and Receiver systems are running. The Freewave RS232 transceivers have established communications with each other as indicated by green CD, TX, and CTS indicator lights.

2.2.1.1.1. Scenario 1: The Sender sends a message to the Receiver. 1. The Sender has a message to send to a Receiver. 2. The Sender decomposes the message into a sequence of data packets. Each packet has a header containing, among other things, a redundancy check, a field that can be used to check the accuracy of the data transmission (i.e., that the data received is identical to the data sent). 3. The Sender sends each data packet (See Scenario 2) (Alt 1). 4. End of use case.

Alt 1: The packet send fails. A1-1. The Sender writes a message to the System Activity File. A1-2. The Sender displays a communication error on the screen.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 13 Software Requirements Specification

A1-3. End of use case.

2.2.1.1.2. Scenario 2: Sender sends a Data Packet. 1. The Sender sets the transmission retry count to zero. 2. The Sender sets the countdown timer to the packet transmission timeout. 3. The Sender writes the data packet to the Freewave Transceiver RS232 port (Alt 1). 4. The Receiver receives the packet and returns and acknowledge packet to the Sender. 5. The Sender receives the acknowledge packet before the transmission timeout time expires (Alt 2). 6. The Sender resets the countdown timer. 7. The Sender compares the redundancy check of the acknowledge packet with the redundancy check of the data packet. They are identical (Alt 3). 8. End of use case.

Alt 1: Write to RS232 port fails. A1-1. The packet send operation fails. A1-2. End of use case.

Alt 2: Transmission timeout occurs. A2-1. The transmission retry count is incremented. A2-2. The transmission retry count is less than the transmission retry limit (Alt 2.1). A2-3. The use case continues with step 2.

Alt 2.1: The transmission retry limit is exceeded. A2.1-1. The packet send operation fails. A2.1-2. End of use case.

Alt 3: The redundancy checks are not identical. A3-1. The use case continues with step A2-1.

2.2.1.1.3. Scenario 3: Receiver Receives Data Packet Summary: Receiver receives a data packet on the RS232 port. 1. The Receiver compares the destination address in the packet header to the Receiver address. They are identical (Alt 1). 2. The Receiver computes the redundancy check from the data. 3. The Receiver compares the redundancy check with the redundancy check in the packet header. They agree (Alt 2). 4. The Receiver sends an acknowledge packet to the Sender. 5. End of use case.

Alt 1: The destination address does not match the Receiver address. A1-1. The packet is ignored. A1-2. End of use case.

Alt 2: The redundancy checks to not match. A2-1. The packet is ignored. A2-2. End of use case.

2.2.1.2. Use Case 2: Display Jammer Information Use Case Summary: The Master and Slave systems automatically display and continuously update the TWT voltage input and output, TTL switch settings, TWT mode, Lock mode, and current communication status. Preconditions: None.

2.2.1.2.1. Scenario 1: Display TWT output voltage.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 14 Software Requirements Specification

Trigger: The local system (either the Master or a Slave) has received a signal indicating the Data Read Interval has expired. 1. The local system acquires the current TWT input and output voltages (see sections 2.2.2 and 2.2.3) (Alt 1). 2. The local system displays the voltages to the Voltage Display Window and adds the voltages to the TWT Voltage Display Graph. 3. End of use case.

Alt 1: The system is unable to acquire voltages. A1-1. An error record is added to the System Activity File. A1-2. System displays error to user. A1-3. End of use case.

2.2.1.2.2. Scenario 2: Display connection status. Trigger: Ping interval has elapsed. 1. The local system (either the Master or a Slave) sends a ping to its partner system (a Slave or the Master, See Use Case 1). The local system (either the Master or a Slave) sends ping data packet to its partner system (a Slave or the Master, See Use Case 1). 2. The partner system receives the ping and sends an acknowledge packet. 3. The local system receives the acknowledge packet (Alt 1). 4. The local system indicates that RS232 link is still maintained. 5. End of use case.

Alt 1: Local system does not receive data packet. A1-1. The local system adds entry (RS232 link lost) to the System Activity File. A1-2. The local system indicates that the RS232 link is not active. A1-3. End of use case.

2.2.2. Master Use Cases There are two actors for the Master system: a User and the Slave. The Master provides the ability to control the jammer by sending commands to the Slave to set TTL switches and the jammer input voltage, control experiment configurations such as data collection intervals, and display jammer status and data. The following use cases provide more detailed descriptions of these actions.

Master Actors Slave: The Slave subsystem is considered to be a separate and independent system. The Master communicates to the Slave via the RS232 port. The Slave accepts and executes commands. User: User is the person who will be interacting with the GUI on the Master.

2.2.2.1. Use Case 1: Master Sends Setting to Slave

Use Case Summary: The Master sends a setting such as a TTL switch setting or the TWT input voltage to a Slave. Actors: Slave Used by: Use Case 2 Preconditions: The Master and Slave systems are running. The Freewave RS232 transceivers have established communications with each other as indicated by green CD, TX, and CTS indicator lights.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 15 Software Requirements Specification

Master Sends Setting to Slave

Master Controls Jammer User Slave

Master Display File Contents

Master Manage Data and Configurations

Figure 3 - Master Use Case Diagram

2.2.2.1.1. Scenario 1: 1. Master has setting to send to a Slave. 2. The Master adds the setting to the System Activity File. 3. The Master sets the countdown timer to the Activity Timeout time. 4. The Master sends the setting as a message (See Use Case 1) (Alt 1). 5. The Slave system receives the setting. 6. The Slave system sends an activity confirmation. 7. The Master receives the activity confirmation before the activity timeout time (COM_ACTIVITY_TIMEOUT) elapses (Alt 2). 8. The Master system adds an entry to the System Activity File. 9. The Master updates the display to reflect the changes. 10. End of use case.

Alt 1: The message send fails. A1-1: The Master adds an error entry to the System Activity File. A1-2: The Master displays an error message to the user. A1-3: The Master updates the appropriate displays to indicate that no change has been made. A1-4: End of use case.

Alt 2: Activity Timeout A2-1: The Master adds an error entry to the System Activity File. A2-2: The Master displays an error message to the user. A2-3: The Master updates the appropriate displays to indicate that the current status is unknown. A2-4: The use case continues with step 1.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 16 Software Requirements Specification

2.2.2.2. Use Case 2: Master Controls Jammer Use Case Summary: The User interacts with the Master GUI to control the RF Jammer. The Master sends commands to the Slave. The Slave confirms the action. Actors: User, Slave Preconditions: Communications between Master and Slave have been established and are active. RF Jammer is in the standby mode (warmed up). The Master system is unlocked.

2.2.2.2.1. Scenario 1: Master Set TTL Switches Summary: Master sends a TTL switch configuration to the Slave. The Slave sets the switches and sends the Master a confirmation. 1. User sets individual TTL switches by clicking on the display or by selecting the switch by pressing the Tab key and then pressing Control-Enter (Alt 1). 2. Master updates the display to indicate that the switch setting has been indicated, but that the current Jammer status has not been changed. The Master enables the SEND_WAVEFORM button. 3. User selects to send TTL switch settings to the Slave System (Alt 2). 4. The Master sends the TTL switch settings to the Slave (Use Case 1). 5. End of use case.

Alt 1: User selects option to change TTL switch settings by selecting a previously defined, named waveform. A1-1. System displays a list of named waveforms. A1-2. User selects a named waveform. A1-4. Use case continues with Step 2.

Alt 2: User decides not to send data to Slave System. A2-1. User selects option to cancel sending data to Slave System. A2-2. Master system reverts TTL switch display to previous settings. A2-3. End of use case.

2.2.2.2.2. Scenario 2: Master Set input voltage. 1. User selects option to change the input voltage. 2. User sets the input voltage. The supported modes of setting an input voltage are (a) click and drag a meter dial, (b) select the numeric voltage input display and edit the voltage setting using keystrokes, (c) click on the arrow buttons at the bottom of the numeric voltage input display, and (d) by selecting Edit, Undo when the previous operation is a set input voltage. 3. The Master sends the input voltage to the Slave (Use Case 2). 4. The Slave sends an message containing the new voltage setting. 5. Master system displays the most recent successful voltage in three places: the Voltage Dial, the voltage text display, and the voltage graph. 6. End of use case.

2.2.2.2.3. Scenario 3: Master Set TWT mode. Summary: The TWT has four modes: POWER OFF, WARMING, STANDBY, and RADIATE. One of the TTL switches is designated as the TWT Standby switch. This switch changes the TWT between Standby and Radiate modes. 1. User sets the TWT mode to RADIATE (Alt 1). The supported modes of setting the TWT mode are (a) click on the TWT Mode button on the main interface, and (b) by selecting Edit, Undo when the previous operation is a set TWT mode. 2. The Master sends the TWT mode to the Slave (Use Case 2). 3. The Slave sends the changed mode to the Master. 4. Master displays the new mode. 5. End of use case.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 17 Software Requirements Specification

Alt 1: Master is already in RADIATE mode. A1-1: Master sends message to set TWT mode to STANDBY. A1-2. Use case continues with step 2.

2.2.2.3. Use Case 3: Master Display File Contents Use Case Summary: The Master displays the contents of the System Activity File or the Experiment Data File. Actors: User Preconditions: None.

2.2.2.3.1. Scenario 1: Master View System Activity File or Experiment Data File. 1. The user selects to view the System Activity File (Alt 1). 2. The Master displays the System Activity File in a separate window (Use Case 4 – Scenario 2). 3. The user may scroll and search for text strings. 4. The user selects to add a note to the System Activity File. 5. The Master presents a text entry window. 6. The user types text into the window and selects Add (Alt 2). 7. The Master closes the text entry window and adds the text to the System Activity File. 8. The user selects to close the window. 9. The Master closes the window. 10. End of use case.

Alt 1: The user selects to view the Experiment Data File (Use Case 4 – Scenario 2). A1-1: The Master displays the Experiment Data File in a separate window. A2-2: The use case continues with step 3.

Alt 2: The user selects to cancel the note add operation. A2-1: The Master closes the text entry window. A2-2: Use case continues with step 8.

2.2.2.4. Use Case 4: Master Manage Data and Configurations The Master maintains information between executions. This information consists of information related to timing, communications, and display. Timing information includes the Transmission and Activity timeouts and the Data and Ping intervals. Configuration information includes waveforms, the plot elements, the packet retry count, the RS232 settings, and the machine address. The Master provides an interface for modifying and maintaining this data.

Use Case Summary: The user modifies the configuration file. Actors: User. Preconditions: The Master system is unlocked.

2.2.2.4.1. Scenario 1: Master Modify Configuration Settings. 1. The user selects the option to edit configuration settings. 2. The Master displays the configuration settings to the user. The configuration settings are described in Appendix F. 3. The user modifies elements of the configuration. 4. The user selects the option to save the configuration (Alt 1). 5. The Master saves the configuration to the configuration file. 6. The Master uses the new configuration in its display. 7. End of use case

Alt 1: User decides not to save changes. A1-1. End use case.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 18 Software Requirements Specification

2.2.2.4.2. Scenario 2: Master Open File. 1. The user selects the option to open a file. 2. The Master opens a file selection dialog window. 3. The user selects a file (Alt 1). 4. The Master opens the file. Configuration files are used to affect system display and behavior. System activity and experiment data files are used for appending information. 5. End of use case

Alt 1: User decides to cancel operation. A1-1. End use case.

2.2.2.4.3. Scenario 3: Master Delete File. 1. The user selects the option to delete a file. 2. The Master opens a file selection dialog window. 3. The user selects a file (Alt 1). 4. The Master prompts the user to confirm the file deletion. 5. The user confirms (Alt 2). 6. The Master deletes the file. 7. End of use case

Alt 1: User cancels file selection. A1-1. End use case.

Alt 2: User cancels delete. A2-1. End of use case.

2.2.2.4.4. Scenario 4: Master Collect Data. 1. The user selects the option to collect data at the slow or fast data collection rate (Alt 1). 2. The Master begins collecting data at the rate specified in the configuration. 3. The Master acquires TWT input and output voltage data from the slave (Alt 2). 4. The Master writes the TWT input and output voltage data to the Experiment Data File. 5. End of use case

Alt 1: User selects the off mode for data collection. A1-1: The system stops collecting data. A1-2. End use case.

Alt 2: Master is unable to acquire data. A2-1: The Master writes an error to the System Activity File. A2-2: The Master displays an error the user. A2-3: End of use case.

2.2.3. Slave Use Cases There are three actors for the Slave system. These actors are the Master, User, and DAC. The user at the Slave end will have the ability to: set the jammer and override the Master controls. These functions will be accomplished via the Slave interface. A more detailed description of the actors is provided below.

Slave Actors DAC card: The DAC card acts as the interface between the Slave and the jammer when the User is making changes to the jammer’s settings and vice versa in the case of the output voltage being read from the TWTA via a 30Db coupler. Master: The Master is an independent system that shall convey commands specified by the User that will be implemented at the jammer.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 19 Software Requirements Specification

User: User is the person who will be interacting with the Remote Jammer Slave interface.

2.2.3.1. Use Case 1: Slave Controls Jammer Use Case Summary: The Slave controls the Jammer by interacting with the DAC card. Directives for control come from the Master or from a User. Actors: Master, User Used by:  Preconditions: Communications between Master and Slave have been established and are active.  RF Jammer is in the standby mode (warmed up).  The Master system is unlocked.

2.2.3.1.1. Scenario 1: Slave Set control mode to local control. Preconditions: None. 1. User selects option to switch to local control mode. 2. Slave switches from remote control mode to local control mode. 3. Slave displays an indication that it is running in local control mode. 4. Slave takes commands from the user and ignores commands from the Master. When commands are received from the Master other than ping and data read commands, a message indicating the Slave is in local control is sent to the Master and the command from the Master is ignored. 5. End of use case.

User

Slave Control Jammer Jammer

Master

Figure 4 - Slave Use Case Diagram

2.2.3.1.2. Scenario 2: Slave Set control mode to remote control. Preconditions: Slave is in local control mode. 1. User selects option to switch to remote control mode (Alt 1). 2. Slave switches from local to remote control mode. 3. End of use case.

Alt 1: Master sends Override command. A1-1: The Override command is received by the slave from the Master.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 20 Software Requirements Specification

A2-2: The Slave sets the countdown timer to the Override Interval. A1-3: The Slave displays a message to the user indicating that the Master is attempting to override. A1-4: The user cancels the Master override (Alt 1.1, Alt 1.2). A1-5: End of use case.

Alt 1.1: The user confirms Master override. A1.1-1: The use case continues at step 2.

Alt1.2: The override interval expires. A1.2-1: The use case continues at step 2.

2.2.3.1.3. Scenario 3: Slave Set TWT mode to Radiate. Preconditions: The TWT is in STANDBY mode and the TWT output voltage is 0.00v. 1. The command to set the TWT to RADIATE is given. This command may come from the user when the system is in local mode or from the Master when the system is in remote mode. 2. The Slave sets the TWT to RADIATE mode and TWT output voltage remains at 0.00 volts. 3. The Slave sends message to Master indicating that TWT mode has been set to RADIATE. 4. End of use case.

2.2.3.1.4. Scenario 4: Slave Set TWT mode to standby. Preconditions: The TWT is warmed up. 1. The command to set the TWT to standby is given. This command may come from the user when the system is in local mode or from the Master when the system is in remote mode. 2. The Slave gradually lowers the TWT input voltage to 0.00 volts. The rate of lowering is established by the TWT Voltage Set Rate. 3. The Slave sets the mode to STANDBY. 4. The Slave sends message to Master indicating that TWT mode has been set to STANDBY. 5. End of use case.

2.2.3.1.5. Scenario 5: Slave Set TWT input voltage. Preconditions: The TWT is warmed up. The TWT is in radiate mode. 1. The command to set the TWT input voltage is given. This command may come from the user when the system is in local mode or from the Master when the system is in remote mode. 2. The Slave gradually changes the TWT input voltage to the desired voltage. The rate of change is established by the TWT Voltage Set Rate. 3. The slave commands the DAC card to set the input voltage. 4. Slave System sends message to Master indicating input voltage has been changed. 5. End of use case.

2.2.3.1.6. Scenario 6: Slave Set TTL switches in standby mode. Preconditions: The TWT is in standby mode.

1. The command to set TTL switches is given. This command may come from the user when the system is in local mode or from the Master when the system is in remote mode. 2. The Slave commands the DAC card to set the TTL switches (Alt 1). 3. Slave System updates the TTL status indicators. 4. Slave System sends message to Master indicating that TTL switch settings have changed. 5. End of use case.

Alt 1: The Slave is unable to command the DAC card. A1-1. The Slave sends a message to the Master indicating that the command has failed. A1-2. End of use case.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 21 Software Requirements Specification

2.2.3.1.7. Scenario 7: Slave Set TTL switches in radiate mode. Preconditions: The TWT is in RADIATE mode.

1. The command to set TTL switches is given. This command may come from the user when the system is in local mode or from the Master when the system is in remote mode. 2. The Slave sets the TWT mode to STANDBY by first lowering the output voltage to 0.00v (see scenario 4). 3. The Slave sets the TTL switches (see scenario 6). 4. The Slave sets the TWT mode to RADIATE, leaving the TWT input voltage at 0.00 (see scenario 3). 5. End of use case.

2.3. User Characteristics There is only one type of user for this system. This user is capable of installing, running, and trouble-shooting the hardware associated with the RF Jammer and the laptop computers. This user is familiar with common software applications such as word processors and spreadsheets. Thus, this user is comfortable with operations involving keyboard and mouse actions.

2.4. General Constraints The following constraints are recognized.  The Master system is intended to run on a laptop computer with the Windows 2000 OS.  The Slave system will run on a laptop computer with a National Instruments DAC card.  There will be no other applications running on the Master computer while the Master system is running.  The Experiment Data File will be in a format that can be imported into a Microsoft Excel spreadsheet.  There will be no other applications running on the Slave computer while the slave system is running.  The system will be developed in a mainstream language such as C, C++, or Java. The system may not be developed using Ada.  The system will be completed by December 2002.

2.5. Assumptions and Dependencies The following assumptions are made:  The modems continuously search for each other, so the user will not need to set up connection manually.  The jammer will be turned on and warmed up before either the Master or slave system issues any commands to it.  Any digital to analog conversion occurs in the DAC device connected to the slave system.  A user of either the Master or Slave system will be technically proficient enough to understand how to operate the jammer without extensive help messages.  A user of either the Master or Slave system will be authorized to be operating the jammer, thus no identification or passwords are necessary.  When left unattended, the Slave system will be protected from any unexpected inputs.  The Slave system will not be disconnected from the jammer duration of its operation.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 22 Software Requirements Specification

3. Specific Requirements: Master System This section provides detailed requirements for the Remotely Controlled Radio Frequency Jammer in sufficient detail to allow the design and implementation of the system.

3.1. External Interface Requirements This subsection contains the specification of requirements relating to interfaces between the Master, the Slave, the User, and the hardware and software components.

3.1.1. User Interfaces Both the Master and Slave systems will utilize a graphical user interface (GUI). To the extent practical, the user interfaces on the Master and Slave will be similar. Differences are explicitly discussed in the requirements below.

3.1.1.1. User Interface Elements

3.1.1.1.1. GUI [SRSreq1] The Master and Slave systems shall have a graphical user interface (GUI) constructed from standard Microsoft-like interface elements such as windows, menus, buttons, pull-down lists, and text boxes. [SRSreq2] The Master and Slave systems’ user interface shall accept user input from the keyboard and from the mouse. Mouse actions shall follow the Microsoft standard: single-click for selection and double-click for selection and action. [SRSreq3] The GUI shall allow the user to configure the number of digits displayed to the right of the decimal point for the text representation of non-integer numeric data values. The default number of digits to the right of the decimal shall be two. [SRSreq4] To the extent possible, the Slave and Master GUIs shall have similar appearance and behavior.

3.1.1.1.2. Windows [SRSreq5] The main window of the application interface shall appear similar to the window in Figure 4. [SRSreq6] The main window of the Master interface shall have a title bar containing the title “ARL/SLAD Remote Jammer Control Master.” [SRSreq7] The main window of the Slave interface shall have a title bar containing the title “ARL/SLAD Remote Jammer Control Slave.” [SRSreq8] The title bar of the main window shall contain minimize, maximize, and close button controls on the right side of the bar. [SRSreq9] The main window of the application interface shall contain a menu. Menus are described in Section 3.1.1.1.2.3. [SRSreq10] The Main window of the application interface shall contain a Status Bar. The Status bar display shall include the current TWT mode, communication status, data collection rate, and time elapsed since the TWT mode was set. The Master shall display the Lock mode. The Slave shall display the Remote mode. The TWT mode shall display one of the five valid TWT mode indications: OFF, WARMUP, STANDBY, RADIATE, or UNKNOWN. [SRSreq11] The following elements shall be present in the Display area of the Main window: the TTL Switch Setting sub-window containing eight TTL switch settings, the Meter Voltage Display sub-window, and the Graphical Voltage Display sub-window. Each of these is described in detail below.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 23 Software Requirements Specification

Maximize, Title Bar Command minimize, close Menu Bar Buttons controls

ARL/SLAD Remote Jammer Control Master

File Edit View Collect Data OFF Slow Fast Text MSG Set TWT Standby UNLOCK

TWT Mode: RADIATE Time in RADIATE: 0:05:55 Comm Status: UP Data Collect: 120s GUI LOCKED

Meter Voltage Status Bar Display Window

Switch A Switch E Input Voltage Output Voltage TTL Switch Setting Window

Switch B Switch F 0.00 0.00 Numeric Voltage 3.20 2.45 Input Box 10.0 Switch C Switch G

5.0 Switch D Switch H Graphical Set Waveform Voltage Display 0.0 Window 12:45 12:55 13:05 13:15

Figure 5 - Main GUI Window

3.1.1.1.2.1. TTL Switch Settings Sub-Window [SRSreq12] The GUI shall provide a graphical representation for each TTL switch. The TTL switch indicator shall display both the desired configuration as dictated by the user and the current setting as indicated by the Slave. [SRSreq13] The GUI shall display TTL switch settings using a schematic diagram as depicted in Figure 5. The diagram shall display the OFF setting as open contacts and the ON setting as a closed contact. In the OFF setting, the terminals shall be displayed in red. In the ON setting, terminals shall be displayed in green. [SRSreq14] Each TTL switch shall display at least 10 characters of the TTL switch label. The label for a TTL switch shall appear below the schematic for that switch. [SRSreq15] One of the TTL switches shall be designated as the TWT Mode Switch. The GUI shall display the TWT Mode Switch in two locations: with the other seven TTL switches and in the status window as the TWT mode indicator.

3.1.1.1.2.2. TWT Voltage [SRSreq16] The GUI shall provide three representations of TWT input and output voltages as shown in Figure 5. The three representations are the Dial, the Numeric Box, and the Graph. [SRSreq17] The GUI shall display the TWT input and output voltage in numeric format in the Numeric Box. This voltage shall be displayed in text. The format of the text shall be controlled by the Numeric Format entry in the configuration file. [SRSreq18] The GUI shall display the TWT input and output voltage in graphical format using a graphic representing an analog dial as depicted in Figure 5. The display on the dial shall match the

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 24 Software Requirements Specification

numeric display. The dial shall display voltages from 0 to 10 volts. The 0 value shall be towards the lower left (the 7:00 position on an analog clock face). The 10 position shall be at the lower right (the 5:00 position on an analog clock face), and the values shall increase in the clockwise direction. [SRSreq19] The GUI shall display the TWT input and output voltages for the most recent interval of time in the TWT Voltage Graph Window as depicted in Figure 5. The graph shall plot voltage on the vertical axis and time on the horizontal axis. The ranges of the display are established in the GRAPH_X_AXIS_RANGE and GRAPH_Y_AXIS_RANGE settings in the configuration file. [SRSreq20] The TWT Voltage Graph Window shall display a title, a horizontal axis label, a vertical axis label, and tick marks, all of which shall be user-configurable. The line color and data point indicators shall also be user-configurable.

3.1.1.1.2.3. Menu bar [SRSreq21] The GUI shall display a menu bar with the menu and submenu elements listed in table 3-1. Table 3-4: GUI Menu System File Edit View Open File Undo Experiment Data Save Configuration Configuration Transceiver Statistics Save Data System Activity File Save System Activity Delete File Exit

3.1.1.1.2.4. Command buttons The command buttons display the actions to be taken when the command button is selected.

[SRSreq22] The GUI shall provide the following command buttons: DATA MODE, TEXT MSG, TWT MODE, REMOTE MODE, LOCK MODE, and SET WAVEFORM. [SRSreq23] The label on the DATA MODE command button shall be the “COLLECT DATA” and shall provide options to set the DATA MODE to OFF, SLOW, or FAST. The display shall indicate the current DATA MODE. [SRSreq24] The label on the TEXT MSG command button shall be “TEXT MSG.” [SRSreq25] The label on the TWT MODE command button shall be the “Set TWT RADIATE” when the TWT mode is STANDBY, and “Set TWT Standby” otherwise. [SRSreq26] The REMOTE MODE command button shall appear only on slave systems. [SRSreq27] The label on the REMOTE MODE command button shall be the “SET REMOTE” if the slave is in LOCAL mode, and it shall be “SET LOCAL” if the slave is in REMOTE mode. [SRSreq28] The LOCK MODE command button shall appear only on the Master. [SRSreq29] The label on the LOCK MODE command button shall be the “LOCK” if the Master is in UNLOCKED mode, and it shall be “UNLOCK” if the Master is in LOCKED mode.

3.1.1.1.2.5. Temporary Windows [SRSreq30] The GUI shall provide a separate window for displaying incoming text messages (see Figure 6). [SRSreq31] The GUI shall display the System Activity File and the Experiment Data File in separate windows. [SRSreq32] The GUI shall provide a file selection window that allows the user to navigate the file system to select or enter file names.

3.1.2. Hardware Interfaces [SRSreq33] The Master shall run on a PC-based laptop computer. [SRSreq34] The Slave shall run on a PC-based laptop computer. [SRSreq35] The Master and Slave shall connect to Freewave Wireless Spread Spectrum Data Transceivers Models DGR 115 via the serial communications port. [SRSreq36] The Slave shall interface with a National Instruments DAC Card, Model 6062E.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 25 Software Requirements Specification

3.1.3. Software Interfaces [SRSreq37] The Master and Slave subsystems shall execute under Microsoft Windows 2000 and under Windows 98. [SRSreq38] The Experiment Data File shall be in a format that is importable to Microsoft Excel. In particular, the Experiment Data File shall be saved in CSV file format.

3.1.4. Communications Interfaces

3.1.4.1. RS232 [SRSreq39] The communication ports to which the Freewave transceivers are connected shall be configured (by default) to the settings shown in Table 5-2 in Appendix B. [SRSreq40] The baud rate shall be configurable. [SRSreq41] The interface to the Freewave transceivers shall comply with a RS232, 9-pin null modem protocol. The cable pin assignments are given in Table 5-1 in Appendix B. [SRSreq42] The Freewave Transceivers shall operate in Point-to-point mode.

3.1.4.2. Remote communication protocol [SRSreq43] The Master and Slave systems shall use the communication protocol described in Appendix C. [SRSreq44] The redundancy check used in the communications protocol shall detect single and multi-bit errors. The redundancy check shall detect 99.99% of one- and two-bit errors in data. [SRSreq45] The system shall use the message passing protocol described in Appendix C.

3.2. Behavioral Requirements

3.2.1. Same Class of User This system supports a single type of user as described in Section 2.3, User Characteristics

3.2.2. Related Real-world Objects

3.2.2.1. Files: Configuration, System Activity, Experiment Data [SRSreq46] The System shall be able to read and write three types of files: configuration files, system activity files, and experiment data files. [SRSreq47] Configuration files shall contain all user-settable information including waveforms, default communication settings, and graphical display settings. The contents of the configuration file are detailed in Appendix F. [SRSreq48] The system shall support modification of the currently selected configuration file. [SRSreq49] The System Activity File and Experiment Data File shall be saved immediately after data is written to them in order to prevent accidental loss of data. [SRSreq50] The system shall make a backup copy of the System Activity File and the Experiment Data File at user-specified intervals not to exceed five minutes. The interval is specified in the DATA_BACKUP_INTERVAL entry in the configuration file. To prevent loss of open files should a sudden failure occur, the system shall copy the existing file to a temporary backup, rename the backup, then delete the previous backup. [SRSreq51] The system shall record the times and occurrences of the following events in the System Activity File: user-supplied notes (see section 3.2.3.3.2.3), system errors, system warnings, system startup, system shutdown, TTL switch setting changes, TWT input voltage changes, and mode changes. [SRSreq52] The system shall record the times, TWT input voltage, and TWT output voltage in the Experiment Data File when DATA COLLECT MODE is either FAST or SLOW. [SRSreq53] The system shall write a header record in the Experiment Data File that contains the current TTL switch settings and waveform name.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 26 Software Requirements Specification

3.2.2.2. TTL Switches TTL switches are also discussed in Section 3.1.1.1.2.1

[SRSreq54] The user shall be able to assign a label to each TTL switch. The label on a TTL Switch shall have a maximum length of 32 characters. [SRSreq55] A TTL Switch shall always be in either one of two settings: ON (+5v) or OFF (0v).

3.2.2.3. Waveform [SRSreq56] A waveform shall be comprised of a name and at least one but no more than eight TTL switch settings. [SRSreq57] The user shall be able to refer to a combination of TTL switch settings by referring to the name of the waveform.

3.2.2.4. DAC [SRSreq58] The Slave system shall control the jammer through the DAC card. [SRSreq59] The Slave shall be able to provide a 0-10v input to the jammer TWT. [SRSreq60] The Slave shall be able to read a 0-10v output from the jammer TWT. [SRSreq61] The Slave shall be able to set any of the 8 TTL switches on the DAC to either the ON (+5v) or OFF (-5v) setting. [SRSreq62] The TWT input voltage shall be set to 0.00v when the TWT mode is set to STANDB Y.

3.2.2.5. Timer [SRSreq63] The system shall be able to schedule activities based on an offset time. The timing precision shall be 0.1 seconds or smaller.

3.2.3. Stimulus

3.2.3.1. System Startup [SRSreq64] On startup, the system shall read the configuration file and use the data values stored there. [SRSreq65] On startup, the TWT mode shall be set to OFF. [SRSreq66] On startup, the Slave system shall set all TTL switches to OFF and the TWT input voltage to 0.00v. [SRSreq67] On startup, the Master system shall be in UNLOCKED mode. [SRSreq68] On startup, the Slave system shall be in LOCAL mode. [SRSreq69] On startup, the Master DATA COLLECT mode shall be OFF. [SRSreq70] On startup, the Master and Slave systems shall initiate search for other transceivers and begin sending PING messages at regular intervals as specified by the DATA_COM_PING_RATE. [SRSreq71] On startup, the Master shall begin sending the GET_TWT_INPUT_VOLTAGE and GET_TWT_OUTPUT_VOLTAGE commands to the slave. These messages shall be sent at the time interval specified by DATA_READ_INTERVAL. The results of this command shall be used to update the input and output voltage displays.

3.2.3.2. System Shutdown [SRSreq72] On system shutdown, the Master shall prompt the user to confirm shutdown before continuing. [SRSreq73] On system shutdown, if the Slave is in LOCAL mode, it shall prompt the user to confirm shutdown before continuing. (No prompt is necessary on the Slave system if the Slave is in Remote mode.) [SRSreq74] On system shutdown, the TWT input voltage shall be set to 0.00v. [SRSreq75] On system shutdown, the TTL switches shall all be set to OFF. [SRSreq76] On system shutdown, the configuration file, System Activity File, and Experiment Data File shall all be closed. [SRSreq77] On system shutdown, the system shall execute the SHUTDOWN command.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 27 Software Requirements Specification

3.2.3.3. Menu Items Selected Menus are also discussed in Section 3.1.1.1.2.3.

3.2.3.3.1. File

3.2.3.3.1.1. Open [SRSreq78] When File/Open is selected, a file selection dialog box shall be opened allowing the user to select a file. This dialog box should be similar to other Microsoft application file selection dialogs. [SRSreq79] When File/Open is selected and a configuration file is selected, the configuration file is read and the system are changed to match those in the configuration file. [SRSreq80] When a configuration file is opened by one of the Master-Slave pair, the system shall query the user to send the configuration to the other of the pair. If the user agrees, the configuration is sent. [SRSreq81] When File/Open is selected and a experiment data file is selected, the file becomes the current data file. All data stored is appended to this file. When reading data values for the most recent data, data shall be read from this file. [SRSreq82] When File/Open is selected and the System Activity File is selected, the file becomes the current system activity file. All information stored in the system activity file is appended to this file.

3.2.3.3.1.2. Save [SRSreq83] When File/Save Configuration is selected, a file selection dialog box shall be opened allowing the user to select a file. [SRSreq84] When File/Save Configuration is selected and the user selects a file, the current configuration shall be written to the file. [SRSreq85] When File/Save Data is selected, a file selection dialog box shall be opened allowing the user to select a file. [SRSreq86] When File/Save Data is selected and the user selects a file, the experiment data shall be written to the file. [SRSreq87] When File/Save System Activity is selected, a file selection dialog box shall be opened allowing the user to select a file. [SRSreq88] When File/Save System Activity is selected and the user selects a file, the system activity data shall be written to the file.

3.2.3.3.1.3. Delete [SRSreq89] When File/Delete is selected, a file selection dialog box shall be opened allowing the user to select a file. [SRSreq90] When File/Delete is selected and a file has been selected, the system shall prompt the user to confirm deletion. If the user agrees, the file shall be deleted. If the user does not agree, the operation shall be cancelled.

3.2.3.3.1.4. Exit [SRSreq91] When File/Exit is selected, the system shall shutdown as described in Section 3.2.3.2.

3.2.3.3.2. Edit

3.2.3.3.2.1. Undo [SRSreq92] When Edit/Undo is selected, the system reverses the most recent, reversible user-initiated action. Reversible actions include setting voltages, setting modes, and setting waveforms. Irreversible actions include file deletion and the Undo command. [SRSreq93] When Undo is repeated n times, the system shall reverse the most recent n reversible actions, up to the number of actions taken since the system started execution.

Example: The user sets the voltage to 2.00v, then 5.00v, then 8.00v, and then 10.00v. Then the user selects Undo. The system sets the voltage to 8.00. The user selects Undo again. The system sets the voltage to 5.00v. The user selects Undo one more time. The System sets the voltage to 2.00v.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 28 Software Requirements Specification

3.2.3.3.2.2. Configuration [SRSreq94] When Edit/Configuration is selected, the system shall open a new window and display the contents of the configuration file. The configuration file is detailed in Appendix F. The system shall allow the user to modify the configuration by adding, deleting, or modifying records in the file. [SRSreq95] When editing the configuration file, the system shall allow the user to save the changed configuration, exit configuration edit, or to cancel the operation. Saving results in writing the configuration to the configuration file. Canceling leaves the configuration file unchanged. [SRSreq96] When the user saves a configuration file or exits the configuration editor, the new configuration settings shall be used immediately. [SRSreq97] When the Slave user updates the configuration file, the system shall prompt the user to transfer the configuration to the Master. When the user confirms, the configuration is transferred to the Master. [SRSreq98] When the Master user updates the configuration file, the system shall prompt the user to transfer the configuration to the slaves. When the user confirms, the configuration is transferred to the each of the slaves. [SRSreq99] When transferring a configuration file from one machine to another, the system shall request that the user confirm before overwriting a file on the remote system. The system shall allow the user to select or enter a file name for the configuration file on the remote system using windows that appear like the file selection windows on the local system.

3.2.3.3.2.3. System Activity File [SRSreq100] When Edit/System Activity File is selected, the system shall open a new window and display the contents of the System Activity File. [SRSreq101] The system shall allow the user to add notes to the System Activity File. A note entry in the System Activity File has a time stamp and a text string of unbounded length. The system shall allow a user to create a new note, and then prompt the user to save the note or cancel the operation. Saving results in writing the note into the System Activity File. Entries in the System Activity File are ordered by time. The time of a note is the system time when the user saves the note. Entries are added to the file preserving time order. Canceling leaves the System Activity File unchanged. [SRSreq102] The system shall continue to update the System Activity File while the user is adding notes.

3.2.3.3.3. View [SRSreq103] When View/Experiment Data is selected, the system shall open a new window and display the contents of the Experiment Data File. The user shall not be able to edit this file in this display. [SRSreq104] While the experiment data window is displayed, it shall automatically update when the Experiment Data File is updated. [SRSreq105] When View/Transceiver Statistics is selected, the system shall open a new window and display the following transceiver statistics: average noise level, average signal level, overall RCV rate, number of disconnects, and radio temperature. A Slave system will display statistics for its transceiver only. A Master system will display statistics for its transceiver and the transceivers for all of its slaves.

3.2.3.4. Command Buttons

3.2.3.4.1.1. Maximize, Minimize, and Close [SRSreq106] The Maximize, Minimize, and Close buttons in the Title Bar shall behave in a manner similar to these buttons in Microsoft applications. Maximize expands the window to fill the display. Minimize iconifies the main window. Close exits the program.

3.2.3.4.1.2. Set Waveform [SRSreq107] When the Set Waveform command button is selected on the Master, the Master shall send a SET_WAVEFORM message to the Slave.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 29 Software Requirements Specification

[SRSreq108] When the Set Waveform command button is selected on the Slave, the current waveform consisting of all of the TTL switch settings shall be changed on the DAC card.

3.2.3.4.1.3. Text Message [SRSreq109] When the Text Message command button is selected on either the Master or a slave, the system shall open window with two panes as shown in Figure 6. These panes shall display text messages between Master and Slave cumulatively for the entire session. [SRSreq110] When a user types text and the text message window is open, the text shall be appended to the bottom of the local window and transmitted, character by character, to the receiver.

3.2.3.4.1.4. DATA COLLECT Mode [SRSreq111] When the DATA COLLECT Mode command button is selected on the Master and the mode selected is OFF, the Master shall send the DATA COLLECT MODE OFF command. [SRSreq112] When the DATA COLLECT Mode command button is selected on the Master and the mode selected is SLOW, the Master shall send the DATA COLLECT MODE SLOW command. [SRSreq113] When the DATA COLLECT Mode command button is selected on the Master and the mode selected is FAST, the Master shall send the DATA COLLECT MODE FAST command. [SRSreq114] When the DATA COLLECT mode is either SLOW or FAST, the Master shall write the current input and output voltages to the Experiment Data File using the interval specified in the DATA_COLLECT_RATE_SLOW or DATA_COLLECT_RATE_FAST configuration setting. When the DATA COLLECT mode is either SLOW or FAST, the Master shall send the GET_TWT_INPUT_VOLTAGE and GET_TWT_OUTPUT_VOLTAGE commands to the slave. These messages shall be sent at the time interval specified by the configuration settings DATA_COLLECT_RATE_SLOW or DATA_COLLECT_RATE_FAST, respectively. The results of this command shall be used to update the Experiment Data File.

3.2.3.4.1.5. TWT Mode [SRSreq115] When the TWT Mode command button is selected on the Master and the TWT mode is STANDBY, the Master shall send the SET_TWT_MODE RADIATE command to the Slave. [SRSreq116] When the TWT Mode command button is selected on the Master and the TWT mode is RADIATE, the Master shall send the SET_TWT_MODE STANDBY command to the Slave. [SRSreq117] When the TWT Mode command button is selected on the Slave and the TWT mode is STANDBY, the Slave shall change the TWT Mode to RADIATE. (See Appendix D.) [SRSreq118] When the TWT Mode command button is selected on the Slave and the TWT mode is RADIATE, the Slave shall change the TWT Mode to STANDBY. (See Appendix D.)

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 30 Software Requirements Specification

Text Messages

Local

7:56 We are ready for power on at your end 8:10 How is it going at that end? 8:12 We are receiving and it looks good.

Remote

7:58 Power is on. It is warming up now 8:12 TWT is warmed up and we're ready. 8:13 OK.

Figure 6 - Text Message Window

3.2.3.4.1.6. Lock/Local Modes [SRSreq119] When the Lock command button is selected and the Master is in UNLOCKED mode, the Master shall execute the SET_LOCK_MODE LOCKED command as described in Appendix D. [SRSreq120] When the Lock command button is selected and the Master is in Locked mode, the Master shall execute the SET_LOCK_MODE UNLOCKED command as described in Appendix D.. [SRSreq121] When the Local command button is selected and the Slave is in LOCAL mode, the Slave shall execute the SET_REMOTE_MODE REMOTE command as described in Appendix D. [SRSreq122] When the Local command button is selected and the Slave is in REMOTE mode, the Slave shall execute the SET_REMOTE_MODE LOCAL command as described in Appendix D.

3.2.3.5. Other Mouse Clicks and Keystrokes Since the system may operate in a dirty environment where a mouse may not function reliably, the system must provide keyboard access to all necessary functionality.

[SRSreq123] A mouse click on a TTL switch display shall toggle the TTL switch setting (i.e., a single-click on a switch that is ON shall turn it OFF). The TTL switch setting is not sent from the Master to the Slave or from the Slave to the DAC card until the SEND WAVEFORM command button is pressed. [SRSreq124] The Master system GUI shall allow the user to set the TWT input voltage by clicking and dragging the dial on the meter displayed in Figure 5. The Master shall send a SET_TWT_INPUT_VOLTAGE command to the Slave on the MouseUp event. [SRSreq125] The Master system GUI shall allow the user to set the TWT input voltage by selecting the Input Voltage Text Box Arrow Controls and incrementing or decrementing the voltage by 0.1 v per mouse click. The Master shall send a SET_TWT_INPUT_VOLTAGE command to the Slave on the MouseClick event. [SRSreq126] The Master system GUI shall allow the user to set the TWT input voltage by selecting the Input Voltage Text Box and typing the desired voltage. The Master shall send a SET_TWT_INPUT_VOLTAGE command to the Slave when the user presses the Enter key. If a LostFocus event is received before the Enter key is pressed, the TWT input voltage shall remain unchanged and the display shall revert to the current setting. [SRSreq127] The Tab key shall be used to navigate the main window by successively highlighting the command buttons, the TTL Switch Setting sub-window, and the TWT input voltage text box.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 31 Software Requirements Specification

[SRSreq128] When a command button is highlighted and the Enter key is pressed, the system shall respond as if the command button had been selected via a mouse click. [SRSreq129] When the TTL switch setting sub-window is selected and the user presses the Alt key, the system shall highlight successive TTL switch boxes. [SRSreq130] When the TTL switch setting sub-window is selected, a TTL switch box display is highlighted, and the user presses an up-arrow key, the switch display shall be set to OFF (open). When the user presses the down-arrow key, the switch display shall be set to ON (closed). [SRSreq131] When a TTL switch setting sub-window is highlighted, the TTL switch settings have been changed, and the user presses the Escape key or the Tab key, the system shall prompt the user to confirm changing the TTL switch settings. On confirmation, the system shall change the TTL switch setting.

3.2.3.6. Messages Received [SRSreq132] When a machine receives a message and the message header indicates the message is for a different machine, the receiver shall ignore the message [SRSreq133] When the machine receives a message and the message header indicates the message is for this machine, the machine shall treat the message in accordance with Appendix D.

3.2.4. Related Features

3.2.4.1. Set TWT Mode [SRSreq134] When the TWT mode is OFF or WARMING, the Master sends a command to Slave to change the TWT mode to STANDBY or RADIATE, and the Slave is in LOCAL mode, the Slave shall change the TWT mode to STANDBY mode when the following sequence of events occurs: 1) The Slave displays a message on the Slave display asking for confirmation; 2) The Slave does not receive any input from the user for the SLAVE_CONTROL_TIMEOUT time period. [SRSreq135] When the TWT mode is OFF or WARMING, the Master sends a command to Slave to change the TWT mode to STANDBY or RADIATE, and the Slave is in REMOTE mode, the Slave shall change the TWT mode to STANDBY mode.

3.2.4.2. Set TWT Input Voltage [SRSreq136] The Master shall only allow the user to set the TWT input voltage if the TWT is in RADIATE mode. If the user attempts to set the voltage and the TWT mode is not RADIATE, the system shall display an error message. [SRSreq137] If an attempted change of voltage is not implemented successfully, the Master shall retain the previous settings and update the Master GUI accordingly. [SRSreq138] To set the TWT Input Voltage, the user shall be able to type in a numeric quantity in the designated text field, click and drag the voltage meter needle to the desired voltage, or click on the designated arrows as described in 3.2.3.4. [SRSreq139] When the slave sets the TWT input voltage, it shall gradually set the voltage at the TWT_VOLTAGE_CHANGE_RATE by stepping the voltage by the AD_UNIT_PRECISION amount successively until the desired voltage is reached. The timing between steps shall be uniform.

3.2.4.3. Set Waveform [SRSreq140] The Slave shall allow a waveform to be set regardless of the TWT mode. If the TWT mode is OFF or WARMING, the Slave shall send a warning message stating that the waveform cannot take effect. [SRSreq141] The user shall be able to set a waveform either by selecting a previously defined waveform or by setting individual TTL switches. The user shall be able to set waveforms at the Master or Slave. Waveforms are set by executing the SET_WAVEFORM command described in Appendix D.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 32 Software Requirements Specification

3.2.4.4. Override Slave [SRSreq142] The Slave shall switch from LOCAL to REMOTE mode when the following sequence of events occurs: 1) The Master sends a command to the Slave; 2) The Slave displays a message on the Slave display asking for confirmation; 3) The Slave does not receive any input from the user for the SLAVE_CONTROL_TIMEOUT time period.

3.2.5. Functional No additional functional requirements have been identified.

3.3. Non-behavioral Requirements

3.3.1. Performance Requirements [SRSreq143] With the exception of commands requiring a voltage change, no command on the Slave should take longer than one second to execute. [SRSreq144] Data transmission between Master and Slave shall not take longer than 1 second. [SRSreq145] The system shall be able to decrease the input voltage to the TWT to 0.00v in no more than five seconds. [SRSreq146] The system shall be able to collect voltage data at a rate as fast as 10 readings per second.

3.3.2. Qualitative Requirements [SRSreq147] The AD_UNIT_PRECISION value shall default to 0.01v. [SRSreq148] The system shall be reliable. The system shall be considered reliable when it is able to execute a sequence of five two-hour tests in field conditions without failure. Field conditions shall include operation under the following circumstances:  Indoor,  Outdoor,  at distances of up to 14 miles, and  under communication failure and restoration.

3.3.2.1. Availability [SRSreq149] If a slave system is shutdown and restarts unexpectedly, such as in the event of a power failure, the slave shall set all TTL switches to OFF, set the TWT mode to STANDBY, and set the TWT input voltage to zero. The Slave shall send a message to the Master indicating restart has occurred. [SRSreq150] If the Master system is shutdown and restarts unexpectedly, such as in the event of a power failure, the Master shall immediately query each slave and display the current state of the jammer system as reported by the slave. A message shall be written to the System Activity File stating that a restart occurred. The Master shall read the Experiment Data File and display the previous voltages in the voltage graph display.

3.3.2.2. Security No user authentication is required. There is no need for communications between the Master and the Slave to be encrypted.

3.3.2.3. Maintainability [SRSreq151] The system shall be designed so that the implementation of the Master is independent of the implementation of the Slave. It shall be possible to replace the Slave with a different implementation without changing the Master.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 33 Software Requirements Specification

3.3.2.4. Portability There is no requirement to port the system to other operating systems.

3.3.3. Design and Implementation Constraints [SRSreq152] The system shall be programmed in a common programming language such as Visual Basic, C, C++, or Java. The system shall not be implemented in Ada.

3.4. Other Requirements

3.4.1. Database [SRSreq153] The system shall store system configuration information in an ASCII text file. [SRSreq154] The system shall store data in a format that can be imported into an Excel spreadsheet. A CSV format may be used for this purpose. [SRSreq155] The system shall store the System Activity File in an ASCII text file.

3.4.2. Operations No Operations requirements have been identified.

3.4.3. Site Adaptation [SRSreq156] The screen saver on the Master shall be disabled.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 34 Software Requirements Specification

4. Appendix A: Modes

Table 4-1 describes the operating modes of the Remotely Controlled Radio Frequency Jammer system.

Table 4-5: System Modes Mode Setting Meaning Data Collect Mode SLOW The Master begins collecting and writing the TWT input and output voltages to the Experiment Data File at the interval specified in the DATA_COLLECT_RATE_SLOW. FAST The Master begins collecting and writing the TWT input and output voltages to the Experiment Data File at the interval specified in the DATA_COLLECT_RATE_FAST. OFF The Master discontinues writing voltage data to the Experiment Data File. LOCK Mode (Master only) LOCKED The Master is locked and ignores all user inputs except the Unlock command. This is to prevent accidental initiation of system actions.

UNLOCKED The Master accepts all keyboard and mouse inputs. REMOTE Mode (Slave only) LOCAL The Slave system responds to local user input via the keyboard and mouse. The system can be taken over by the Master, but only after warning the local user and waiting for the SLAVE_CONTROL_TIMEOUT time.

REMOTE The Slave system responds to commands from the Master, but does not respond to keyboard and mouse inputs except for the Local command. This is to prevent accidental initiation of system actions.

TWT Mode OFF The main power to the TWT is off.

WARMING The main power has been applied, the TWT input voltage should be 0.00v, and the system is warming up. This is the state during initial setup when a technician is still at the remote (slave) site. Prior to leaving the site, the mode should be changed to STANDBY.

STANDBY The TWT input voltage is 0.00v and the jammer is not radiating. In this state is possible to change the waveform.

RADIATE The jammer is radiating. In this state it is not possible to change the waveform.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 35 Software Requirements Specification

5. Appendix B: Freewave Transceiver Data

Table 5-1 below describes the RS232 pin assignments used by the Freewave Transceiver.

Pin Abbreviation Assignment Signal Description 1 CD Carrier Detect Output Indicates an RF connection between modems 2 TX Transmit Data Output Used for serial transmission of bits 3 RX Receive Data Input Used for serial reception of bits 4 DTR Data Terminal Input Used only in Point-to-point Slave/Master switchable mode Ready or for DTR connect in Multipoint operation. 5 GND Ground Signal return for all signal lines; shared with pin 9 6 DSR Data Set Ready Output Always high when power is on to the radio. 7 RTS Request to Send Input The Freewave modem does not recognize RTS for flow control. 8 CTS Clear to Send Output When asserted, the modem will accept data. When not asserted, the modem will not accept data. This should be used for data rates above 38.4KB. 9 GND Ground Signal return for all signal lines; shared with pin 5 Table 5-6: Freewave Cable Pinout

Table 5-2 describes the data communications parameter settings for the RS232 communications ports connected to the Freewave Transceivers.

Parameter Setting Baud Rate Variable, match to Freewave, default to 19.2KB Data Bits 8 Parity None Stop Bits 1 Parity Check None Carrier Detect None Flow Control RTS/CTS /Hardware Connection Started by Carrier Detect Connection Ended by Carrier Detect DTR Signal Always On RTS Signal Always On Table 5-7: Data Communications Parameters

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 36 Software Requirements Specification

6. Appendix C: Communications Protocol

The communications protocol between the Master and the Slaves uses a three-tier protocol stack: the message level, the packet level, and the hardware level.

At the message level, an application (e.g., the Master) sends a message to another application (e.g., a Slave). The application must specify

1. The message data. 2. The receiver. 3. The sender.

When sending a message, the message is divided into one or more packets, and each packet is transmitted. A message header indicates the number of packets in a message. The sender retains the entire message until the receiver acknowledges reception of the message.

Packet data includes a message identifier and a packet number so that packets can be recombined at the receiving side. Message transmission fails if any packet transmission fails. When receiving a message, packets are ordered so that the packet transmission may occur in any order, but the message received is intact. If more than one packet is received with the same packet identifier, the youngest packet is assumed to be the correct packet. Once the entire message is received, the receiver informs the sender, and the sender may discard the message.

At the packet level, two types of packets are transferred: data packets and acknowledge packets. A data packet contains message data. An acknowledge packet is used to ensure delivery of a data packet. Each packet contains

1. The current time-of-day. 2. The receiver. 3. The sender. 4. The packet data. 5. A redundancy check.

The redundancy check is used to verify the integrity of the data transferred. A simple redundancy check is parity. A more robust redundancy check is CRC-16. A packet is sent via the hardware level. When a data packet is received, the header is checked. If the receiver field does not match the identifier of the machine on which the receiving application is running, then the packet is ignored. (This allows a broadcast mechanism to be used.) Next, the redundancy check is computed for the data and compared to the redundancy check received. If the checks match, the packet is accepted and an acknowledge packet is immediately sent to the sender of the data. If the checks to not match, then the packet is ignored.

When sending a data packet, the sender checks if the packet was received. Reception of a data packet is indicated by an acknowledge packet. Acknowledge packets are not acknowledged. If an acknowledge packet is not received in a fixed period of time (the Data Transmission Timeout), it is assumed to have been lost and is retransmitted. If a packet is unsuccessfully transmitted a fixed number of times (the Transmission Retry Limit), communications are assumed to be faulty and packet transmission fails.

At the hardware level, transmission of a packet is handled by the Freewave transceivers.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 37 Software Requirements Specification

7. Appendix D: Commands

The following commands are recognized by the Slave and Master. Master is denoted by the letter ‘M’ and Slave by the letter ‘S’.

Table 7-8: Master and Slave Commands Command By Action CONFIGURE_DISPLAY MS

CONFIGURE_WAVEFORM MS The receiver adds the waveform to the {NAME: } configuration file. {TTL }+ {POWER_SWITCH }

DATA_COLLECT_MODE M The Master changes the DATA COLLECT mode to the specified mode, one of OFF, SLOW, or FAST. When the mode is SLOW or FAST, the Master shall collect TWT input and output voltage and write this data to the Experiment Data File at regular intervals. The intervals are specified in the DATA_COLLECT_RATE_SLOW and DATA_COLLECT_RATE_FAST configuration settings.

DISPLAY_ERROR MS A system receiving either command DISPLAY_WARNING shall open a pop-up window containing the . The pop-up window shall be on top of all other windows.

A Master executing this command shall write the and the time into the System Activity File.

DISPLAY_TEXT MS The receiver opens the text messages window if it is not already open. Upon opening the window, the system adds all previous text strings to the remote and local text boxes. Then the system adds the to the remote text box.

GET_TTL_SWITCH M The Master executes this command by sending a GET_TTL_SWITCH command to the Slave.

GET_TTL_SWITCH S The Slave executes this command by querying the the current setting for the TTL switch set on the DAC

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 38 Software Requirements Specification

and sending a VALUE_TTL_SWITCH command to the Master.

GET_TWT_INPUT_VOLTAGE M The Master executes this command by sending a GET_TWT_INPUT_VOLTAGE command to the Slave.

GET_TWT_INPUT_VOLTAGE S The Slave executes this command by querying the TWT input voltage set on the DAC and sending a VALUE_TWT_INPUT_VOLTAGE command to the Master.

GET_TWT_MODE M The Master executes this command by sending a GET_TWT_MODE command to the Slave.

GET_TWT_MODE S The Slave executes this command by sending a VALUE_TWT_MODE command to the Master with the current TWT mode setting.

GET_TWT_OUTPUT_VOLTA M The Master executes this command by GE sending a GET_TWT_OUTPUT_VOLTAGE command to the Slave.

GET_TWT_OUTPUT_VOLTA S The Slave executes this command by GE querying the TWT output voltage set on the DAC and sending a VALUE_TWT_OUTPUT_VOLTAGE command to the Master.

GET_WAVEFORM M The Master executes this command by sending a GET_WAVEFORM command to the Slave.

GET_WAVEFORM S The Slave executes this command by querying the current TTL switch settings for each of the TTL switches and sending a VALUE_WAVEFORM command to the Master.

LOCAL_SHUTDOWN_NOTIFI M The Master executes this command by CATION displaying a message to the user and adding an entry to the System Activity File.

PING MS The receiving system does nothing.

SET_INPUT_VOLTAGE M The Master executes this command by sending a SET_WAVEFORM command to the Slave.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 39 Software Requirements Specification

SET_INPUT_VOLTAGE S If the Slave is in the TWT RADIATE mode, then the TWT input voltage is changed from the current setting to the setting. This is done in discrete steps of equal voltage size and duration. The number, size, and duration of the steps are controlled by the AD_UNIT_PRECISION value and the TWT_VOLTAGE_CHANGE_RATE value. Each step should increment or decrement the voltage by the AD_UNIT_PRECISION amount and the rate of change of voltage should not exceed the TWT_VOLTAGE_CHANGE_RATE.

If the Slave is not in the TWT RADIATE mode, then the Slave sends a DISPLAY_ERROR command to the Master with text stating that the voltage can only be changed while in RADIATE mode.

SET_LOCK_MODE M The Master executes this command by LOCKED, the only recognized user input is to unlock the Master.

SET_REMOTE_MODE S The Slave executes this command by changing the Remote mode. While REMOTE, commands are accepted from the Master but not the user. While LOCAL, commands are accepted by the user, but not the Master.

SET_TWT_MODE SET_TWT_MODE Slave executes a SET_INPUT_VOLTAGE 0.00v command first.

After completing this command, the Slave sends a VALUE_TWT_MODE command to the Master indicating the new setting.

SET_WAVEFORM MS A slave system executes this command by a) executing the SET_INPUT_VOLTAGE 0.00v command; b) executing the SET_TWT_MODE STANDBY

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 40 Software Requirements Specification

command; c) setting the specified TTL switches on the DAC card (any unspecified switch is set to OFF); d) setting the TWT mode to its setting immediately prior to this operation; e) sending a VALUE_WAVEFORM command and a VALUE_TWT_MODE command to the Master updating the jammer status.

SHUTDOWN M The Master executes this command by sending the SHUTDOWN command to each slave, closing all open files, and exiting the program. SHUTDOWN S The slave executes this command by f) if the slave is in LOCAL mode and communications have been established with a MASTER, sending a LOCAL_SHUTDOWN_NOTIFICATION message to the Master. g) setting the TWT input voltage to 0.00v, h) setting each TTL switch to OFF, i) saving any open files, and j) exiting the program.

VALUE_TWT_MODE VALUE_TWT_VOLTAGE_INP M The Master executes this command by UT updating the display of the TWT input voltage.

VALUE_TWT_VOLTAGE_OU M The Master executes this command by TPUT updating the display of the TWT output voltage.

VALUE_WAVEFORM M The Master executes this command by { }+ the waveform.

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 41 Software Requirements Specification

8. Appendix E: Error and Warning Messages

Table 8-9 Error and Warning Messages Type Message Condition W Attempting to set waveform while TWT mode is OFF or WARMING W Slave is in LOCAL mode: Timeout is <> E Set Voltage Failed E Set waveform Failed E Unable to write to com port E Packets transferred, but CRC does not match E Communications failure, message with header <> from <> to <> did not transfer E Unable to acquire voltage data from slave E Unable to acquire TTL data from slave E Unable to acquire TWT mode data from slave E Unable to update status on Master

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 42 Software Requirements Specification

9. Appendix F: Configuration File Entries

Table 9-10 Configuration File Entries Entry Default Comment AD_UNIT_PRECISION .01v COM_ACTIVITY_TIMEOUT 20 s COM_BAUD_RATE 19.2K COM_DATA_BITS 8 COM_PACKET_TIMEOUT 1 s COM_PARITY None COM_PORT COM1 COM_STOP_BITS 1 COM_TRANS_RETRY_LIMIT 10 DAC_COMMAND_TIMEOUT 10 s DATA_BACKUP_INTERVAL 5 m Frequency of backup creation DATA_COLLECT_RATE_FAST 1 / s DATA_COLLECT_RATE_SLOW 1 / 60 s DATA_COMM_PING_RATE 5 s DATA_READ_INTERVAL 10 s How often displays get updated EXPERIMENT_DATA_FILE EXPERIMENT.txt GRAPH_DATA_POINT_MARK NONE GRAPH_INPUT_V_COLOR GREEN GRAPH_OUTPUT_V_COLOR YELLOW GRAPH_TITLE VOLTAGE HISTORY GRAPH_X_AXIS_RANGE 0, 30, m GRAPH_X_AXIS_TITLE TIME GRAPH_X_TIC_COUNT 3 GRAPH_Y_AXIS_RANGE 0.0, 10.0, v GRAPH_Y_AXIS_TITLE VOLTS GRAPH_Y_TIC_COUNT 3 NUMERIC_FORMAT 5.2 Length and number of digits right of decimal SLAVE_CONTROL_TIMEOUT 60 s SYSTEM_ACTIVITY_FILE ACTIVITY.txt TWT_VOLTAGE_CHANGE_RATE 2.0v / s WAVEFORM

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 43 Software Requirements Specification

10. Appendix G: Object Model Diagram

UI Master Controller displayWaveform() displayTWTInputVoltage() interpret message() displayTWTOutputVoltage() execute command() displayCommincationStatus() displayTWTOperatioMode() displaySystemControl() Modem grab input() send() UI Element receive()

Message TWT mode Waveform Voltage Control type operation mode

File filename Data Collector TWT Output TWT Input TTL Switch Voltage Voltage read() timer On/Off status write() label open() close() TurnOn() TurnOff()

Waveform Settings Log name TTL switch status timestamp waveform input voltage output voltage comment

Figure 7 - Master Subsystem Object Diagram

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 44 Software Requirements Specification

TWT

UI

Slave Controller displayWaveform() DAC displayTWTInputVoltage() displayTWTOutputVoltage() interpret message() displayCommincationStatus() execute command() Modem displayTWTOperatioMode() displaySystemControl() send() receive()

UI Element

Message Waveform Voltage Control type

TTL Switch On/Off status label TWT Output TWT Input TurnOn() Voltage Voltage TurnOff()

Figure 8 - Slave Subsystem Object Diagram

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 45 Software Requirements Specification

11. Appendix H: State Transition Diagram

Off Files Closed Closing Files

Power On Standby LOCAL_SHUTDOWN_NOTIFICATION / SHOTDOWN

Disconnect Connect

Connected

TWT is Off TWT is Radiating TWT is Warming TWT Standby SET_TWT_MODE_ STANDBY TWT Off SET_TWT_MODE_ TWT SET_TWT_MODE TWT Radiate WARMING Warming STANDBY Standby SET_TWT_MODE_ RADIATE SET_TWT_MODE_OFF

Figure 9 - Master Controller's State Transition Diagram

Off DATA_COLLECT_MODE_OFF DATA_COLLECT_MODE_FAST

DATA_COLLECT_MODE_OFF DATA_COLLECT_MODE_SLOW

DATA_COLLECT_MODE_SLOW Slow Fast DATA_COLLECT_MODE_FAST

Figure 10 - Data Collector's State Transition Diagram

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 46 Software Requirements Specification

Any other

Locked

SET_LOCK_MODE_LOCKED

SET_LOCK_MODE_UNLOCKED

Process Done UnLocked Processing Any other Command

Figure 11 - User Interface State Transition Diagram

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 47 Software Requirements Specification

Off (Slave)

Connected (Slave)

SET_TWT_MODE_STANDBY TWT Off TWT Warming TWT Standby TWT Radiate (Slave) SET_TWT_MODE_ (Slave) SET_TWT_MODE_ (Slave) SET_TWT_MODE_RADIATE (Slave) WARMING STANDBY

SET_TWT_MODE_OFF

Figure 12 - Slave Controller State Transition Diagram

Keyboard Input

Disconnect Command Completed[ Received from Master ] Remote Reconnect Receive command from Master

SET_REMOTE_MODE_REMOTE or TIMER_UP SET_REMOTE_MODE_LOCAL Master Command Command Completed Local Local w/ [ Received from Slave ] Processing Disconnect SET_REMOTE_MODE_LOCAL Command Receive command from Slave

Figure 13 - Slave Controller State Transition Diagram

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 48 Software Requirements Specification

12. Appendix I: Data Flow Diagram

Keyboard, Mouse, Master

Input Event

Data Process Command Process Experiment Data File Save Data Data Command Input Event

System Activity Entry

Initialize Data to Display Display Settings Error Message SystemActivity File

Error Entry Display Data Display Error Configuration File

Data Error

Display

Figure 14 - Master System Data Flow Diagram - LEVEL 1

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 49 Software Requirements Specification

Process Input Event

Command

Parse Command Get Command Slave Value Shutdown Command Get Shutdown Show Value Value Set Command Command Setting

Set Show Value

Configure Value Command Configuration Data Configure Display Data Configuration File Display Configuration Command Data Error Display Display Error

Figure 15 - Master System Data Flow Diagram - LEVEL 2 – Process Command End of Document. §

Software Requirements Specification CS 4311 Fall 2002 Date Page 4/5/2018 50