Exemplo n.º 1
0
	),
	State('ABORTED',
		"""
		A non-recoverable MARVELS controller error occured during remote
		operations. A reset will attempt to re-establish communications.
		""",
		On('reset').goto('CONNECTING')
	),
	State('FAULT',
		"""
		A MARVELS controller error occured that may be recoverable by
		using the controller directly. If a recover is successful,
		remote operations will resume where they left off.
		""",
		On('(recover successful)').goto('recall(REMOTE)'),
		On('(recover failed)').goto('ABORTED')
	),
	State('PARKING',
		"""
		MARVELS is being reset to a well-defined state, perhaps in an
		attempt to recover from an error condition.
		""",
		On('parked').goto('AVAILABLE')
	)
)

if __name__ == '__main__':
	import path
	states.exportGraph(path.filepath('marvels_states.dot'))
	states.exportHTML(path.filepath('marvels_states.html'),
		title='MARVELS Proxy States',diagram='marvels.png')
Exemplo n.º 2
0
					On('share').goto('MULTI_USER'),
					On('start tracking').goto('TRACKING')
				),
				State('TRACKING -> GUIDE_OFF',
					"""
					The telescope is tracking and can be focused and guided.
					""",
					State('GUIDE_OFF',
						"""
						Tracking without active guiding.
						""",
						On('start guiding').goto('GUIDE_ON')
					),
					State('GUIDE_ON',
						"""
						Tracking with active guiding.
						""",
						On('stop guiding').goto('GUIDE_OFF'),
						On('reset tracking').goto('GUIDE_OFF')
					),
					On('stop tracking').goto('IDLE')
				)
			)
		)
	)
)

if __name__ == '__main__':
	import path
	states.exportGraph(path.filepath('tcc_states.dot'))
	states.exportHTML(path.filepath('tcc_states.html'),title='TCC Proxy States',diagram='tcc.png')
Exemplo n.º 3
0
		Do('Start a User Session'),
		'''
		[Scientist] launches playback application.
		[Scientist] selects observing period and [devices] of interest.
		[Application] retrieves a list of [log stream] and [config data] from the [database].
		[Application] displays list to [scientist]. [Scientist] selects information to review.
		[Application] displays selected information. [Device] data is displayed as a time series
		on a strip chart. [Scientist] filters log messages based on severity and [device].
		[Scientist] exits application.
		''',
		Alternate('Session is not Authorized to Run Application'),
		Alternate('Requested Device is not Available'),
		Alternate('Application Crashes')
	),
	Scenario('Tracking Time Usage in Different Activities',
		'''
		What activities need to be tracked? What time resolution is required? How should results be
		presented? This is a good example of a background [application] without any [user] [roles].
		'''
	),
	Scenario('Malicious User Attempts to Control Telescope'),
	Scenario('Application Crashes'),
	Scenario('Power Outage'),
	Scenario('Network Failure')
)

if __name__ == '__main__':
	import path
	from tops.sdss3.design.model import model
	cases.exportHTML(path.filepath('general-cases.html'),model=model,
		title='General Operations Use Cases',stylesheet='cases.css')
Exemplo n.º 4
0
		'''
		[Application] reads acceptable environmental ranges [config data]. [Application] monitors
		environmentals via MARVELS [proxy] and records values to a [log stream]. [Application] informs
		[user] of progress towards equilibrium.
		'''
	),
	Scenario('Instrument Room Climate Control Failure'),
	Scenario('Hard Disk Failure',
		'''
		[Application] detects that control computer is not responding or operating normally via
		its [proxy]. [Operator] may need to replace drive with an on-site spare and restore program
		and data files from a backup. If failed disk is redundant, [application] informs [system manager]
		that daytime service is needed and tries to continue.
		'''
	),
	Scenario('Minor Earthquake During Exposure',
		'''
		How will operations software know about this? Is there any onsite seismic monitoring? Any
		current exposure should be marked as suspect and followed by calibrations and QA checks.
		'''
	),
	Scenario('Failure of Component within Enclosure'),
	Scenario('Failure of Instrument Environmental Controls'),
	Scenario('Failure of Module in Instrument Control Rack')
)

if __name__ == '__main__':
	import path
	from tops.sdss3.design.model import model
	cases.exportHTML(path.filepath('marvels_cases.html'),model=model,
		title='MARVELS Operations Use Cases',stylesheet='cases.css')
Exemplo n.º 5
0
		"""
		The Multiobject APO Radial Velocity Exoplanet Large-Area Survey
		[instrument] and its associated control computer.
		""",
		isA('Instrument')
	),
	Actor('Instrument',
		"""
		A piece of equipment that records the light from fibers
		installed at the focal plane (an 'exposure'). Instruments
		generally need calibrating before and after science exposures
		and their exposures can be checked for data quality.
		""",
		isA('Device')
	),
	Actor('Telescope',
		"""
		The optics, mechanics and control and monitoring system of the APO
		2.5m telescope. The operations software interfaces to the telescope
		via the [TCC].
		""",
		isA('Device')
	)
)

if __name__ == '__main__':
	import path
	model.exportGraph(path.filepath('sdss3model.dot'))
	model.exportGlossary(path.filepath('glossary.html'),
		title='SDSS3 Operations Software Glossary',
		stylesheet='glossary.css')