ID: 2

1 Product Description


ID: 3

Please see section B.2 AquaLush Project Mission Statement for an overview of the product.


ID: 4

The software, as delivered, must consist of two parts: A Web-based simulation, and
Software to control the hardware.


ID: 5

2 Functional Requirements


ID: 6

2.1 Setting Parameters


ID: 7

All parameters set by users must remain in effect until changed by users.


ID: 8

AquaLush must run in one of two modes: manual or automatic.


ID: 9

Users must be able to set the mode.


ID: 10

Setting the mode to its current value must have no effect on irrigation.


ID: 11

Setting the mode to a different value must result in AquaLush closing all valves.


ID: 12

AquaLush must display the current mode to the user after the user sets the mode.


ID: 13

AquaLush must allow users to set the current time.


ID: 14

The current time consists of the current day and the current time of day.


ID: 15

AquaLush must either not allow an invalid time setting or validate the new time setting.


ID: 16

If a new time setting fails validation, then AquaLush must notify the user of the problem and not accept the new setting.


ID: 17

AquaLush must display a reset current time to the user.


ID: 18

If the current time is set so that an irrigation time is skipped, then AquaLush must wait for the next irrigation time. In other words, AquaLush makes no attempt to detect and react to irrigation times skipped as a result of a time setting.


ID: 19

AquaLush must allow the days and time of day when irrigation occurs, called the irrigation time, to be set.


ID: 20

AquaLush must either not allow an invalid irrigation time setting or validate the new irrigation time setting.


ID: 21

If a new irrigation time setting fails validation, then AquaLush must notify the user of the problem and not accept the new setting.


ID: 22

If the irrigation time is set when automatic irrigation is in progress, then AquaLush must finish the current irrigation cycle and the new irrigation time must take effect upon completion of the cycle.


ID: 23

AquaLush must display a reset irrigation time to the user.


ID: 24

AquaLush must allow moisture levels that control irrigation, called critical moisture levels, to be set for each irrigation zone.


ID: 25

AquaLush must either not allow an invalid critical moisture level setting or validate the new critical moisture level setting.


ID: 26

If a new critical moisture level setting fails validation, then AquaLush must notify the user of the problem and not accept the new setting.


ID: 27

If the critical moisture level is set when automatic irrigation is in progress, then AquaLush must use the new critical moisture level to control irrigation immediately.


ID: 28

AquaLush must display a reset critical moisture level to the user.


ID: 29

AquaLush must allow the maximum amount of water used in each irrigation cycle, called the water allocation, to be set.


ID: 30

AquaLush must either not allow an invalid water allocation setting or validate the new water allocation setting.


ID: 31

If a new water allocation setting fails validation, then AquaLush must notify the user of the problem and not accept the new setting.


ID: 32

If the water allocation is set when automatic irrigation is in progress, then AquaLush must recompute the allocations for each unirrigated irrigation zone and use them immediately to control irrigation.


ID: 33

AquaLush must display a reset water allocation to the user.


ID: 34

2.2 General Operation


ID: 35

A configuration file must be prepared at installation so that AquaLush can read this file to obtain its configuration at startup.


ID: 36

AquaLush must allow operation in either automatic or manual mode.


ID: 37

AquaLush must monitor the amount of water used in irrigation.


ID: 38

AquaLush must detect valve and sensor failures.


ID: 39

2.3 Manual-Mode Operation


ID: 40

In manual-mode operation, AquaLush must allow users to select non-empty sets of (working) valves and direct that they be opened or closed.


ID: 41

AquaLush must display the following data for each manually opened valve while it is open:
- its identifier
- its location
- how long it has been open
- how much water it has used
- the moisture level reported by its associated sensor


ID: 47

AquaLush must display the total water used in manual irrigation.


ID: 48

AquaLush must set the total water used in manual irrigation to zero when it starts up in manual mode or when it is switched to manual mode from automatic mode.


ID: 49

When no valve is open in manual irrigation mode, AquaLush must set the total water used in manual irrigation to zero.


ID: 50

2.4 Automatic-Mode Operation


ID: 51

In automatic-mode operation, AquaLush must begin an irrigation cycle when the current time reaches the irrigation time.


ID: 52

In automatic-mode operation, AquaLush must conduct an irrigation cycle by irrigating one irrigation zone at a time and successively irrigating each zone until all have been irrigated.


ID: 53

