Skip to main content
U.S. flag

An official website of the United States government

Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Secure .gov websites use HTTPS
A lock ( ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.


Nodes are properties of a device. To learn more about devices, go to the Devices section.

Types of Nodes

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.

Node Status

Every node has a status containing:

  • a value, such as number

  • a validity: GOOD, SUSPECT, BAD.
    • GOOD - the value is meaningful and well defined
    • SUSPECT - be careful interpreting the value.
    • BAD - the value is meaningless and should be disregarded (NICE will not show the value of BAD nodes).
  • a validity message (if not GOOD): why is this node's value  not GOOD?

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.

Primary Nodes

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.

To learn more about reading and changing node values, go to the read command and move command sections.

Created February 6, 2019, Updated February 9, 2023