- [FR0] Egg Flow Communicator [DP0] Build a System that Communicates Egg Flow at Conveyors
- [FR1] Presentation Layer
- [FR1.1] Shall have a GUI [DP1.1] Will have a main window
- [FR1.1.1] Shall have a Configuration Interface [DP1.1.1] Will have a configuration tab
- [FR1.1.1.1] Shall allow changing of alarm parameters [DP1.1.1.1] Will have a subtab for alarm parameters
- [FR1.1.1.1.1] Shall allow changes to sample size [DP1.1.1.1.1] Will have a radio button for sample size
- [FR1.1.1.1.2] Shall allow changes to sample variance [DP1.1.1.1.2] Will have a radio button for sample variance
- [FR1.1.1.1.3] Shall allow changes to alarm snooze length [DP1.1.1.1.3] Will have a radio button for alarm snooze length
- [FR1.1.1.1.4] Shall allow alarm sound file to be changed [DP1.1.1.1.4] Will have a radio button to access the sound file dialogue
- [FR1.1.1.1.5] Shall allow changes to sound volume [DP1.1.1.1.5] Will have a slider for volume control
- [FR1.1.1.2] Shall allow changing of collector parameters [DP1.1.1.2] Will have a subtab for collector parameters
- [FR1.1.1.2.1] Shall allow changes to the number of sensor arrays displayed [DP1.1.1.2.1] Will have a radio button for altering the number of sensor arrays
- [FR1.1.1.2.2] Shall allow changes to the number of sensors per array displayed [DP1.1.1.2.2] Will have a radio button for altering the number of sensors per array
- [FR1.1.1.3] Shall allow changing of serial communication parameters [DP1.1.1.3] Will have a subtab for serial communication parameters
- [FR1.1.1.3.1] Shall allow change to the serial port number [DP1.1.1.3.1] Will have a radio button for altering the serial port number
- [FR1.1.1.3.2] Shall allow changes to the timeout length [DP1.1.1.3.2] Will have a radio button for altering the timeout length
- [FR1.1.2] Shall have a Visual Alert [DP1.1.2] Will indicate which sensor(s) and/or array(s) are jammed by color change
- [FR1.1.3] Shall have an Audio Alarm [DP1.1.3] Will generate alert sound using computer speakers
- [FR1.1.4] Shall have a Statistics interface [DP1.1.4] Will have a statistics tab with a display element for each sensor array and sensor
- [FR1.1.4.1] Shall display the address of each module [DP1.1.4.1] Shall label each sensor array with its address
- [FR1.1.4.2] Shall display the egg count for each sensor [DP1.1.4.2] Shall label each sensor with its egg count
- [FR1.1.4.3] Shall display the total egg count for each module [DP1.1.4.3] Shall label each sensor array with its total egg count
- [FR1.1.4.4] Shall display the total egg count [DP1.1.4.4] Shall indicate the total egg count
- [FR1.1.4.5] Shall allow changes to module address [DP1.1.4.5] Shall make each sensor display element clickable to allow changing of itsaddress
- [FR1.1.5] May allow viewing of past log files [DP1.1.5] May display past log files in child window.
- [FR1.1.6] Shall have a Status interface [DP1.1.6] Shall have a status tab with a display element for each sensor array and sensor
- [FR1.1.6.1] Shall show the status of each sensor [DP1.1.6.1] Will indicate the status of each sensor via color
- [FR1.1.6.2] Shall display the status of each sensor array [DP1.1.6.2] Will indicate the status of each sensor array via color
- [FR1.1.6.3] Shall allow sensor arrays to be disabled [DP1.1.6.3] Will allow a sensor array to be disabled by clicking its display element
- [FR1.1.6.4] Shall allow the alarm to be disabled [DP1.1.6.4] Will have a toggle for disabing the audio alarm
- [FR1.1.7] Shall allow viewing of the log since activation [DP1.1.7] Will have a log tab updated as status changes are made
- [FR1.1.8] Shall allow disabling of changes [DP1.1.8] Will have a button to disable configuration changes
- [FR1.1.9] Shall require confirmation for reenabling changes [DP1.1.9] Will have a dialogue window to confirm reenabling changes
- [FR1.1.10] Shall allow the GUI to be closed and program shut down. [DP1.1.10] Will have a close window button
- [FR1.1.11] Shall allow the GUI to be resized [DP1.1.11] Will have a resizable window and display elements
- [FR1.1.12] Shall allow the GUI to be minimized [DP1.1.12] Will have a Minimize button
- [FR1.1.13] Shall allow the GUI to be maximized [DP1.1.13] Will have a Maximize button
- [FR1.2] Shall work with UI Process Components [DP1.2] Windows Forms
- [FR1.3] Shall utilize touch screen interface [DP1.3] Will make display and interaction elements suitable for touch interaction
- [FR2] Business Layer
- [FR2.1] Shall run on Windows OS [DP2.1] Utilize Existing POS
- [FR2.1.1] Primary Application [DP2.1.1] Shall develop application for a Windows-based system
- [FR2.1.1.1] Shall have a Bridge to Communication Driver [DP2.1.1.1] Shall use communication library components
- [FR2.1.1.2] Shall have a Hardware Polling Process [DP2.1.1.2] Shall have a control structure implemented to poll modules
- [FR2.1.1.3] Shall have a State Logic Process [DP2.1.1.3] Shall have a control structure implemented as a state machine for determining jams
- [FR2.1.1.4] Shall have a GUI Build/Update [DP2.1.1.4] Shall incorporate a windows-driven user interface
- [FR2.1.2] Shall utilize a Serial Communication Driver [DP2.1.2] C driver or comm library to drive communication
- [FR2.1.3] Shall utilize communication standards compatible with the microcontrollers [DP2.1.3] Software USB capable
- [FR2.1.4] Shall utilize communication standards compatible with distance and sensor constraints [DP2.1.4] Shall convert communication signal between RS485 and RS232
- [FR2.1.5] May incorporate error correction [DP2.1.5] May use Hamming Code for error correction
- [FR2.2] Sensors (Microcontrollers) [DP2.2] Utilize the BS2 Microcontroller
- [FR2.2.1] Shall have a RS485 to RS232 Convertor [DP2.2.1] Hardware Converter for RS232 to RS485
- [FR2.2.2] May buffer incoming communication [DP2.2.2] May utilize UART to buffer signals
- [FR2.2.3] Shall utilize Communication Software [DP2.2.3] Hardware Implemented Communication Software
- [FR2.2.4] Shall have Counting Software [DP2.2.4] PBASIC Control Structure to count eggs from hardware device
- [FR3] Data Access Layer
- [FR3.1] Primary Application [DP3.1] Windows-based application
- [FR3.1.1] Shall be able to write log files [DP3.1.1] Shall incorporate component to write log files
- [FR3.1.2] Shall be able to read log files [DP3.1.2] Shall incorporate component to read log files
- [FR3.1.3] Shall have a Parser/Tokenizer [DP3.1.3] Shall include component to parse .ini files
- [FR3.1.4] Shall be able to write configuration files [DP3.1.4] Shall incorporate component to write configuration file
- [FR3.1.5] Shall be able to read configuration files [DP3.1.5] Shall incorporate component to read configuration file
- [FR4] Persistence Layer
- [FR4.1] Primary Application [DP4.1] Windows-based application
- [FR4.1.1] Shall record Configuration Settings [DP4.1.1] Shall record configuration changes in a Configuration txt file
- [FR4.1.2] Shall maintain log files of system status changes [DP4.1.2] log txt file For system status changes
- [FR4.1.3] Shall have State Values [DP4.1.3] Shall record state values in Configuration txt file
- [FR4.1.4] Shall maintain egg counts for each sensor [DP4.1.4] Shall maintain egg counts in log files
- [FR4.1.5] Shall maintain egg counts for the system as a whole [DP4.1.5] Shall maintain egg counts in log files
- [FR4.1.6] May store status changes in a database [DP4.1.6] Might incorporate a HTML Post module to store status changes in a MYSQL database
- [FR4.1.7] May store egg counts in a database [DP4.1.7] Might incorporate a HTML Post module to store egg counts in a MYSQL database
- [FR4.2] Microcontroller
- [FR4.2.1] Shall maintain a unique address [DP4.2.1] PBASIC Object stores address
- [FR4.2.2] Shall maintain state values [DP4.2.2] PBASIC Objects can remember state
- [FR4.2.3] Shall store egg counts per sensor [DP4.2.3] PBasic object to store egg counts