AquaLush must do the following during an irrigation cycle:
- AquaLush must read the working sensor in each zone and place all zones whose sensors are below that zone’s critical moisture level on an active zone list.
- AquaLush must count the working valves in the active zones and divide the water allocation by this count to get a valve allocation.
- AquaLush must assign each zone a zone allocation, which is the valve allocation multiplied by the number of working valves in the zone.
- For each active zone, AquaLush must open all the working valves in the zone.
- Every minute, AquaLush must read the zone sensor.
- Every minute, AquaLush must compute the zone water usage by multiplying the total flow rate for all open valves in the zone by the time that the valves have been open.
- If a zone’s critical moisture level is reached, then AquaLush must close all valves in the zone and go to the next zone.
- If a zone’s zone allocation is reached, then AquaLush must close all valves in the zone and go to the next zone.
- When all valves in a zone are closed, if the zone allocation is not exhausted, then AquaLush must add the remainder of the zone allocation to the total of the zone allocations of the unirrigated zones, divide this sum by the number of working valves in the unirrigated zones to produce a new valve allocation, and multiply this value by the number of working valves in each unirrigated zone to produce a new zone allocation for each unirrigated zone.
- An irrigation cycle must end when every zone on the active zone list has been irrigated.


ID: 64

2.5 Failures


ID: 65

If a sensor cannot be read, then AquaLush must try to read it twice more.


ID: 66

If a sensor can be read within three tries, then AquaLush must ignore the error.


ID: 67

If a sensor cannot be read after three tries, then AquaLush must mark that sensor as failed in its persistent store and stop using it in irrigation.


ID: 68

If a sensor cannot be read after three tries in manual-mode operation, then AquaLush must alert the user that the sensor has failed.


ID: 69

If a sensor cannot be read after three tries when AquaLush is irrigating that sensor’s zone, then AquaLush must close all valves in that zone and continue the irrigation cycle as if that sensor had indicated that the zone had reached its critical moisture level.


ID: 70

If a valve cannot be manipulated (opened or closed), then AquaLush must try to manipulate it twice more.


ID: 71

If a valve can be manipulated within three tries, then AquaLush must ignore the error.


ID: 72

If a valve cannot be manipulated after three tries, then AquaLush must mark that valve as failed in its persistent store and stop using it in irrigation.


ID: 73

If a valve cannot be manipulated after three tries in manual-mode operation, then AquaLush must alert the user that the valve has failed.


ID: 74

If AquaLush cannot write to its persistent store, then it must alert the user of the problem and continue operation.


ID: 75

If AquaLush cannot read its persistent store it must alert the user of the problem.


ID: 76

If AquaLush cannot read its persistent store during operation, then it must continue operation.


ID: 77

If AquaLush cannot read its persistent store when starting up, then it must display an error message and suspend operation.


ID: 78

AquaLush must provide reports of failed valves and sensors when requested to do so by the user.


ID: 79

If no valves have failed, then AquaLush must report that there are no valve failures.


ID: 80

If no sensors have failed, then AquaLush must report that there are no sensor failures.


ID: 81

If valves or sensors have failed, then AquaLush must report for each failed valve and sensor:
- The valve or sensor identifier
- The valve or sensor location


ID: 84

AquaLush must allow users to indicate that failed valves and sensors have been repaired.


ID: 85

When told that a failed valve or sensor is repaired, AquaLush must update its persistent store with this information.


ID: 86

When told that a failed valve or sensor is repaired, AquaLush must begin using the repaired valve or sensor in irrigation immediately.


ID: 87

2.6 Startup


ID: 88

When power is applied to the system, the AquaLush software must load and execute.


ID: 89

When it starts, AquaLush must first read its configuration file from persistent store to establish its configuration.


ID: 90

After establishing its configuration, AquaLush must read its persistent store to restore its state.


ID: 91

After starting, AquaLush must close all valves.


ID: 92

AquaLush must make no attempt to resume an irrigation operation that may have been in progress when it was shut down.


ID: 93

2.7 Simulation


ID: 94

The Web-based AquaLush simulation must represent all operational and maintenance features of the delivered product.


ID: 95

The simulation must provide a realistic representation of the AquaLush control panel.


ID: 96

The simulation must provide a representation of a site with irrigation zones.


ID: 97

Each simulated irrigation zone must simulate a sensor and display the simulated sensor’s moisture level.


ID: 98

Each simulated irrigation zone must simulate regions watered by irrigation valves and display the states of the simulated valves and their flow rates.


ID: 99

The simulation must provide means for controlling the simulation.


