| 7 | | '''Online documentation files for toolbox 4.04 will soon be online.'''[[BR]] |
| 8 | | [[BR]] Until then, please use your offline toolbox help (up-to-date) or the linls from version 4.03 below (outdated, but only very minor fixes) |
| 9 | | [[BR]] |
| | 7 | {{{ |
| | 8 | #!html |
| | 9 | <b>List of functions</b> |
| | 10 | <ul> |
| | 11 | <li><a href="http://www.mindstorms.rwth-aachen.de/documents/downloads/doc/version-4.04/categories.html" target="_blank"> |
| | 12 | <b>By Categories</b></a> <i> (opens in a new window)</i></li> |
| | 13 | <li><a href="http://www.mindstorms.rwth-aachen.de/documents/downloads/doc/version-4.04/abc.html" target="_blank"> |
| | 14 | <b>Alphabetical List</b></a> <i> (opens in a new window)</i></li> |
| | 15 | <li><a href="http://www.mindstorms.rwth-aachen.de/trac/wiki/Documentation#CommandLayerStructure"> |
| | 16 | <b>Command Layers</b></a></li> |
| | 17 | </ul> |
| | 18 | |
| | 19 | <b>Tutorial: Programming Robots</b> |
| | 20 | <ul> |
| | 21 | <li><a href="http://www.mindstorms.rwth-aachen.de/documents/downloads/doc/version-4.04/prepare.html" target="_blank"> |
| | 22 | <b>Preparing the workspace</b></a> <i> (opens in a new window)</i></li> |
| | 23 | <li><a href="http://www.mindstorms.rwth-aachen.de/documents/downloads/doc/version-4.04/pc_nxt_communication.html" target="_blank"> |
| | 24 | <b>PC - NXT Communication</b></a> <i> (opens in a new window)</i></li> |
| | 25 | <li><a href="http://www.mindstorms.rwth-aachen.de/documents/downloads/doc/version-4.04/motor_control.html" target="_blank"> |
| | 26 | <b>Motor Control</b></a> <i> (opens in a new window)</i></li> |
| | 27 | <li><a href="http://www.mindstorms.rwth-aachen.de/documents/downloads/doc/version-4.04/sensor_control.html" target="_blank"> |
| | 28 | <b>Sensor Reading</b></a> <i> (opens in a new window)</i></li> |
| | 29 | <li><a href="http://www.mindstorms.rwth-aachen.de/documents/downloads/doc/version-4.04/direct_commands.html" target="_blank"> |
| | 30 | <b>Direct NXT Commands</b></a> <i> (opens in a new window)</i></li> |
| | 31 | </ul> |
| | 32 | }}} |
| | 33 | [[BR]] |
| | 34 | |
| | 35 | |
| | 36 | = Command Layer Structure = |
| | 37 | |
| | 38 | * [wiki:CommandLayers Command Layer Structure] of previous releases |
| | 39 | |
| | 40 | The functions of the RWTH - Mindstorms NXT Toolbox can be categorized into a multiple layer structure. On the lowest layer '''Low Level and Helper functions''' are available, which mostly convert parameter modes to bytes words, determined by the LEGO direct commands documentation. The second layer includes '''Direct NXT Commands''' which are mapped from the LEGO direct command documentation without any limitations and can be identified by the ''NXT_*'' prefix. Also Bluetooth packet related functions can be found in this layer. Layer 3 provides '''High Level Functions''' for controlling the NXT motors, sensors and the Bluetooth connection. These functions are basically using the Direct NXT Commands of layer 2 to make the motor and sensor controlling more convenient and easily readable for the user. The top layer provides '''High Level Regulation''' functions for precise motor regulation and various utilities. |
| | 41 | |
| | 42 | {{{ |
| | 43 | #!html |
| | 44 | <br> |
| | 45 | <table border="2" cellpadding="10" align="center"> |
| | 46 | |
| | 47 | <tr bgcolor="#EEEEEE"> |
| | 48 | <td align="center"><b>Layer</b></td> |
| | 49 | <td><b>Description</b></td> |
| | 50 | <td valign="top"><b>Output/Motors</b></td> |
| | 51 | <td valign="top"><b>Input/Sensors</b></td> |
| | 52 | <td valign="top"><b>General</b></td> |
| | 53 | <td valign="top"><b>Bluetooth / USB</b></td> |
| | 54 | </tr> |
| | 55 | |
| | 56 | <!-- Layer 4 --> |
| | 57 | <tr bgcolor="#DDDDFF"> |
| | 58 | <td align="center" width="40"><b>4</b></td> |
| | 59 | <td><b>High Level Regulation / Utilities</b></td> |
| | 60 | <td valign="top"><b>NXTMotor</b><br>.display<br>.ReadFromNXT<br>.SendToNXT<br>.Stop<br>.WaitFor<br>.ResetPosition<br><br><b>NXC_MotorControl<br></td> |
| | 61 | <td valign="top"> </td> |
| | 62 | <td valign="top"><b>OptimizeToolboxPerformance</b><br><br><b>GUI_WatchMotorState</b><br><b>GUI_WatchSensor</b></td> |
| | 63 | <td valign="top"><b>COM_MakeBTConfigFile</b></td> |
| | 64 | </tr> |
| | 65 | |
| | 66 | <!-- Layer 3 --> |
| | 67 | <tr bgcolor="#BBBBFF"> |
| | 68 | <th align="center" rowspan="1"><b>3</b></th> |
| | 69 | <th align="left" rowspan="1"><b>High Level Functions</b></th> |
| | 70 | <td align="left" valign="top"><b>DirectMotorCommand</b><br><br><b>StopMotor</b><br><br><b>SwitchLamp</b><br><br>NXC_ResetErrorCorrection</td> |
| | 71 | <td align="left" valign="top" rowspan="1"><b>OpenLight<br>GetLight<br><br>OpenSound<br>GetSound<br><br>OpenSwitch<br>GetSwitch<br><br>OpenUltrasonic<br>GetUltrasonic<br>USMakeSnapshot<br>USGetSnapshotResults<br><br>OpenAccelerator<br>GetAccelerator<br><br>OpenColor<br>CalibrateColor<br>GetColor<br><br>OpenCompass<br>CalibrateCompass<br>GetCompass<br><br>OpenGyro<br>CalibrateGyro<br>GetGyro<br><br>OpenInfrared<br>GetInfrared<br><br>OpenRFID<br>GetRFID<br><br>CloseSensor</b></td> |
| | 72 | <td align="left" valign="top" rowspan="1"><b>readFromIniFile</b><br><br>MAP_GetCommModule<br>MAP_GetInputModule<br>MAP_GetOutputModule<br>MAP_GetSoundModule<br>MAP_GetUIModule<br><br>MAP_SetOutputModule<br><br>NXC_GetSensorMotorData</td> |
| | 73 | <td align="left" valign="top" rowspan="1"><b>COM_OpenNXT</b><br><b>COM_OpenNXTEx</b><br><br><b>COM_CloseNXT</b><br><br>COM_ReadI2C<br></td> |
| | 74 | </tr> |
| | 75 | |
| | 76 | |
| | 77 | |
| | 78 | <!-- Layer 2 --> |
| | 79 | <tr bgcolor="#9999FF"> |
| | 80 | <td align="center"><b>2</b></td> |
| | 81 | <td><b>Direct NXT Commands</b></td> |
| | 82 | <td valign="top"><b>NXT_SetOutputState<br><br>NXT_GetOutputState<br><br>NXT_ResetMotorPosition</b></td> |
| | 83 | <td valign="top"><b>NXT_SetInputMode<br><br>NXT_GetInputValues</b><br><br>NXT_ResetInputScaledValue<br><br>NXT_LSRead<br>NXT_LSWrite<br>NXT_LSGetStatus</td> |
| | 84 | <td valign="top"><b>NXT_PlayTone</b><br>NXT_PlaySoundFile<br>NXT_StopSoundPlayback<br><br>NXT_StartProgram<br>NXT_GetCurrentProgramName<br>NXT_StopProgram<br><br>NXT_SendKeepAlive<br>NXT_GetBatteryLevel<br>NXT_GetFirmwareVersion<br>NXT_SetBrickName<br><br>NXT_ReadIOMap<br>NXT_WriteIOMap<br><br>NXT_MessageWrite<br>NXT_MessageRead</td> |
| | 85 | <td valign="top">COM_CreatePacket<br>COM_SendPacket<br>COM_CollectPacket<br><br><b>COM_SetDefaultNXT</b><br>COM_GetDefaultNXT<br></td> |
| | 86 | </tr> |
| | 87 | |
| | 88 | <!-- Layer 1 --> |
| | 89 | <tr bgcolor="#7777FF"> |
| | 90 | <td align="center"><b>1</b></td> |
| | 91 | <td><b>Low Level Functions:<br>Helper, Conversion and<br> Lookup Functions</b></td> |
| | 92 | <td valign="top"><b>MOTOR_A<br>MOTOR_B<br>MOTOR_C</b><br><br><i>SetMotor</i> (o)<br><i>SetPower</i> (o)<br><i>SetAngleLimit</i> (o)<br><i>SetRampMode</i> (o)<br><i>SetTurnRatio</i> (o)<br><i>SpeedRegulation</i> (o)<br><i>SyncToMotor</i> (o)<br><i>GetMotor</i> (o)<br><i>SetMemoryCount</i> (o)<br><i>GetMemoryCount</i> (o)<br> |
| | 93 | <br><i>byte2outputmode<br>byte2regmode<br>byte2runstate<br>outputmode2byte<br>regmode2byte<br>runstate2byte</i><br><br><i>initializeGlobalMotorStateVar</i> (o)</td> |
| | 94 | <td valign="top"><b>SENSOR_1<br>SENSOR_2<br>SENSOR_3<br>SENSOR_4</b><br><br><i>byte2sensortype<br>byte2sensormode<br>sensortype2byte<br>sensormode2byte</i><br><br><i>waitUntilI2CReady</i></td> |
| | 95 | <td valign="top"><b>DebugMode</b><br><i>isdebug</i><br><br>textOut<br><br><i>dec2wordbytes<br>name2commandbytes<br>commandbyte2name<br>wordbytes2dec</i></td> |
| | 96 | <td valign="top">checkStatusByte<br><br><i>createHandleStruct</i><br><i>checkHandleStruct</i><br><br><i>getLibusbErrorString</i><br><i>getVISAErrorString</i><br><i>getReplyLengthFromCmdByte</i><br><br><i>fantom_proto</i><br><i>libusb_proto</i></td> |
| | 97 | </tr> |
| | 98 | |
| | 99 | <!-- Legend --> |
| | 100 | <tr bgcolor="#EEEEEE"> |
| | 101 | <td colspan="6" >legend: NXT_* = NXT Direct commands without any limitations (mapped to the LEGO direct command documentation)<br> |
| | 102 | |
| | 103 | COM_* = Functions related to the NXT communication<br> |
| | 104 | |
| | 105 | MAP_* = Functions related to the NXT module maps<br> |
| | 106 | |
| | 107 | NXC_* = Functions communicating with the embedded NXC program MotorControl<br> |
| | 108 | |
| | 109 | <b>bold</b> = Main funcions or main group functions<br> |
| | 110 | |
| | 111 | <i>italic</i> = private functions<br> |
| | 112 | |
| | 113 | (o) = obsolete / deprecated functions (might be removed in a future release) |
| | 114 | </td> |
| | 115 | </tr> |
| | 116 | </table> |
| | 117 | <br> |
| | 118 | }}} |
| | 119 | |
| | 120 | |
| | 121 | = Older versions = |
| 42 | | = Command Layer Structure = |
| 43 | | |
| 44 | | * [wiki:CommandLayers Command Layer Structure] of previous releases |
| 45 | | |
| 46 | | The functions of the RWTH - Mindstorms NXT Toolbox can be categorized into a multiple layer structure. On the lowest layer '''Low Level and Helper functions''' are available, which mostly convert parameter modes to bytes words, determined by the LEGO direct commands documentation. The second layer includes '''Direct NXT Commands''' which are mapped from the LEGO direct command documentation without any limitations and can be identified by the ''NXT_*'' prefix. Also Bluetooth packet related functions can be found in this layer. Layer 3 provides '''High Level Functions''' for controlling the NXT motors, sensors and the Bluetooth connection. These functions are basically using the Direct NXT Commands of layer 2 to make the motor and sensor controlling more convenient and easily readable for the user. The top layer provides '''High Level Regulation''' functions for precise motor regulation and various utilities. |
| 47 | | |
| 48 | | {{{ |
| 49 | | #!html |
| 50 | | <br> |
| 51 | | <table border="2" cellpadding="10" align="center"> |
| 52 | | |
| 53 | | <tr bgcolor="#EEEEEE"> |
| 54 | | <td align="center"><b>Layer</b></td> |
| 55 | | <td><b>Description</b></td> |
| 56 | | <td valign="top"><b>Output/Motors</b></td> |
| 57 | | <td valign="top"><b>Input/Sensors</b></td> |
| 58 | | <td valign="top"><b>General</b></td> |
| 59 | | <td valign="top"><b>Bluetooth / USB</b></td> |
| 60 | | </tr> |
| 61 | | |
| 62 | | <!-- Layer 4 --> |
| 63 | | <tr bgcolor="#DDDDFF"> |
| 64 | | <td align="center" width="40"><b>4</b></td> |
| 65 | | <td><b>High Level Regulation / Utilities</b></td> |
| 66 | | <td valign="top"><b>NXTMotor</b><br>.display<br>.ReadFromNXT<br>.SendToNXT<br>.Stop<br>.WaitFor<br>.ResetPosition<br><br><b>NXC_MotorControl<br></td> |
| 67 | | <td valign="top"> </td> |
| 68 | | <td valign="top"><b>OptimizeToolboxPerformance</b><br><br><b>GUI_WatchMotorState</b><br><b>GUI_WatchSensor</b></td> |
| 69 | | <td valign="top"><b>COM_MakeBTConfigFile</b></td> |
| 70 | | </tr> |
| 71 | | |
| 72 | | <!-- Layer 3 --> |
| 73 | | <tr bgcolor="#BBBBFF"> |
| 74 | | <th align="center" rowspan="1"><b>3</b></th> |
| 75 | | <th align="left" rowspan="1"><b>High Level Functions</b></th> |
| 76 | | <td align="left" valign="top"><b>DirectMotorCommand</b><br><br><b>StopMotor</b><br><br><b>SwitchLamp</b><br><br>NXC_ResetErrorCorrection</td> |
| 77 | | <td align="left" valign="top" rowspan="1"><b>OpenLight<br>GetLight<br><br>OpenSound<br>GetSound<br><br>OpenSwitch<br>GetSwitch<br><br>OpenUltrasonic<br>GetUltrasonic<br>USMakeSnapshot<br>USGetSnapshotResults<br><br>OpenAccelerator<br>GetAccelerator<br><br>OpenColor<br>CalibrateColor<br>GetColor<br><br>OpenCompass<br>CalibrateCompass<br>GetCompass<br><br>OpenGyro<br>CalibrateGyro<br>GetGyro<br><br>OpenInfrared<br>GetInfrared<br><br>OpenRFID<br>GetRFID<br><br>CloseSensor</b></td> |
| 78 | | <td align="left" valign="top" rowspan="1"><b>readFromIniFile</b><br><br>MAP_GetCommModule<br>MAP_GetInputModule<br>MAP_GetOutputModule<br>MAP_GetSoundModule<br>MAP_GetUIModule<br><br>MAP_SetOutputModule<br><br>NXC_GetSensorMotorData</td> |
| 79 | | <td align="left" valign="top" rowspan="1"><b>COM_OpenNXT</b><br><b>COM_OpenNXTEx</b><br><br><b>COM_CloseNXT</b><br><br>COM_ReadI2C<br></td> |
| 80 | | </tr> |
| 81 | | |
| 82 | | |
| 83 | | |
| 84 | | <!-- Layer 2 --> |
| 85 | | <tr bgcolor="#9999FF"> |
| 86 | | <td align="center"><b>2</b></td> |
| 87 | | <td><b>Direct NXT Commands</b></td> |
| 88 | | <td valign="top"><b>NXT_SetOutputState<br><br>NXT_GetOutputState<br><br>NXT_ResetMotorPosition</b></td> |
| 89 | | <td valign="top"><b>NXT_SetInputMode<br><br>NXT_GetInputValues</b><br><br>NXT_ResetInputScaledValue<br><br>NXT_LSRead<br>NXT_LSWrite<br>NXT_LSGetStatus</td> |
| 90 | | <td valign="top"><b>NXT_PlayTone</b><br>NXT_PlaySoundFile<br>NXT_StopSoundPlayback<br><br>NXT_StartProgram<br>NXT_GetCurrentProgramName<br>NXT_StopProgram<br><br>NXT_SendKeepAlive<br>NXT_GetBatteryLevel<br>NXT_GetFirmwareVersion<br>NXT_SetBrickName<br><br>NXT_ReadIOMap<br>NXT_WriteIOMap<br><br>NXT_MessageWrite<br>NXT_MessageRead</td> |
| 91 | | <td valign="top">COM_CreatePacket<br>COM_SendPacket<br>COM_CollectPacket<br><br><b>COM_SetDefaultNXT</b><br>COM_GetDefaultNXT<br></td> |
| 92 | | </tr> |
| 93 | | |
| 94 | | <!-- Layer 1 --> |
| 95 | | <tr bgcolor="#7777FF"> |
| 96 | | <td align="center"><b>1</b></td> |
| 97 | | <td><b>Low Level Functions:<br>Helper, Conversion and<br> Lookup Functions</b></td> |
| 98 | | <td valign="top"><b>MOTOR_A<br>MOTOR_B<br>MOTOR_C</b><br><br><i>SetMotor</i> (o)<br><i>SetPower</i> (o)<br><i>SetAngleLimit</i> (o)<br><i>SetRampMode</i> (o)<br><i>SetTurnRatio</i> (o)<br><i>SpeedRegulation</i> (o)<br><i>SyncToMotor</i> (o)<br><i>GetMotor</i> (o)<br><i>SetMemoryCount</i> (o)<br><i>GetMemoryCount</i> (o)<br> |
| 99 | | <br><i>byte2outputmode<br>byte2regmode<br>byte2runstate<br>outputmode2byte<br>regmode2byte<br>runstate2byte</i><br><br><i>initializeGlobalMotorStateVar</i> (o)</td> |
| 100 | | <td valign="top"><b>SENSOR_1<br>SENSOR_2<br>SENSOR_3<br>SENSOR_4</b><br><br><i>byte2sensortype<br>byte2sensormode<br>sensortype2byte<br>sensormode2byte</i><br><br><i>waitUntilI2CReady</i></td> |
| 101 | | <td valign="top"><b>DebugMode</b><br><i>isdebug</i><br><br>textOut<br><br><i>dec2wordbytes<br>name2commandbytes<br>commandbyte2name<br>wordbytes2dec</i></td> |
| 102 | | <td valign="top">checkStatusByte<br><br><i>createHandleStruct</i><br><i>checkHandleStruct</i><br><br><i>getLibusbErrorString</i><br><i>getVISAErrorString</i><br><i>getReplyLengthFromCmdByte</i><br><br><i>fantom_proto</i><br><i>libusb_proto</i></td> |
| 103 | | </tr> |
| 104 | | |
| 105 | | <!-- Legend --> |
| 106 | | <tr bgcolor="#EEEEEE"> |
| 107 | | <td colspan="6" >legend: NXT_* = NXT Direct commands without any limitations (mapped to the LEGO direct command documentation)<br> |
| 108 | | |
| 109 | | COM_* = Functions related to the NXT communication<br> |
| 110 | | |
| 111 | | MAP_* = Functions related to the NXT module maps<br> |
| 112 | | |
| 113 | | NXC_* = Functions communicating with the embedded NXC program MotorControl<br> |
| 114 | | |
| 115 | | <b>bold</b> = Main funcions or main group functions<br> |
| 116 | | |
| 117 | | <i>italic</i> = private functions<br> |
| 118 | | |
| 119 | | (o) = obsolete / deprecated functions (might be removed in a future release) |
| 120 | | </td> |
| 121 | | </tr> |
| 122 | | </table> |
| 123 | | <br> |
| 124 | | }}} |
| 125 | | |
| 126 | | |
| 127 | | = Older versions = |
| 128 | | |