Nodes are properties of a device. To learn more about devices, go to the Devices section.
Most nodes maintain a status (value) which can be viewed in the Device Control Panel (or at the console with the read/display commands) and can be moved via the move command.
Some nodes allow you to view and control the state of a piece of equipment. For example, a motor's rawPosition node can be moved to cause a motor to physically move. Its status represents the most recent value read from the motor.
Software setting nodes contain values maintained by NICE. An example is the zero node of a motor. The actual motor has no concept of a "zero".
Virtual nodes are related to other nodes in two separate hierarchies: control (movement) and a status (value). For example, moving the softPosition node, of a motor, will cause the hardPosition node to move (this will, in turn, cause the rawPosition node to move). Any time the status of hardPosition, zero or parity is updated, softPosition's status is automatically updated. If rawPosition's status changes, this cause hardPosition's status to be updated and propagate to softPosition and so on.
Every node has a status containing:
a value, such as number
In general, a node may become SUSPECT or BAD for many reasons. Each node has it's logic governing this state and the associated message will explain the justification.
Example of SUSPECT: a motor's position could not be read since the NICE server was started. Its value is stale.
Example of BAD: A virtual node's status value is the reciprocal of another node whose current status value is 0. Note: in some cases the status might be GOOD with a value of +infinity, if appropriate.
Most devices have a primary node. This is a node which is moved or read, by default, if unspecified. For example, a motor's primary node is its softPosition.
>>> move motor is the same as >>> move motor.softPosition
>>> read motor is the same as >>> read motor.softPosition
To learn more about motors and their position nodes, go to the Motor section.