ID: 100

The simulation must display the simulated time and provide a means for setting the simulated time.


ID: 101

The simulation must provide controls to change the simulation speed (that is, speed up or slow down the simulated time).


ID: 102

The simulation must simulate water evaporation, reflected in the measured moisture levels at the simulated sensors.


ID: 103

The simulation must provide controls to alter the simulated water evaporation rate.


ID: 104

The simulation must simulate valve and sensor failure and repair.


ID: 105

The simulation must provide controls to alter the failure status of valves and sensors.


ID: 106

3 Data Requirements


ID: 107

3.1 Irrigation Zones


ID: 108

The irrigated site must be divided into 1 to 32 irrigation zones.


ID: 109

Each irrigation zone must have exactly one moisture sensor.


ID: 110

Each irrigation zone must have 1 to 32 irrigation valves.


ID: 111

An irrigation zone identifier must consist of the letter “Z” (upper- or lowercase) followed by a unique integer in the range 0..999.


ID: 112

An irrigation zone location must be a string of 0 to 24 characters not containing angle brackets.


ID: 113

The zone’s critical moisture level must be an integer in the range 0..100 interpreted as a percent of saturation.


ID: 114

3.2 Sensor Data


ID: 115

The following data must be recorded for each sensor:
- Identifier
- Location
- Operational status


ID: 119

A sensor identifier must consist of the letter “S” (upper- or lowercase) followed by a unique integer in the range 0..999.


ID: 120

A sensor location must be a string of 0 to 24 characters not containing angle brackets.


ID: 121

The operational status must be a Boolean value interpreted as the truth value of the statement “This sensor is working.”


ID: 122

3.3 Valve Data


ID: 123

The following data must be recorded for each valve:
- Identifier
- Type
- Location
- Flow rate
- Operational status


ID: 129

A valve identifier must consist of the letter “V” (upper- or lowercase) followed by a unique integer in the range 0..999.


ID: 130

A valve type must be a string of 0 to 16 characters not containing angle brackets.


ID: 131

A valve location must be a string of 0 to 24 characters not containing angle brackets


ID: 132

A flow rate must be an integer in the range 1.. 231–1 interpreted as gallons per minute of water flow through the valve.


ID: 133

The operational status must be a Boolean value interpreted as the truth value of the statement “This valve is working.”


ID: 134

3.4 Configuration File


ID: 135

The configuration file must be a text file editable with a standard text editor.


ID: 136

A configuration file must have the form (specified using data definition notation) shown in Figure B-7-1.


ID: 407

Figure B-7-1 AquaLush Configuration File


ID: 137

Each elementary data item must be separated from the others by white space with the exception of the following:


ID: 138

The zone, sensor, and valve letters must not be separated from their identifier numbers.


ID: 139

All characters between angle brackets must be considered part of the description.


ID: 140

The curly braces and semicolon do not need to be separated from other tokens by white space.


ID: 141

The configuration file must be named “config.txt” and must be placed in the same directory as the AquaLush executable program.


ID: 142

A configuration file that cannot be found, opened, read, or parsed must be treated as a persistent store failure.


ID: 143

3.5 System Parameters


ID: 144

AquaLush must record its system parameters in persistent store so that its state can be restored at startup.


ID: 145

System parameters include the following items:
- Mode of operation
- Irrigation time
- Water allocation


ID: 149

The mode must be either manual or automatic.


ID: 150

The irrigation time must specify both the days and the time of day when irrigation is to occur.


ID: 151

The irrigation days must be a subset of {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}.


ID: 152

The irrigation time of day must be a 24-hour-clock value in the range 0000 to 2359 (accurate to one minute).


ID: 153

The water allocation must be an integer in the range 0..2^31–1 interpreted as gallons of water.


ID: 154

The current time is recorded in the system clock and may be set by the user; it consists of both the current day and the current time of day.


ID: 155

The current day must be an element of {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}.


ID: 156

The current time of day must be a 24-hour-clock value in the rage 0000 to 2359 (accurate to one minute).


ID: 157

3.6 Manual Mode Data Display


ID: 158

The following data must be displayed for each valve in manual mode:
- Valve identifer
- Valve location
- How long the valve has been open
- How much water has been used
- Associated sensor moisture level


ID: 164

The valve identifier and location must be the valve data recorded in the system. The location may be truncated to fit user interface display constraints.


ID: 165

The length of time the valve has been open must be a military time specification in the form hhmm, where hh must be hours in the range 0..23 and mm must be minutes in the range 0..59. All four digits must always be displayed.


