-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
33 changed files
with
363 additions
and
244 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -44,3 +44,6 @@ | |
content: "▼ "; | ||
} | ||
|
||
.rst-content code.xref { | ||
color: #236E9E; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,21 @@ | ||
.. _Attribute: | ||
|
||
Attribute | ||
--------- | ||
|
||
An Attribute holds a value such as an Int, Float or Enum Table representing | ||
the current state of a block. | ||
.. module:: malcolm.core | ||
|
||
.. autoclass:: Attribute | ||
:members: | ||
|
||
Hold the current value of a piece of data of a fixed simple type | ||
like Int, Float, String, Enum, IntArray or Table. You can Get and Subscribe to | ||
changes in all Attributes, and Put to Attributes with a defined setter. In a | ||
client Block, Attributes will mirror the value of the Block acting as a | ||
server, with a Put operation being forwarded to the server Block. For example, | ||
the State of a Block would be an Attribute, as would the CurrentStep of a | ||
scan. | ||
An Attribute holds a value such as an Int, Float or Enum Table representing | ||
the current state of a block. | ||
|
||
Subclasses serialize differently. | ||
Hold the current value of a piece of data of a fixed simple type | ||
like Int, Float, String, Enum, IntArray or Table. You can Get and Subscribe to | ||
changes in all Attributes, and Put to Attributes with a defined setter. In a | ||
client Block, Attributes will mirror the value of the Block acting as a | ||
server, with a Put operation being forwarded to the server Block. For example, | ||
the State of a Block would be an Attribute, as would the CurrentStep of a | ||
scan. | ||
|
||
.. module:: malcolm.core | ||
Subclasses serialize differently. | ||
|
||
.. autoclass:: Attribute | ||
:members: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,19 @@ | ||
.. _Block: | ||
|
||
Block | ||
----- | ||
|
||
A Block consists of number of Attributes and Methods: | ||
|
||
An object consisting of a number of Attributes and Methods. It should | ||
be designed to be as small and self contained as possible, and complex logic | ||
should be implemented by nesting Blocks. For example, a detector driver would | ||
be a Block, as would an HDF writer, but there would also be a higher level | ||
detector Block to co-ordinate the low level Blocks. Any Block may be | ||
synchronized among a number of Processes, the Block acting as the server will | ||
perform the logic, and the client copies will expose the same API as the | ||
server Block to the end user. | ||
An object consisting of a number of Attributes and Methods. | ||
|
||
.. module:: malcolm.core | ||
|
||
.. autoclass:: Block | ||
:members: | ||
:members: | ||
|
||
It should | ||
be designed to be as small and self contained as possible, and complex logic | ||
should be implemented by nesting Blocks. For example, a detector driver would | ||
be a Block, as would an HDF writer, but there would also be a higher level | ||
detector Block to co-ordinate the low level Blocks. Any Block may be | ||
synchronized among a number of Processes, the Block acting as the server will | ||
perform the logic, and the client copies will expose the same API as the | ||
server Block to the end user. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,10 @@ | ||
.. _ClientComms: | ||
|
||
ClientComms | ||
----------- | ||
|
||
ClientComms is used to set up communication for a client with its server | ||
|
||
.. module:: malcolm.core | ||
|
||
.. autoclass:: ClientComms | ||
:members: | ||
:members: | ||
|
||
ClientComms is used to set up communication for a client with its server | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,19 @@ | ||
.. _Controller: | ||
|
||
Controller | ||
---------- | ||
|
||
Controller: A State Machine just exposes the list of allowed transitions | ||
between States. The Controller provides the logic that goes behind those | ||
transitions. It creates a number of Methods fixing the external interface of | ||
how to control the blocks, creates some Attributes for monitoring | ||
configuration and runtime variables, and then exposes a number of hooks that | ||
Parts can utilise to be executed and control transition to other states. For | ||
example, there will be an AreaDetectorController with hooks for | ||
PreRunDriverStart, PreRunPluginStart, and Running. | ||
|
||
A Controller implements the logic for changing states and contains Hooks for | ||
allow Parts to run any functions that are relevant to the current transition: | ||
|
||
.. module:: malcolm.core | ||
|
||
.. autoclass:: Controller | ||
:members: | ||
:members: | ||
|
||
Controller: A State Machine just exposes the list of allowed transitions | ||
between States. The Controller provides the logic that goes behind those | ||
transitions. It creates a number of Methods fixing the external interface of | ||
how to control the blocks, creates some Attributes for monitoring | ||
configuration and runtime variables, and then exposes a number of hooks that | ||
Parts can utilise to be executed and control transition to other states. For | ||
example, there will be an AreaDetectorController with hooks for | ||
PreRunDriverStart, PreRunPluginStart, and Running. | ||
|
||
A Controller implements the logic for changing states and contains Hooks for | ||
allow Parts to run any functions that are relevant to the current transition: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
Info | ||
==== | ||
|
||
.. module:: malcolm.core | ||
|
||
.. autoclass:: Info | ||
:members: | ||
|
||
Here we will describe in a bit more information what this class does |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,3 @@ | ||
.. _Map: | ||
|
||
Map | ||
--- | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,21 @@ | ||
.. _Part: | ||
|
||
Part | ||
---- | ||
|
||
These provide the logic for using a particular child Block with a | ||
particular Controller. It can register to use a number of hooks that the | ||
Controller provides, and the Controller will wait for all using that hook to | ||
run concurrently before moving to the next State. Parts can also create | ||
Attributes on the parent Block, as well as contribute Attributes that should | ||
be taken as arguments to Methods provided by the Controller. For example, | ||
there will be an HDFWriterPart that knows how to set PVs on the HDFWriter in | ||
the right order and expose the FilePath as an Attribute to the configure() | ||
method. | ||
|
||
A Part contains the logic for a Controller to interact with a child Block to | ||
perform more device-specific actions: | ||
|
||
.. module:: malcolm.core | ||
|
||
.. autoclass:: Part | ||
:members: | ||
:members: | ||
|
||
These provide the logic for using a particular child Block with a | ||
particular Controller. It can register to use a number of hooks that the | ||
Controller provides, and the Controller will wait for all using that hook to | ||
run concurrently before moving to the next State. Parts can also create | ||
Attributes on the parent Block, as well as contribute Attributes that should | ||
be taken as arguments to Methods provided by the Controller. For example, | ||
there will be an HDFWriterPart that knows how to set PVs on the HDFWriter in | ||
the right order and expose the FilePath as an Attribute to the configure() | ||
method. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,14 @@ | ||
.. _Process: | ||
|
||
Process | ||
------- | ||
|
||
A Process is a host for Block instances and allows communication between them: | ||
|
||
A Malcolm instance containing a number of Blocks along with various | ||
communication modules to communicate with other Malcolm instances. A Process | ||
can be a client of or a server to a number of other Processes. | ||
|
||
.. module:: malcolm.core | ||
|
||
.. autoclass:: Process | ||
:members: | ||
:members: | ||
|
||
A Malcolm instance containing a number of Blocks along with various | ||
communication modules to communicate with other Malcolm instances. A Process | ||
can be a client of or a server to a number of other Processes. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,10 @@ | ||
.. _ServerComms: | ||
|
||
ServerComms | ||
----------- | ||
|
||
ServerComms is used to set up communication for a server with its clients | ||
|
||
.. module:: malcolm.core | ||
|
||
.. autoclass:: ServerComms | ||
:members: | ||
:members: | ||
|
||
ServerComms is used to set up communication for a server with its clients | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
.. _statemachine_diagrams: | ||
|
||
State Machine | ||
============= | ||
|
||
|
Oops, something went wrong.