Chapter 2Extensions to LabVIEW© National Instruments Corporation2-17LabVIEW LEGO MINDSTORMS NXT ModuleOutput Devices: Motors and LampsTwo different kinds of output devices are compatible with the NXT brick: interactive motors, NXT motors with integrated position encoders, and non-interactive motors or lamps, Legacy-compatible outputs. All of these devices are programmed using a common set of Property Nodes in LabVIEW. The only difference is that non-interactive devices ignore the properties that do not affect them. For example, instructing a lamp to rotate counter-clockwise for 360 degrees is invalid because the lamp only responds to power levels. Furthermore, VIs written to use interactive device features might not operate correctly when used with non-interactive devices. For example, you might write a VI to instruct an interactive motor to rotate 360 degrees, and then wait in a While Loop for the NXT firmware to complete the action. Non-interactive devices, such as lamps, do not include position encoders, so such a loop never receives the necessary feedback to finish executing.You can access output ports using one of the following two classes of Property Nodes: NXTOutput and NXTOutputMulti. NXTOutput only allows accessing parameters of one port at a time, while NXTOutputMulti accepts an array of port numbers so you can configure multiple ports in a single operation. This ability of NXTOutputMulti is useful to ensure that the firmware synchronizes multiple motors tightly. Conversely, you can only read properties from one output at a time, so NXTOutput is useful for inspecting the state, such as power level or motor position, of an output port.Use NXTOutputMulti to synchronize the behavior of two or more motors, and use NXTOutput to read properties of an output or to configure only one output at a time.Output Port PropertiesTo configure or read values from output devices, connect an NXTOutput or NXTOutputMulti refnum wire to any reference input of the Property Node, and then resize the Property Node to add more terminals. Adding more terminals enables you to display the properties you want to access. This section describes each property that this module supports. Because NXTOutput and NXTOutputMulti Property Nodes share many properties, this section describes the properties only once. Each property description specifies the access rules, read-only, write-only, or read-write, provided by each interface.