ID: 166

The amount of water used by the valve must be an integer in the range 0..2^31–1 describing the water used in gallons.


ID: 167

The associated sensor moisture level must be a moisture sensor reading in the range 0..100.


ID: 168

The total water used during manual irrigation must also be displayed. This value must be an integer in the range 0..2^31–1 describing the water used in gallons.


ID: 169

Each displayed value must be updated every minute or when a valve is opened.


ID: 170

3.7 Failure Reports


ID: 171

Failure reports must display the following data:


ID: 172

The failed sensor or valve identifier


ID: 173

The failed sensor or valve location


ID: 174

The failed sensor or valve identifier must be the sensor or valve identifier recorded in the system.


ID: 175

The failed sensor or valve location must be the sensor or valve location recorded in the system. It may not be truncated on display.


ID: 176

3.8 Simulation Parameters


ID: 177

The simulated time consists of the simulated day and the simulated time of day.


ID: 178

The simulated day must be an element of {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}.


ID: 179

The simulated time of day must be a 24-hour-clock value in the range 0000 to 2359 (accurate to one minute).


ID: 180

The simulation speed must be a multiple of the real rate of time specified as an integer multiplier in the range 1..1000.


ID: 181

The simulated water evaporation rate must be an integer in the range 0..100 interpreted as the percent change in moisture level per day (as reflected in the simulated moisture sensor reading).


ID: 182

3.9 Defaults


ID: 183

The default mode must be automatic.


ID: 184

The default irrigation day must be the set {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday} (every day).


ID: 185

The default irrigation time must be 0200.


ID: 186

The default water allocation must be 10000.


ID: 187

The default zone critical moisture level must be 50.


ID: 188

The default sensor and valve operational status must be true.


ID: 189

The default simulation speed must be 1 (real time).


ID: 190

The default simulated rate of water evaporation must be 10.


ID: 191

4 Non-Functional Requirements


ID: 192

4.1 Installation


ID: 193

AquaLush software must be configurable in no more than 1 minute per irrigation valve after no more than 30 minutes of reading the instruction manual.


ID: 194

4.2 Operation


ID: 195

AquaLush must have an interface that allows irrigation to be set up or altered in less than five minutes without consulting a manual.


ID: 196

AquaLush must be operated from a single central control panel.


ID: 197

4.3 Failure


ID: 198

AquaLush must recover from power failures without human intervention.


ID: 199

AquaLush software must fail no more than once per month of normal operation.


ID: 200

4.4 Simulation


ID: 201

The AquaLush simulation must be installable on a Web site in no more than one hour.


ID: 202

The AquaLush simulation must require no more than one hour per month of maintenance.


ID: 203

At least 70% of users must agree that the AquaLush Web-based simulation provides an accurate representation of the actual product and its use.


ID: 204

4.5 Evolution


ID: 205

The main AquaLush irrigation software components must be reusable in later products.


ID: 206

AquaLush must eventually control a variety of irrigation valves.


ID: 207

AquaLush must accommodate implementation of traditional timer-controlled irrigation.


ID: 208

5 Hardware Interface


ID: 209

5.1 Sensors and Valves


ID: 210

Sensors must be readable and provide data convertible to a percent of saturation value.


ID: 211

Sensor failures must be detectable when a sensor is read.


ID: 212

Valves must be openable and closable.


ID: 213

Valve failures must be detectable when a valve is manipulated.


ID: 214

5.2 Control Panel


ID: 215

The AquaLush central control panel must be based on ATM machine technology.


ID: 216

It must include a monochrome screen that displays 16 lines of 40 ASCII characters each.


ID: 217

It must include eight push buttons adjacent to the screen, called screen buttons.


ID: 218

There must be four buttons on each side of the screen, arranged so that their centers align with the 9th, 11th, 13th, and 15th lines of the display.


ID: 219

It must include a 12-key keypad.


ID: 220

The keypad must have 10 numeric keys, a DEL (delete) key, and an ESC (escape) key.


ID: 221

6 Control Panel User Interface


ID: 222

6.1 General Control Panel Conventions


ID: 223

The control panel must have a menu-based textual user interface.


ID: 224

Most screens must present a menu selection or ask the user to fill in values as a result of a menu selection.


ID: 225

Pressing one of the screen buttons must take the indicated action.


ID: 226

Each child screen must have a menu item for returning to the parent screen from the bottom-right screen button.


