(saveFormat "2.0")
(date "Tue 19/Dec/1995 09:23:31 MST")
(veerev "3.2")
(platform "HP9000s700")
(SaveCF no)
(filterNAN 0)
(component 0 ROOTCONTEXT
 (name "Waveform Data in a Record")
 (implementation
  (retainGlobals YES)
  (locked no)
  (trigMode rad)
  (nextID 11)
  (component 0 FORMULA
   (name "now()")
   (interface
	(output 1
	 (name "Result")
	 (lock name constraints)
	)
   )
   (implementation
	(expr 1 "now()")
   )
  )
  (component 1 TORECORD
   (interface
	(input 1
	 (name "A")
	 (optional yes)
	)
	(input 2
	 (name "B")
	 (optional yes)
	)
	(output 1
	 (name "Record")
	 (tag "Record")
	 (lock constraints)
	)
   )
   (implementation
	(outputType scalar)
   )
  )
  (component 2 VFUNCTIONGENERATOR
   (interface
	(output 1
	 (name "Func")
	 (lock name constraints)
	)
   )
   (implementation
	(function Cosine)
	(frequency 100)
	(amplitude 1)
	(dcOffset 0)
	(phaseShift 0)
	(numPoints 256)
	(interval 0.02)
	(degRad Rad)
	(errorOnAlias 1)
   )
  )
  (component 3 FORMULA
   (name "Get Field")
   (interface
	(input 1
	 (name "Rec")
	 (optional yes)
	)
	(output 1
	 (name "Result")
	 (lock name constraints)
	)
   )
   (implementation
	(expr 1 "Rec.B")
   )
  )
  (component 4 TOSTRING
   (interface
	(input 1
	 (name "Rec")
	 (optional yes)
	)
	(output 1
	 (name "result")
	 (lock name constraints)
	)
   )
   (implementation
	(transactions 1
	  "WRITE TEXT Rec.A DATE:WDMY TIME:HMS:H24 EOL"
	)
	(attr iopath string write "string"
	 (readTerm "\n")
	 (fs " ")
	 (eol "\n")
	 (multiField fullSyntax)
	 (arrayFormat block)
	)
   )
  )
  (component 5 YPLOT
   (name "Mon 10/May/1993 14:28:00")
   (interface
	(input 1
	 (name "Trace1")
	 (lock constraints)
	)
	(input 2
	 (type control)
	 (name "Title")
	 (tag "Title")
	 (requires
	  (datatype Text)
	  (shape "Scalar")
	 )
	 (lock name constraints)
	 (optional yes)
	)
   )
   (implementation
	(tracePin 1)
	(graphMode rectangular)
   )
  )
  (component 8 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 17
	  "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 15
		  "PURPOSE:  Illustrates building a record containing waveform data."
		  ""
		  "USER INPUT REQUIRED:  Press \"Run\"."
		  ""
		  "EXPLANATION:"
		  "\tIn this example the sine wave output by a Function Generator object and "
		  "    the current time from the now() function are built into a record.  The "
		  "    sine wave is the B field of the record, so Rec.B in the GetField object "
		  "    retrieves the waveform, which is output to an XY Trace object.  The time"
		  "    the waveform was generated is displayed in the title field of the XY Trace"
		  "    object.  First, the \"dot\" syntax Rec.A in the transaction in the To String"
		  "    object retrieves the time from field A in the record. Further, the "
		  "    transaction is configured to output the resulting time in the format "
		  "    DATE:WDMY TIME:HMS:H24.  Thus, the date and time in that format is output"
		  "    to the Title control input on the XY Trace object."
		)
	   )
	  )
	  (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 4 33 813 433)
	   (panel
		(geometry 36 128 809 405)
		(widget 0 detail
		 (title off)
		 (borderStyle flat)
		 (geometry 42 134 796 345)
		 (editing disabled)
		)
		(widget 1 detail
		 (title off)
		 (borderStyle flat)
		 (geometry 404 489 68 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 9 NOTE
   (implementation
   )
  )
  (configuration
   (connect D0:1 D1:1)
   (connect D2:1 D1:2)
   (connect D1:1 D3:1)
   (connect D1:1 D4:1)
   (connect D3:1 D5:1)
   (connect D4:1 D5:2)
  )
 )
 (viewFor -1
  (active detail)
  (detail
   (geometry 0 53 900 447)
   (configuration
	(viewFor 0
	 (active icon)
	 (icon
	  (geometry 61 88 78 25)
	 )
	 (detail
	 )
	 (terminals on)
	)
	(viewFor 1
	 (active detail)
	 (icon
	  (iconImage "build.icn")
	 )
	 (detail
	  (geometry 245 95 131 110)
	 )
	 (terminals on)
	)
	(viewFor 2
	 (active icon)
	 (icon
	  (geometry 14 148 172 64)
	  (iconImage "virtual.icn")
	 )
	 (detail
	  (geometry 90 242 201 196)
	 )
	 (terminals on)
	)
	(viewFor 3
	 (active detail)
	 (icon
	  (iconImage "formula.icn")
	 )
	 (detail
	  (geometry 86 420 79 60)
	 )
	 (terminals on)
	)
	(viewFor 4
	 (active detail)
	 (icon
	  (geometry 535 158 110 25)
	 )
	 (detail
	  (geometry 77 275 437 70)
	 )
	 (terminals on)
	)
	(viewFor 5
	 (active detail)
	 (icon
	  (geometry 0 0 212 0)
	  (iconImage "display.icn")
	 )
	 (detail
	  (geometry 343 395 255 230)
	  (displayMode scrollGraph)
	  (graphType cartesian)
	  (gridType off)
	  (scale 0
	   (name "Y name")
	   (domainName "X name")
	   (pen 9)
	   (show 1)
	   (range -1 1 4 linear)
	  )
	  (domain 0 0.02 4 linear)
	  (trace 0 onScale 0
	   (name "Trace1")
	   (pen 4)
	   (lineType 1)
	   (pointType 0)
	  )
	 )
	 (terminals on)
	)
	(viewFor 8
	 (active panel)
	 (icon
	  (geometry -535 2548 110 25)
	 )
	 (panel
	  (geometry 521 102 319 77)
	  (widget 0 detail
	   (title off)
	   (borderStyle flat)
	   (geometry 624 120 114 39)
	   (scaled on)
	   (format button)
	  )
	 )
	 (detail
	  (geometry 4 75 912 591)
	  (configuration
	   (viewFor 0
		(active detail)
		(icon
		)
		(detail
		 (geometry 203 301 114 39)
		 (scaled on)
		 (format button)
		)
		(title off)
	   )
	   (viewFor 2
		(active icon)
		(icon
		 (geometry 342 348 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 377 308 46 25)
		)
		(detail
		 (geometry 349 328 73 64)
		)
		(terminals on)
	   )
	   (connect D1:0 D0:1
		(points 5 450 375 450 390 180 390 180 320 200 320)
	   )
	   (connect D2:1 D1:0
		(points 3 425 310 450 310 450 345)
	   )
	   (connect D0:1 D2:1
		(points 2 319 320 374 320)
	   )
	  )
	  (stackingOrder 0 2 1)
	 )
	)
	(viewFor 9
	 (active icon)
	 (icon
	  (geometry 521 196 338 48)
	  (iconImage "disclaim.icn")
	  (label off)
	 )
	 (detail
	  (geometry 830 250 200 100)
	  (editing enabled)
	 )
	)
	(connect D0:1 D1:1
	 (points 4 141 100 160 100 160 120 212 120)
	)
	(connect D2:1 D1:2
	 (points 2 188 180 212 180)
	)
	(connect D1:1 D3:1
	 (points 6 438 150 470 150 470 230 10 230 10 450 43 450)
	)
	(connect D1:1 D4:1
	 (points 6 438 150 470 150 470 230 10 230 10 310 34 310)
	)
	(connect D3:1 D5:1
	 (points 2 217 450 280 450)
	)
	(connect D4:1 D5:2
	 (points 6 566 310 600 310 600 360 250 360 250 570 280 570)
	)
   )
   (stackingOrder 1 0 3 4 2 7 6 5)
  )
  (titleBg "Gray")
  (titleFg "Black")
  (numberFormats
   (realFormat standard)
   (realSigDigits 4)
   (realRadixSpec 4)
   (integerBase decimal)
  )
 )
)
