(saveFormat "2.0")
(date "Tue 19/Dec/1995 09:23:44 MST")
(veerev "3.2")
(platform "HP9000s700")
(SaveCF no)
(filterNAN 0)
(component 0 ROOTCONTEXT
 (name "Sequencer Logging 2")
 (implementation
  (UserFunctions
   (nextID 2)
   (context 0
	(name "myRand1")
	(interface
	 (input 1
	  (name "A")
	  (optional yes)
	 )
	 (output 1
	  (type data)
	  (name "X")
	  (lock constraints)
	  (optional yes)
	 )
	)
	(implementation
	 (locked no)
	 (trigMode deg)
	 (nextID 2)
	 (component 0 RANDOMNUMBER
	  (interface
	   (output 1
		(name "Rand Val")
		(lock name constraints)
	   )
	  )
	  (implementation
	   (lowerLimit 0)
	   (upperLimit 1)
	  )
	 )
	 (component 1 FORMULA
	  (name " + ")
	  (interface
	   (input 1
		(name "X")
		(optional yes)
	   )
	   (input 2
		(name "Y")
		(optional yes)
	   )
	   (output 1
		(name "Result")
		(lock name constraints)
	   )
	  )
	  (implementation
	   (expr 1 "X+Y")
	  )
	 )
	 (configuration
	  (connect D0:1 D1:1)
	  (connect I1:1 D1:2)
	  (connect D1:1 O1:1)
	 )
	)
	(viewFor 0
	 (active detail)
	 (detail
	  (geometry -257 35 495 195)
	  (configuration
	   (viewFor 0
		(active detail)
		(icon
		 (geometry 227 178 127 25)
		)
		(detail
		 (geometry -163 85 157 58)
		)
		(terminals on)
	   )
	   (viewFor 1
		(active icon)
		(icon
		 (geometry 152 142 46 25)
		)
		(detail
		)
		(terminals on)
	   )
	   (connect D0:1 D1:1
		(points 4 66 114 105 114 105 144 149 144)
	   )
	   (connect I1:1 D1:2
		(points 4 -257 120 -241 120 -241 164 149 164)
	   )
	   (connect D1:1 O1:1
		(points 4 200 154 219 154 219 120 237 120)
	   )
	  )
	  (stackingOrder 1 0)
	 )
	 (terminals on)
	)
   )
   (context 1
	(name "myRand2")
	(interface
	 (input 1
	  (name "A")
	  (optional yes)
	 )
	 (output 1
	  (type data)
	  (name "X")
	  (lock constraints)
	  (optional yes)
	 )
	)
	(implementation
	 (locked no)
	 (trigMode deg)
	 (nextID 2)
	 (component 0 RANDOMNUMBER
	  (interface
	   (output 1
		(name "Rand Val")
		(lock name constraints)
	   )
	  )
	  (implementation
	   (lowerLimit 0)
	   (upperLimit 100)
	  )
	 )
	 (component 1 FORMULA
	  (name " + ")
	  (interface
	   (input 1
		(name "X")
		(optional yes)
	   )
	   (input 2
		(name "Y")
		(optional yes)
	   )
	   (output 1
		(name "Result")
		(lock name constraints)
	   )
	  )
	  (implementation
	   (expr 1 "X+Y")
	  )
	 )
	 (configuration
	  (connect D0:1 D1:1)
	  (connect I1:1 D1:2)
	  (connect D1:1 O1:1)
	 )
	)
	(viewFor 1
	 (active detail)
	 (detail
	  (geometry -256 35 493 195)
	  (configuration
	   (viewFor 0
		(active detail)
		(icon
		 (geometry 227 178 127 25)
		)
		(detail
		 (geometry -164 85 157 58)
		)
		(terminals on)
	   )
	   (viewFor 1
		(active icon)
		(icon
		 (geometry 151 142 46 25)
		)
		(detail
		)
		(terminals on)
	   )
	   (connect D0:1 D1:1
		(points 4 65 114 104 114 104 144 148 144)
	   )
	   (connect I1:1 D1:2
		(points 4 -256 120 -242 120 -242 164 148 164)
	   )
	   (connect D1:1 O1:1
		(points 4 199 154 218 154 218 120 236 120)
	   )
	  )
	  (stackingOrder 1 0)
	 )
	 (terminals on)
	)
   )
  )
  (retainGlobals YES)
  (locked no)
  (trigMode deg)
  (nextID 18)
  (component 0 SEQUENCER
   (interface
	(output 1
	 (name "Return")
	 (tag "Return")
	 (lock name constraints)
	 (optional yes)
	)
	(output 2
	 (name "Log")
	 (tag "Log")
	 (lock name constraints)
	 (optional yes)
	)
   )
   (implementation
	(transactions 2
	  "test1 LOGEN TESTEX:myRand1(1) \tRANGEEX: 1 LE 1.25 LE 1.5 \t"
	  "test2 LOGEN TESTEX:myRand2(1) \tRANGEEX: 1 LE 26 LE 51 \t"
	)
	(component logfields "name" "pass" "result")
   )
  )
  (component 1 FORCOUNT
   (interface
	(output 1
	 (name "Count")
	 (lock name constraints)
	)
   )
   (implementation
	(count 10)
   )
  )
  (component 2 FORMULA
   (name "mean(x)")
   (interface
	(input 1
	 (name "X")
	 (optional yes)
	)
	(output 1
	 (name "Result")
	 (lock name constraints)
	)
   )
   (implementation
	(expr 1 "mean(x)")
   )
  )
  (component 3 TEXTDISPLAY
   (name "Mean Value")
   (interface
	(input 1
	 (name "Data")
	)
   )
   (implementation
   )
  )
  (component 4 FORMULA
   (name "sdev(x)")
   (interface
	(input 1
	 (name "X")
	 (optional yes)
	)
	(output 1
	 (name "Result")
	 (lock name constraints)
	)
   )
   (implementation
	(expr 1 "sdev(x)")
   )
  )
  (component 5 TEXTDISPLAY
   (name "Std Dev")
   (interface
	(input 1
	 (name "Data")
	)
   )
   (implementation
   )
  )
  (component 6 TEXTDISPLAY
   (name "Min Value")
   (interface
	(input 1
	 (name "Data")
	)
   )
   (implementation
   )
  )
  (component 7 FORMULA
   (name "min(x)")
   (interface
	(input 1
	 (name "X")
	 (optional yes)
	)
	(output 1
	 (name "Result")
	 (lock name constraints)
	)
   )
   (implementation
	(expr 1 "min(x)")
   )
  )
  (component 8 TEXTDISPLAY
   (name "Max Value")
   (interface
	(input 1
	 (name "Data")
	)
   )
   (implementation
   )
  )
  (component 9 FORMULA
   (name "max(x)")
   (interface
	(input 1
	 (name "X")
	 (optional yes)
	)
	(output 1
	 (name "Result")
	 (lock name constraints)
	)
   )
   (implementation
	(expr 1 "max(x)")
   )
  )
  (component 10 TODATASET
   (name "To Data Set")
   (interface
	(input 1
	 (name "input")
	 (tag "inRecord")
	 (requires
	  (datatype Record)
	 )
	 (lock constraints)
	)
   )
   (implementation
	(attr iopath file write "/tmp/myData"
	 (readTerm "\n")
	 (fs " ")
	 (eol "\n")
	 (multiField fullSyntax)
	 (arrayFormat block)
	)
   )
  )
  (component 11 FROMDATASET
   (interface
	(output 1
	 (name "Rec")
	 (tag "records")
	 (lock constraints)
	)
   )
   (implementation
	(attr iopath file read "/tmp/myData"
	 (readTerm "\n")
	 (fs " ")
	 (eol "\n")
	 (multiField fullSyntax)
	 (arrayFormat block)
	)
	(readRecs all)
	(expr 1 "Rec.test1.pass AND Rec.test2.pass")
   )
  )
  (component 12 FORMULA
   (name "Formula")
   (interface
	(input 1
	 (name "Rec")
	 (optional yes)
	)
	(output 1
	 (name "Result")
	 (lock name constraints)
	)
   )
   (implementation
	(expr 1 "Rec.test1.result")
   )
  )
  (component 15 CONTEXT
   (name "Press For")
   (description2 10
	"This User Object is the outermost \"context\""
	"for the InfoAbout help device.  Within this"
	"device is the pop-up panel containing the info"
	"Notepad.  If all you can see is a device with"
	"\"Press For\", you should double-click the left"
	"mouse button on the Press For to restore the"
	"Panel View of the device.  To see how this device"
	"operates, click on the Info About button first,"
	"then press the Detail button in the \"Press For\""
	"title bar."
   )
   (implementation
	(locked no)
	(trigMode deg)
	(nextID 4)
	(component 0 TOGGLE25
	 (name "Info About")
	 (description2 18
	  "This is a toggle device with the name changed to"
	  "reflect it\'s function.  The output of the device"
	  "is \"0\" when the button is up, and \"1\" when the"
	  "button is down.  "
	  ""
	  "A Reset Control Input terminal has been added to"
	  "to always pop the button back out after showing"
	  "the pop-up help (Info About This Example) User"
	  "Object."
	  ""
	  "The Toggle has set the \"AutoExecute\" option to let"
	  "it operate even when the RUN button in the title"
	  "bar has not been pressed.  Note, however, that"
	  "AutoExecute only works when no other threads are"
	  "operating, either from their Start buttons or from"
	  "the RUN button."
	  ""
	  ""
	 )
	 (interface
	  (input 1
	   (type control)
	   (name "Reset")
	   (lock name constraints)
	   (optional yes)
	  )
	  (output 1
	   (lock name constraints)
	  )
	 )
	 (implementation
	  (value Int32
	   (data  0)
	  )
	  (autoTrigger on)
	  (initValue Int32
	   (data  0)
	  )
	 )
	)
	(component 2 CONTEXT
	 (name "Info About This Example")
	 (description2 10
	  "This is a User Object that has both a detail view"
	  "and a Panel view.  If this device is visible as"
	  "an icon, you must double-click the left mouse"
	  "button to \"open up\" the non-iconic view."
	  ""
	  "Since the User Object has both a Panel and Detail"
	  "view, when you double-click on the icon, you will"
	  "first see the Panel view.  To see the components"
	  "of the User Object, press the Detail button in"
	  "the \"Info About This Example\" title bar."
	 )
	 (implementation
	  (locked no)
	  (trigMode deg)
	  (nextID 2)
	  (popupMoveable)
	  (component 0 NOTE
	   (name "NotePad")
	   (description2 11
		"This notepad is displayed as a Show on Execute"
		"panel to present the information to the reader."
		""
		"It has been \"Added to Panel\" of the \"Info About"
		"This Example\" user object, thus it is not "
		"necessary to keep it as an open device inside the"
		"Detail view; you can edit the notepad from the"
		"Panel view of this User Object.  You can also"
		"set/clear the \"Enable Edit\" flag in this Notepad\'s"
		"Object Menu to keep the pop-up notepad from being"
		"altered by the user."
	   )
	   (implementation
		(text2 20
		  "PURPOSE:  Shows how to output logged test results from the Sequencer to a "
		  "    DataSet, and then retrieve the data from the DataSet and analyze the"
		  "    results."
		  ""
		  "USER INPUT REQUIRED:  Press \"Run\"."
		  ""
		  "EXPLANATION:"
		  "\tYou can use a DataSet to store your logged test results from a Sequencer."
		  "    The Sequencer object Log output terminal is connected to the To DataSet"
		  "    object. Once the For Count object is finished, it causes the From DataSet"
		  "    object to retrieve the stored DataSet from /tmp/myData.  From DataSet is"
		  "    configured to retrieve ALL records from /tmp/myData, but to test each"
		  "    record against the condition Rec.test1.pass AND Rec.test2.pass.  In other"
		  "    words, a particular record is retrieved only if both test1 and test2 were"
		  "    passed for the record.  Of the retrieved records, if any, the expression"
		  "    Rec.test1.result returns all of the test1.result record fields, which are"
		  "    then statistically analyzed."
		  ""
		  "\tNote that this model will error if none of the records satisfy the"
		  "    expression Rec.test1.pass AND Rec.test2.pass. "
		)
	   )
	  )
	  (component 1 CONFIRM25
	   (name "DONE")
	   (description2 7
		"This tiny \"thread\" begins running when the "
		"enclosing UserObject is executed.  When the user"
		"acknowledges the OK/DONE button, there is nothing"
		"left to execute, so the thread ends.  Since there"
		"are not other threads running, the User Object"
		"is completed and will exit, removing the Show on"
		"Execute pop-up display."
	   )
	   (interface
		(output 1
		 (name "Go")
		 (lock name constraints)
		)
	   )
	   (implementation
		(component enterButton yes)
		(component escapeButton yes)
	   )
	  )
	  (configuration
	  )
	  (ShowOnExecPanel
	   (geometry 2 32 825 527)
	   (panel
		(geometry 80 121 821 499)
		(widget 0 detail
		 (title off)
		 (borderStyle flat)
		 (geometry 85 126 810 451)
		 (editing disabled)
		)
		(widget 1 detail
		 (title off)
		 (borderStyle flat)
		 (geometry 457 582 69 33)
		)
	   )
	  )
	 )
	)
	(component 3 IFTHENELSE
	 (name "!= 0")
	 (description2 5
	  "If no threads are running, the Toggle can generate"
	  "it\'s output data whenever the button is changed"
	  "(using the Toggle\'s AutoExecute mode).  In this"
	  "case, either the User Object is executed or the"
	  "Autoexecute sequence terminates."
	 )
	 (interface
	  (input 1
	   (name "A")
	   (optional yes)
	  )
	  (output 1
	   (name "Then")
	   (lock name constraints)
	  )
	  (output 2
	   (name "Else")
	   (lock name constraints)
	  )
	 )
	 (implementation
	  (expr "a!=0")
	 )
	)
	(configuration
	 (connect D1:0 D0:1)
	 (connect D2:1 D1:0)
	 (connect D0:1 D2:1)
	)
   )
  )
  (component 16 NOTE
   (implementation
   )
  )
  (configuration
   (connect D1:1 D0:0)
   (connect D12:1 D2:1)
   (connect D2:1 D3:1)
   (connect D12:1 D4:1)
   (connect D4:1 D5:1)
   (connect D7:1 D6:1)
   (connect D12:1 D7:1)
   (connect D9:1 D8:1)
   (connect D12:1 D9:1)
   (connect D0:2 D10:1)
   (connect D1:0 D11:0)
   (connect D11:1 D12:1)
  )
 )
 (viewFor -1
  (active detail)
  (detail
   (geometry 0 53 900 447)
   (configuration
	(viewFor 0
	 (active detail)
	 (icon
	 )
	 (detail
	  (geometry 55 182 290 76)
	 )
	 (terminals on)
	)
	(viewFor 1
	 (active detail)
	 (icon
	  (geometry 35 98 110 64)
	  (iconImage "loop.icn")
	 )
	 (detail
	  (geometry 10 93 160 34)
	 )
	)
	(viewFor 2
	 (active icon)
	 (icon
	  (geometry 491 518 78 25)
	 )
	 (detail
	 )
	 (terminals on)
	)
	(viewFor 3
	 (active detail)
	 (icon
	  (geometry 0 0 110 0)
	 )
	 (detail
	  (geometry 579 512 162 37)
	 )
	)
	(viewFor 4
	 (active icon)
	 (icon
	  (geometry 481 588 78 25)
	 )
	 (detail
	 )
	 (terminals on)
	)
	(viewFor 5
	 (active detail)
	 (icon
	  (geometry 0 0 78 0)
	 )
	 (detail
	  (geometry 581 582 158 37)
	 )
	)
	(viewFor 6
	 (active detail)
	 (icon
	  (geometry 0 0 110 0)
	 )
	 (detail
	  (geometry 581 373 159 35)
	 )
	)
	(viewFor 7
	 (active icon)
	 (icon
	  (geometry 481 378 78 25)
	 )
	 (detail
	 )
	 (terminals on)
	)
	(viewFor 8
	 (active detail)
	 (icon
	  (geometry 0 0 110 0)
	 )
	 (detail
	  (geometry 579 443 163 35)
	 )
	)
	(viewFor 9
	 (active icon)
	 (icon
	  (geometry 481 448 78 25)
	 )
	 (detail
	 )
	 (terminals on)
	)
	(viewFor 10
	 (active detail)
	 (icon
	  (geometry 495 238 110 25)
	 )
	 (detail
	  (geometry 505 207 251 67)
	 )
	 (terminals on)
	)
	(viewFor 11
	 (active detail)
	 (icon
	 )
	 (detail
	  (geometry 42 323 316 135)
	 )
	 (terminals on)
	)
	(viewFor 12
	 (active detail)
	 (icon
	  (geometry 511 688 78 64)
	  (iconImage "formula.icn")
	 )
	 (detail
	  (geometry 241 570 178 60)
	 )
	)
	(viewFor 15
	 (active panel)
	 (icon
	  (geometry 215 668 110 25)
	 )
	 (panel
	  (geometry 581 92 319 77)
	  (widget 0 detail
	   (title off)
	   (borderStyle flat)
	   (geometry 684 110 114 39)
	   (scaled on)
	   (format button)
	  )
	 )
	 (detail
	  (geometry 44 75 912 591)
	  (configuration
	   (viewFor 0
		(active detail)
		(icon
		)
		(detail
		 (geometry 243 301 114 39)
		 (scaled on)
		 (format button)
		)
		(title off)
	   )
	   (viewFor 2
		(active icon)
		(icon
		 (geometry 382 358 217 25)
		)
		(detail
		 (geometry 47 150 866 520)
		 (configuration
		  (viewFor 0
		   (active detail)
		   (icon
			(geometry 440 416 78 25)
		   )
		   (detail
			(geometry 56 202 848 437)
			(editing enabled)
		   )
		  )
		  (viewFor 1
		   (active detail)
		   (icon
		   )
		   (detail
			(geometry 451 472 58 37)
		   )
		   (title off)
		  )
		 )
		 (stackingOrder 1 0)
		)
	   )
	   (viewFor 3
		(active icon)
		(icon
		 (geometry 417 308 46 25)
		)
		(detail
		 (geometry 349 328 73 64)
		)
		(terminals on)
	   )
	   (connect D1:0 D0:1
		(points 5 490 385 490 400 220 400 220 320 240 320)
	   )
	   (connect D2:1 D1:0
		(points 3 465 310 490 310 490 355)
	   )
	   (connect D0:1 D2:1
		(points 2 359 320 414 320)
	   )
	  )
	  (stackingOrder 2 0 1)
	 )
	)
	(viewFor 16
	 (active icon)
	 (icon
	  (geometry 581 286 338 48)
	  (iconImage "disclaim.icn")
	  (label off)
	 )
	 (detail
	  (geometry 830 250 200 100)
	  (editing enabled)
	 )
	)
	(connect D1:1 D0:0
	 (points 3 172 110 220 110 215 161)
	)
	(connect D12:1 D2:1
	 (points 4 421 600 440 600 440 530 488 530)
	)
	(connect D2:1 D3:1
	 (points 2 571 530 576 530)
	)
	(connect D12:1 D4:1
	 (points 2 421 600 478 600)
	)
	(connect D4:1 D5:1
	 (points 2 561 600 578 600)
	)
	(connect D7:1 D6:1
	 (points 2 561 390 578 390)
	)
	(connect D12:1 D7:1
	 (points 4 421 600 440 600 440 390 478 390)
	)
	(connect D9:1 D8:1
	 (points 2 561 460 576 460)
	)
	(connect D12:1 D9:1
	 (points 4 421 600 440 600 440 460 478 460)
	)
	(connect D0:2 D10:1
	 (points 2 407 240 452 240)
	)
	(connect D1:0 D11:0
	 (points 6 90 129 90 140 10 140 10 280 210 280 205 302)
	)
	(connect D11:1 D12:1
	 (points 6 400 390 430 390 430 480 220 480 220 600 238 600)
	)
   )
   (stackingOrder 7 1 11 6 12 0 14 10 8 9
	 2 3 5 4 13)
  )
  (titleBg "Gray")
  (titleFg "Black")
  (numberFormats
   (realFormat standard)
   (realSigDigits 4)
   (realRadixSpec 4)
   (integerBase decimal)
  )
 )
)