ID: 227

Pressing the ESC button on a child screen must cancel any changes the user may have made and return to the parent screen.


ID: 228

Pressing the ESC button on the main menu screen must have no effect.


ID: 229

Pressing a screen button that does not have a function indicated in the display must have no effect.


ID: 230

Pressing a keypad digit button or the DEL button when the screen does not prompt for numeric input must have no effect.


ID: 231

Many screens have centered text. Text must be centered by dividing the length of the text in two, rounding down, and subtracting this value from 20 to reach the display column where the text begins. The first column must be zero.


ID: 232

6.2 Control Panel Dialog Maps


ID: 233

The control panel must conduct a dialog with the user that begins in a main menu with AquaLush in automatic mode.


ID: 234

The user may change to a menu screen with AquaLush in manual mode.


ID: 235

The menu screens in the two modes must be identical except that


ID: 236

Their mode indicators must be different


ID: 237

The manual mode menu must have an extra menu item for controlling irrigation manually.


ID: 238

The control panel must conform to the dialog map in Figure B-7-2, which shows the main menu states and the manual irrigation control state.


ID: 422

Figure B-7-2 AquaLush Dialog Map


ID: 239

The Change Mode action must be a “Change Mode” screen button press.


ID: 240

The Control Irrigation action must be a “Control Irrigation” screen button press.


ID: 241

The Finished action must be either a “Finished” screen button press or a keypad ESC button press.


ID: 242

The Display Location action must be a “Display Location” screen button press.


ID: 243

The Display Data action must be a “Display Data” screen button press.


ID: 244

The control panel must conform to the dialog map in Figure B-7-3, which shows the common main menu item states suppressed in Figure B-7-2.


ID: 423

Figure B-7-3 Expanded AquaLush Dialog Map


ID: 245

The Main Menu state in this dialog map is a placeholder for the Auto Main state or the Manual Main state.


ID: 246

The Accept action must be an “Accept New Settings” screen button press.


ID: 247

The Finished action must be a “Finished” screen button press.


ID: 248

The Cancel action must be a keypad ESC button press.


ID: 249

The Set Clock action must be a “Set the Clock” screen button press.


ID: 250

The Fix Failures action must be a “Fix Failures” screen button press.


ID: 251

The Set Up Automatic Irrigation action must be a “Set Up Automatic Irrigation” screen button press.


ID: 252

The Set Times action must be a “Set Irrigation Times” screen button press.


ID: 253

The Set Moisture action must be a “Set Critical Moisture Levels” screen button press.


ID: 254

The Set Allocation action must be a “Set Water Allocation” screen button press.


ID: 255

The control panel must conform to the dialog map in Figure B-7-4 in the special circumstance that a device or persistent store error occurs during user interaction.


ID: 424

Figure B-7-4 AquaLush Dialog Map with Failures


ID: 256

Note that the Normal State is a placeholder for any of the states in the previous dialog maps.


ID: 257

The Device Failure action must be a detected sensor or valve failure.


ID: 258

The Store Failure action must be an inability to read from or write to the persistent data store.


ID: 259

The OK action must be an “OK” screen button press.


ID: 260

6.3 Control Panel User Interface Diagrams


ID: 261

The Auto Main state must be the initial state of the user interface when AquaLush is installed.


ID: 262

The Auto Main state must display the main menu screen shown in Figure B-7-5.


ID: 408

Figure B-7-5 AquaLush Automatic Main Menu Screen


ID: 263

Note that the digits in the borders of Figures B-7-5 through B-7-17 are for ease in interpreting the diagram: They must not appear on the screen.


ID: 264

Note that the day, time, number of failed valves, and number of failed sensors must vary. This data must always be centered on the screen.


ID: 265

The Manual Main state must be an alternative main menu state in manual mode.


ID: 266

The Manual Main state must display the main menu screen shown in Figure B-7-6.


ID: 409

Figure B-7-6 AquaLush Manual Main Menu Screen


ID: 267

Note that the day, time, number of failed valves, and number of failed sensors must vary. This data must always be centered on the screen.


ID: 268

The Manual Irrigation (Data) state must allow users to directly open and close valves and must display irrigation data about each valve.


ID: 269

The Manual Irrigation (Data) state must display the screen shown in Figure B-7-7.


ID: 410

Figure B-7-7 AquaLush Manual Irrigation Data Screen


ID: 270

The region between the dashed lines must be a scrollable display of all working valves and data about their states or locations.


ID: 271

The valves must be listed in zone identifier order and then in valve identifier order within a zone.


ID: 272

The middle, highlighted element is the current valve.


ID: 273

The list must scroll up to or down to the middle element so that any valve can be made current.


ID: 274

There must always be a current valve.


ID: 275

The two middle screen buttons on the right must control scrolling.


ID: 276

If the user presses the “Open/Close Valve” screen button, then the current valve must be opened (if it is closed) or closed (if it is open).


ID: 277

If the user presses the “Propagate to Zone” screen button, then all valves in the current valve’s zone must be opened (if the current valve is open) or closed (if the current valve is closed).


ID: 278

The Valve field must show the identifier and status of each valve.


ID: 279

The status must be indicated by a single character in column three in the format “+” for open and “–” for closed.


ID: 280

The valve identifier must be left-aligned and occupy columns four through seven.


ID: 281

The Zone field must display the zone identifier left-aligned in columns 9 through 12.


ID: 282

The Wet% field must display the percent saturation of the moisture sensor in the valve’s zone right-aligned in columns 14 through 16 with no leading zero.


ID: 283

If the valve’s zone moisture sensor has failed, then this column must be filled with two dashes and be right-aligned.


ID: 284

The Time field must display the time that the valve has been open in four-digit military time notation in columns 19 through 22.


ID: 285

The Water Used field must show the number of gallons of water released by the valve during this manual irrigation cycle right-aligned in columns 24 through 36 with no leading zeros.


ID: 286

The Gallons Used display in row eight must show the number of gallons released by all valves during this irrigation cycle with no leading zeros.


ID: 287

The Gallons Used display must be centered.


ID: 288

The Manual Irrigation (Location) state must allow users to directly open and close valves and must display the location of each valve.


ID: 289

The Manual Irrigation (Location) state must display the screen shown in Figure B-7-8.


ID: 411

Figure B-7-8 AquaLush Manual Irrigation Location Screen


ID: 290

The region between the dashed lines must be a scrollable display that works just as in the Manual Irrigation (Data) state.


ID: 291

The screen buttons must work just as in the Manual Irrigation (Data) state.


ID: 292

The Valve field must display data just as in the Manual Irrigation (Data) state.


ID: 293

The Zone field must display data just as in the Manual Irrigation (Data) state.


ID: 294

The Location field must display the valve’s location string left-aligned in columns 14 through 37.


ID: 295

The Gallons Used display must work just as in the Manual Irrigation (Data) state.


ID: 296

The Set Clock state must allow users to set the AquaLush hardware clock.


ID: 297

The Set Clock state must display the screen shown in Figure B-7-9.


ID: 412

Figure B-7-9 AquaLush Set Clock Screen


ID: 298

The current day and time displays must change as time progresses.


ID: 299

If the user alters the current time, then the display must no longer progress.


ID: 300

If the user presses the DEL key, then characters must be erased from the Current Time display from right to left.


ID: 301

If the user presses keypad digit keys, then digits must be added to the Current Time display from left to right.


ID: 302

If the user presses keypad digit keys when there are already four digits in the Current Time display, then the display must not be changed and the terminal must beep.


ID: 303

Users must be constrained in entering digits in the following ways:


ID: 304

The first digit must be in the range zero to two.


ID: 305

If the first digit is zero or one, then the second digit must be in the range zero to nine.


ID: 306

If the first digit is two, then the second digit must be in the range zero to three.


ID: 307

The third digit must be in the range zero to five.


ID: 308

The fourth digit must be in the range zero to nine.


ID: 309

If the user attempts to enter an illegal digit, the digit must not be displayed and the terminal must beep.


ID: 310

If the user presses a screen key for a day, the day must be shown in the Current Day display immediately.


ID: 311

If the user presses the ESC key, the clock must not be changed.


ID: 312

If the user presses the “Accept New Settings” button, the current settings (possibly altered by the user) must be used to reset the clock.


ID: 313

If a new time is only partially entered when the user presses the “Accept New Settings” button, the time must not be reset.


ID: 314

The Fix Failures state must allow users to see which devices have failed and to tell AquaLush which have been repaired.


ID: 315

The Fix Failures state must display the screen shown in Figure B-7-10.


ID: 413

Figure B-7-10 AquaLush Fix Failures Screen


ID: 316

The region between the dashed lines must be a scrollable display of all failed sensors and valves, their zones, and their locations.


ID: 317

The failed sensors must be listed first, followed by failed valves in zone identifier order and then in valve identifier order within a zone.


ID: 318

The middle, highlighted element is the current device.


ID: 319

If the list is empty, there must be no current device.


ID: 320

A non-empty list must scroll up to or down to the middle element so that any device can be made current and there is always a current device.


ID: 321

The two middle screen buttons on the right must control scrolling.


ID: 322

If the user presses the “Repaired” screen button, then the current device must be recorded as repaired and removed from the list.


ID: 323

When a device is removed from the list and there is a device below the removed device, the device below must become the current device.


ID: 324

When a device is removed from the list and there is no device below the removed device but there is one above it, then device above must become the current device.


ID: 325

When a device is removed from the list and the list becomes empty, there must be no current device.


ID: 326

The Device field must show the identifier of each failed device left-aligned in columns three through six.


ID: 327

The Zone field must show the failed device’s zone identifier left-aligned in columns 9
through 12.


ID: 328

The Location field must display the failed device’s location string left-aligned in columns 14 through 37.


ID: 329

The failed devices summary in row eight must show counts of failed sensors and valves with no leading zeros in a centered display.


ID: 330

The Set Up Auto Irrigation state must allow users to configure automatic moisture-controlled irrigation.


ID: 331

The Set Up Auto Irrigation state must display the screen shown in Figure B-7-11.


ID: 414

Figure B-7-11 AquaLush Set Up Auto Irrigation Screen


ID: 332

The Set Irrigation Times state must allow users to set automatic irrigation times.


ID: 333

The Set Irrigation Times state must display the screen shown in Figure B-7-12.


ID: 415

Figure B-7-12 AquaLush Set Irrigation Times Screen


ID: 334

If the user presses the DEL key, then characters must be erased from the Irrigation Time display from right to left.


ID: 335

If the user presses keypad digit keys, then digits must be added to the Irrigation Time display from left to right.


ID: 336

If the user presses keypad digit keys when there are already four digits in the Irrigation Time display, then the display must not be changed and the terminal must beep.


ID: 337

Users must be constrained in entering digits in the following ways:


ID: 338

The first digit must be in the range zero to two.


ID: 339

If the first digit is zero or one, then the second digit must be in the range zero to nine.


ID: 340

If the first digit is two, then the second digit must be in the range zero to three.


ID: 341

The third digit must be in the range zero to five.


ID: 342

The fourth digit must be in the range zero to nine.


ID: 343

If the user attempts to enter an illegal digit, the digit must not be displayed and the terminal must beep.


ID: 344

The Irrigation Days display must show the current set of irrigation days as a day set string.


ID: 345

The day set string must show the currently selected irrigation days in order, starting from Monday using, the following abbreviations:


ID: 346

Monday must be abbreviated as “M.”


ID: 347

Tuesday must be abbreviated as “Tu.”


ID: 348

Wednesday must be abbreviated as “W.”


ID: 349

Thursday must be abbreviated as “Th.”


ID: 350

Friday must be abbreviated as “F.”


ID: 351

Saturday must be abbreviated as “Sa.”


ID: 352

Sunday must be abbreviated as “Su.”


ID: 353

If the user presses a screen key for a day and that day is present in the Irrigation Days display, then that day must be removed from the Irrigation Days display.


ID: 354

If the user presses a screen key for a day and that day is not present in the Irrigation Days display, then that day must be added to the Irrigation Days display.


ID: 355

If the user presses the ESC key, the irrigation days and time must not be changed.


ID: 356

If the user presses the “Accept New Settings” button, the current settings (possibly altered by the user) must be used for irrigation times.


ID: 357

If a new irrigation time is only partially entered when the user presses the “Accept New Settings” button, the irrigation time must not be changed, but any changes to the irrigation days must be accepted.


ID: 358

The Set Moisture Levels state must allow users to alter each zone’s critical moisture level.


ID: 359

The Set Moisture Levels state must display the screen shown in Figure B-7-13.


ID: 416

Figure B-7-13 AquaLush Set Moisture Levels Screen


ID: 360

The region between the dashed lines must be a scrollable display of all zones, their critical moisture levels, and their locations.


ID: 361

The zones must be listed in zone identifier order.


ID: 362

The middle, highlighted element is the current zone.


ID: 363

The list must scroll up to or down to the middle element so that any zone can be made current.


ID: 364

There must always be a current zone.


ID: 365

The two middle screen buttons on the right must control scrolling.


ID: 366

If the user presses the “Propagate Settings to All Zones” screen button, then the current zone’s critical moisture setting must be applied to all zones.


ID: 367

If the user presses the DEL key, then characters must be erased from the current zone’s moisture level display from right to left.


ID: 368

If the user presses keypad digit keys, then digits must be added to the current zone’s moisture level display from left to right.


ID: 369

If the user presses keypad digit keys when there are already three digits in the current zone’s moisture level display, then the display must not be changed and the terminal must beep.


ID: 370

Users must be constrained in entering digits in following ways:


ID: 371

The first two digits must be in the range zero to nine.


ID: 372

The third digit must be a zero, and it must be accepted only if the first two digits are “10.”


ID: 373

The Zone field must show the zone identifier left-aligned in columns three through six.


ID: 374

The Level field must show the zone’s critical moisture level right-aligned in columns 9 through 11 with no leading zeros.


ID: 375

The Location field must display the zone’s location string left-aligned in columns 14 through 37.


ID: 376

If the user presses the ESC key, then no changes made to the critical moisture levels must take effect.


ID: 377

If the user presses the “Accept New Settings” button, then all changes to critical moisture levels must take effect.


ID: 378

The Set Water Allocation state must allow users to set the total amount of water to be used in an automatic irrigation cycle.


ID: 379

The Set Water Allocation state must display the screen shown in Figure B-7-14.


ID: 417

Figure B-7-14 AquaLush Set Water Allocation Screen


ID: 380

If the user presses the DEL key, then characters must be erased from the Gallons Allocated display from right to left.


ID: 381

If the user presses keypad digit keys, then digits must be added to the Gallons Allocated display from left to right.


ID: 382

If the user presses keypad digit keys when there are already 14 digits in the Gallons Allocated display, then the display must not be changed and the terminal must beep.


ID: 383

If the user presses the ESC key, the water allocation must not be changed.


ID: 384

If the user presses the “Accept New Settings” button, the current water allocation must be used to regulate irrigation.


ID: 385

The Device Failure state must be entered to notify the user that a sensor or valve has failed and possibly that AquaLush cannot write to its persistent store.


ID: 386

The Device Failure state must display the screen shown in Figure B-7-15.


ID: 418

Figure B-7-15 AquaLush Device Failure Screen


ID: 387

The device identifier, zone, and location must vary.


ID: 388

If the failed device is a valve, then the display must show the valve identifier, the valve’s zone, and the valve’s location string.


ID: 389

If the failed device is a sensor, then the display must show the sensor identifier, the sensor’s zone, and the sensor’s location string.


ID: 390

The data displayed in rows three through five must be centered.


ID: 391

The message about failure to write to persistent store must appear only if this failure actually occurs.


ID: 392

When the user presses the “OK” button, the program must return to the state from which it came when the failure was detected.


ID: 393

The Persistent Store Failure state must be entered to notify the user that AquaLush cannot read from or write to its persistent store.


ID: 394

The Persistent Store Failure state must display the screen shown in Figure B-7-16.


ID: 419

Figure B-7-16 AquaLush Persistent Store Failure Screen


ID: 395

When the user presses the “OK” button, the program must return to the state from which it came when the failure was detected.


ID: 396

If AquaLush cannot read its persistent store during startup, then it must display the screen shown in Figure B-7-17 and suspend further processing.


ID: 420

Figure B-7-17 AquaLush Unable to Start Screen


ID: 397

7 Simulation User Interface


ID: 398

7.1 User Interface Appearance


ID: 399

The simulation user interface must appear as indicated in Figure B-7-18.


ID: 421

Figure B-7-18 AquaLush Simulation User Interface


ID: 400

The right-hand side of the user interface must simulate the AquaLush control panel.


ID: 401

The left-hand side of the user interface must control and display the state of the simulated irrigation site.


ID: 402

7.2 User Interface Behavior


ID: 403

The failed devices controls must behave as specified in Figure B-7-19.


ID: 425

Figure B-7-19 Simulated Failed Devices Controls


ID: 404

The irrigation site display must behave as indicated in Figure B-7-20.


ID: 426

Figure B-7-20 Simulated Irrigation Site Display


ID: 405

The simulated time controls must behave as specified in Figure B-7-21.


ID: 427

Figure B-7-21 Simulated Time Controls


ID: 406

The evaporation controls must behave as specified in Figure B-7-22.


ID: 428

Figure B-7-22 Simulated Evaporation Controls

Produced by DOORS 9.3.0.2