You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2044 lines
90 KiB

<?xml version="1.0"?>
<doc>
<assembly>
<name>AForge.Robotics.Lego</name>
</assembly>
<members>
<member name="T:AForge.Robotics.Lego.Internals.GhostAPI">
<summary>
GhostAPI wrapper class.
</summary>
<remarks><para>GhostAPI is a library provided by Lego, to communicate with its
RCX robotics kit.</para></remarks>
</member>
<member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhCreateStack(System.String,System.String,System.String,System.IntPtr@)">
<summary>
Creates Ghost communication stack.
</summary>
<param name="port">Port implementation required.</param>
<param name="protocol">Protocol implementation required.</param>
<param name="session">Session implementation required.</param>
<param name="stack">Stack handle created by this function.</param>
<returns>GhostAPI error code.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhSelectFirstDevice(System.IntPtr,System.Text.StringBuilder,System.Int32)">
<summary>
Finds and selects the first available device.
</summary>
<param name="stack">Stack handle.</param>
<param name="deviceName">Buffer, which will be filled with the name of the selected port device.</param>
<param name="bufferSize">Size of the specified buffer.</param>
<returns>GhostAPI error code.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhOpen(System.IntPtr)">
<summary>
Opens the currently selected device.
</summary>
<param name="stack">Handle of the stack to be opened.</param>
<returns>GhostAPI error code.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhClose(System.IntPtr)">
<summary>
Closes the currently selected device.
</summary>
<param name="stack">Handle of the stack to be closed.</param>
<returns>GhostAPI error code.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhSetInterleave(System.IntPtr,System.Int32,System.Int32)">
<summary>
Sets the current command interleave between the execute and download queue.
</summary>
<param name="stack">Stack handle.</param>
<param name="interleaveExecute">Number of immediate command blocks.</param>
<param name="interleaveDownload">Number of download slices.</param>
<returns>GhostAPI error code.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhSetWaitMode(System.IntPtr,System.IntPtr)">
<summary>
Set the current notification mode to WAIT.
</summary>
<param name="stack">Stack handle.</param>
<param name="notify">Must be <b>IntPtr.Zero</b> - no callback function.</param>
<returns>GhostAPI error code.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhCreateCommandQueue(System.IntPtr@)">
<summary>
Creates a command queue (containing one command to start with) and return handle.
</summary>
<param name="queue">Queue handle created by this function.</param>
<returns>GhostAPI error code.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhDestroyCommandQueue(System.IntPtr)">
<summary>
Releases a command queue.
</summary>
<param name="queue">Queue handle.</param>
<returns>GhostAPI error code.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhAppendCommand(System.IntPtr,System.Byte[],System.Int32,System.Int32)">
<summary>
Appends a command to the given command queue.
</summary>
<param name="queue"> Queue handle.</param>
<param name="commandData">Command buffer (command + parameters).</param>
<param name="commandLen">Length of the command buffer.</param>
<param name="expectedReplyLen">Length of the expected reply to this command.</param>
<returns>GhostAPI error code.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhExecute(System.IntPtr,System.IntPtr)">
<summary>
Submits a command queue on the EXECUTE queue.
</summary>
<param name="stack">Stack handle.</param>
<param name="queue">Queue handle.</param>
<returns>GhostAPI error code.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhGetFirstCommand(System.IntPtr,System.IntPtr@)">
<summary>
Gets the first command in the queue.
</summary>
<param name="queue">Queue handle.</param>
<param name="command">Retrieved command handle.</param>
<returns>GhostAPI error code.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhGetCommandReplyLen(System.IntPtr,System.UInt32@)">
<summary>
Gets command reply length.
</summary>
<param name="command">Command handle.</param>
<param name="replyLen">Reply length.</param>
<returns>GhostAPI error code.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhGetCommandReply(System.IntPtr,System.Byte[],System.UInt32)">
<summary>
Gets command reply.
</summary>
<param name="command">Command handle.</param>
<param name="replyData">Buffer for reply data.</param>
<param name="bufSize">Buffer size.</param>
<returns>GhostAPI error code.</returns>
</member>
<member name="F:AForge.Robotics.Lego.Internals.GhostAPI.PBKERR_SEVERITYBITS">
<summary>
Mask of severity bits.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.GhostAPI.PBKERR_SEVERITY_SUCCESS">
<summary>
Success severity.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.GhostAPI.PBKERR_SEVERITY_INFORMATIONAL">
<summary>
Informational severity.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.GhostAPI.PBKERR_SEVERITY_WARNING">
<summary>
Warning severity.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.GhostAPI.PBKERR_SEVERITY_ERROR">
<summary>
Error severity.
</summary>
</member>
<member name="M:AForge.Robotics.Lego.Internals.GhostAPI.PBK_IS_SUCCESS(System.UInt32)">
<summary>
Checks if return value has success severity.
</summary>
<param name="e">Error return value.</param>
<returns>True if the return value has success severity.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.GhostAPI.PBK_IS_INFO(System.UInt32)">
<summary>
Checks if return value has info severity.
</summary>
<param name="e">Error return value.</param>
<returns>True if the return value has info severity.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.GhostAPI.PBK_IS_WARNING(System.UInt32)">
<summary>
Checks if return value has warning severity.
</summary>
<param name="e">Error return value.</param>
<returns>True if the return value has warning severity.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.GhostAPI.PBK_IS_ERROR(System.UInt32)">
<summary>
Checks if return value has error severity.
</summary>
<param name="e">Error return value.</param>
<returns>True if the return value has error severity.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.GhostAPI.PBK_SUCCEEDED(System.UInt32)">
<summary>
Checks for successful return code, which has success or info severity.
</summary>
<param name="e">Error return value.</param>
<returns>True if return value is successful.</returns>
</member>
<member name="T:AForge.Robotics.Lego.Internals.INXTCommunicationInterface">
<summary>
Interface, which wraps communication functions with Lego Mindstorms NXT brick.
</summary>
</member>
<member name="P:AForge.Robotics.Lego.Internals.INXTCommunicationInterface.IsConnected">
<summary>
Get connection status.
</summary>
</member>
<member name="M:AForge.Robotics.Lego.Internals.INXTCommunicationInterface.Connect">
<summary>
Connect to NXT brick.
</summary>
<returns>Returns <b>true</b> if connection was established successfully or <b>false</b>
otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.INXTCommunicationInterface.Disconnect">
<summary>
Disconnect from NXT brick.
</summary>
</member>
<member name="M:AForge.Robotics.Lego.Internals.INXTCommunicationInterface.SendMessage(System.Byte[])">
<summary>
Send message to NXT brick over the communication interface.
</summary>
<param name="message">Buffer containing the message to send.</param>
<returns>Returns <b>true</b> if message was sent successfully or <b>false</b>
otherwise.</returns>
<remarks>This method assumes that message starts from the start of the
specified buffer and occupies entire buffer.</remarks>
</member>
<member name="M:AForge.Robotics.Lego.Internals.INXTCommunicationInterface.SendMessage(System.Byte[],System.Int32)">
<summary>
Send message to NXT brick over the communication interface.
</summary>
<param name="message">Buffer containing the message to send.</param>
<param name="length">Length of the message to send.</param>
<returns>Returns <b>true</b> if message was sent successfully or <b>false</b>
otherwise.</returns>
<remarks>This method assumes that message starts from the start of the
specified buffer.</remarks>
</member>
<member name="M:AForge.Robotics.Lego.Internals.INXTCommunicationInterface.SendMessage(System.Byte[],System.Int32,System.Int32)">
<summary>
Send message to NXT brick over the communication interface.
</summary>
<param name="message">Buffer containing the message to send.</param>
<param name="offset">Offset of the message in the buffer.</param>
<param name="length">Length of the message to send.</param>
<returns>Returns <b>true</b> if message was sent successfully or <b>false</b>
otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.INXTCommunicationInterface.ReadMessage(System.Byte[],System.Int32@)">
<summary>
Read message from NXT brick over the communication interface.
</summary>
<param name="buffer">Buffer to use for message reading.</param>
<param name="length">On successful return the variable keeps message length.</param>
<returns>Returns <b>true</b> if message was read successfully or <b>false</b>
otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.INXTCommunicationInterface.ReadMessage(System.Byte[],System.Int32,System.Int32@)">
<summary>
Read message from NXT brick over the communication interface.
</summary>
<param name="buffer">Buffer to use for message reading.</param>
<param name="offset">Offset in the buffer for message.</param>
<param name="length">On successful return the variable keeps message length.</param>
<returns>Returns <b>true</b> if message was read successfully or <b>false</b>
otherwise.</returns>
</member>
<member name="T:AForge.Robotics.Lego.Internals.NXTCommandType">
<summary>
Enumeration of command types supported by Lego Mindstorms NXT brick.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTCommandType.DirectCommand">
<summary>
Direct command, which requires reply.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTCommandType.SystemCommand">
<summary>
System command, which requires reply.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTCommandType.ReplyCommand">
<summary>
Reply command received from NXT brick.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTCommandType.DirectCommandWithoutReply">
<summary>
Direct command, which does not require reply.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTCommandType.SystemCommandWithoutReply">
<summary>
System command, which does not require reply.
</summary>
</member>
<member name="T:AForge.Robotics.Lego.Internals.NXTSystemCommand">
<summary>
Enumeration of system commands supported by Lego Mindstorms NXT brick.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTSystemCommand.GetFirmwareVersion">
<summary>
Get firmware version of NXT brick.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTSystemCommand.SetBrickName">
<summary>
Set NXT brick name.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTSystemCommand.GetDeviceInfo">
<summary>
Get device information.
</summary>
</member>
<member name="T:AForge.Robotics.Lego.Internals.NXTDirectCommand">
<summary>
Enumeration of direct commands supported by Lego Mindstorms NXT brick.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.KeepAlive">
<summary>
Keep NXT brick alive.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.PlayTone">
<summary>
Play tone of specified frequency.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.GetBatteryLevel">
<summary>
Get battery level.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.SetOutputState">
<summary>
Set output state.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.GetOutputState">
<summary>
Get output state.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.ResetMotorPosition">
<summary>
Reset motor position.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.SetInputMode">
<summary>
Set input mode.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.GetInputValues">
<summary>
Get input values.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.LsGetStatus">
<summary>
Get status of the Low Speed bus.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.LsWrite">
<summary>
Write to the Low Speed bus.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.LsRead">
<summary>
Read from the Low Speed bus.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.ResetInputScaledValue">
<summary>
Reset input scaled value.
</summary>
</member>
<member name="T:AForge.Robotics.Lego.Internals.RCXCommand">
<summary>
Enumeration of commands supported by Lego Mindstorms RXT brick.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.RCXCommand.IsAlive">
<summary>
Check whether or not the RCX is alive.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.RCXCommand.PlaySound">
<summary>
Play one of defined sounds.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.RCXCommand.PlayTone">
<summary>
Play tone of specified frequency.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.RCXCommand.GetVersions">
<summary>
Get ROM and firmware versions.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.RCXCommand.GetBatteryPower">
<summary>
Get battery power.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.RCXCommand.SetTime">
<summary>
Set time displayed on RCX brick.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.RCXCommand.PowerOff">
<summary>
Turm off RCX brick.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.RCXCommand.GetValue">
<summary>
Get value.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.RCXCommand.SetSensorType">
<summary>
Set sensor type.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.RCXCommand.SetSensorMore">
<summary>
Set sensor mode.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.RCXCommand.ClearSensorValue">
<summary>
Clear sensor value.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.RCXCommand.SetTransmitterRange">
<summary>
Set IR transmiter's range.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.RCXCommand.SetMotorOnOff">
<summary>
Turn on/off motor.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.RCXCommand.SetMotorPower">
<summary>
Set motor's power.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.RCXCommand.SetMotorDirection">
<summary>
Set motor's direction
</summary>
</member>
<member name="T:AForge.Robotics.Lego.Internals.SerialCommunication">
<summary>
Implementation of serial communication interface with LEGO Mindstorm NXT brick.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.Internals.SerialCommunication.MaxMessageSize">
<summary>
Maximum message size, which can be sent over this communication interface to NXT
brick.
</summary>
</member>
<member name="P:AForge.Robotics.Lego.Internals.SerialCommunication.PortName">
<summary>
Serial port name used for communication.
</summary>
</member>
<member name="P:AForge.Robotics.Lego.Internals.SerialCommunication.IsConnected">
<summary>
Get connection status.
</summary>
</member>
<member name="M:AForge.Robotics.Lego.Internals.SerialCommunication.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:AForge.Robotics.Lego.Internals.SerialCommunication"/> class.
</summary>
<param name="portName">Serial port name to use for communication.</param>
<remarks>This constructor initializes serial port with default write and read
timeout values, which are 1000 milliseconds.</remarks>
</member>
<member name="M:AForge.Robotics.Lego.Internals.SerialCommunication.#ctor(System.String,System.Int32,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:AForge.Robotics.Lego.Internals.SerialCommunication"/> class.
</summary>
<param name="portName">Serial port name to use for communication.</param>
<param name="writeTimeout">Timeout value used for write operations.</param>
<param name="readTimeout">Timeout value used for read operations.</param>
</member>
<member name="M:AForge.Robotics.Lego.Internals.SerialCommunication.Connect">
<summary>
Connect to NXT brick.
</summary>
<returns>Returns <b>true</b> if connection was established successfully or <b>false</b>
otherwise.</returns>
<remarks>If communication interface was connected before the call, existing connection will be reused.
If it is required to force reconnection, then <see cref="M:AForge.Robotics.Lego.Internals.SerialCommunication.Disconnect"/> method should be called before.
</remarks>
</member>
<member name="M:AForge.Robotics.Lego.Internals.SerialCommunication.Disconnect">
<summary>
Disconnect from NXT brick.
</summary>
</member>
<member name="M:AForge.Robotics.Lego.Internals.SerialCommunication.SendMessage(System.Byte[])">
<summary>
Send message to NXT brick over the communication interface.
</summary>
<param name="message">Buffer containing the message to send.</param>
<returns>Returns <b>true</b> if message was sent successfully or <b>false</b>
otherwise.</returns>
<remarks>This method assumes that message starts from the start of the
specified buffer and occupies entire buffer.</remarks>
</member>
<member name="M:AForge.Robotics.Lego.Internals.SerialCommunication.SendMessage(System.Byte[],System.Int32)">
<summary>
Send message to NXT brick over the communication interface.
</summary>
<param name="message">Buffer containing the message to send.</param>
<param name="length">Length of the message to send.</param>
<returns>Returns <b>true</b> if message was sent successfully or <b>false</b>
otherwise.</returns>
<remarks>This method assumes that message starts from the start of the
specified buffer.</remarks>
</member>
<member name="M:AForge.Robotics.Lego.Internals.SerialCommunication.SendMessage(System.Byte[],System.Int32,System.Int32)">
<summary>
Send message to NXT brick over the communication interface.
</summary>
<param name="message">Buffer containing the message to send.</param>
<param name="offset">Offset of the message in the buffer.</param>
<param name="length">Length of the message to send.</param>
<returns>Returns <b>true</b> if message was sent successfully or <b>false</b>
otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.SerialCommunication.ReadMessage(System.Byte[],System.Int32@)">
<summary>
Read message from NXT brick over the communication interface.
</summary>
<param name="buffer">Buffer to use for message reading.</param>
<param name="length">On successful return the variable keeps message length.</param>
<returns>Returns <b>true</b> if message was read successfully or <b>false</b>
otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.Internals.SerialCommunication.ReadMessage(System.Byte[],System.Int32,System.Int32@)">
<summary>
Read message from NXT brick over the communication interface.
</summary>
<param name="buffer">Buffer to use for message reading.</param>
<param name="offset">Offset in the buffer for message.</param>
<param name="length">On successful return the variable keeps message length.</param>
<returns>Returns <b>true</b> if message was read successfully or <b>false</b>
otherwise.</returns>
</member>
<member name="T:AForge.Robotics.Lego.NXTBrick">
<summary>
Manipulation of Lego Mindstorms NXT device.
</summary>
<remarks>
<para>The class allows to manipulate with Lego Mindstorms NXT device,
setting/getting its motors' state, getting information about sensors'
values and retrieving generic information about the NXT brick.</para>
<para><img src="img/robotics/nxt.jpg" width="250" height="201" /></para>
<para><note>Only communication through Bluetooth (virtual serial port) is supported at this point.</note></para>
<para>Sample usage:</para>
<code>
// create an instance of NXT brick
NXTBrick nxt = new NXTBrick( );
// connect to the device
if ( nxt.Connect( "COM8" ) )
{
// run motor A
NXTBrick.MotorState motorState = new NXTBrick.MotorState( );
motorState.Power = 70;
motorState.TurnRatio = 50;
motorState.Mode = NXTBrick.MotorMode.On;
motorState.Regulation = NXTBrick.MotorRegulationMode.Idle;
motorState.RunState = NXTBrick.MotorRunState.Running;
motorState.TachoLimit = 1000;
nxt.SetMotorState( NXTBrick.Motor.A, motorState );
// get input value from the first sensor
NXTBrick.SensorValues sensorValues;
if ( nxt.GetSensorValue( NXTBrick.Sensor.First, out sensorValues ) )
{
// ...
}
// ...
}
</code>
</remarks>
</member>
<member name="T:AForge.Robotics.Lego.NXTBrick.Sensor">
<summary>
Enumeration of NXT brick sensor ports.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.Sensor.First">
<summary>
First sensor.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.Sensor.Second">
<summary>
Second sensor.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.Sensor.Third">
<summary>
Third sensor.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.Sensor.Fourth">
<summary>
Fourth sensor.
</summary>
</member>
<member name="T:AForge.Robotics.Lego.NXTBrick.SensorType">
<summary>
Enumeration of NXT brick sensor types.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.NoSensor">
<summary>
No sensor.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.Switch">
<summary>
NXT or Legacy touch sensor.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.Temperature">
<summary>
Legacy temperature sensor.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.Reflection">
<summary>
Legacy light sensor.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.Angle">
<summary>
Legacy rotation sensor.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.LightActive">
<summary>
NXT light sensor with floodlight enabled.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.LightInactive">
<summary>
NXT light sensor with floodlight disabled.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.SoundDB">
<summary>
NXT sound sensor (dB scaling).
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.SoundDBA">
<summary>
NXT sound sensor (dBA scaling).
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.Custom">
<summary>
Unused
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.Lowspeed">
<summary>
I2C digital sensor.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.Lowspeed9V">
<summary>
I2C digital sensor (9V power).
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.Highspeed">
<summary>
Unused.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.ColorFull">
<summary>
NXT 2.0 color sensor in color detector mode.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.ColorRed">
<summary>
NXT 2.0 color sensor in light sensor mode with red light on.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.ColorGreen">
<summary>
NXT 2.0 color sensor in light sensor mode with green light on.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.ColorBlue">
<summary>
NXT 2.0 color sensor in light sensor mode with blue light on.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.ColorNone">
<summary>
NXT 2.0 color sensor in light sensor mode without light.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.ColorExit">
<summary>
NXT 2.0 color sensor internal state (no functionality known yet).
</summary>
</member>
<member name="T:AForge.Robotics.Lego.NXTBrick.SensorMode">
<summary>
Enumeration of NXT brick sensor modes.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorMode.Raw">
<summary>
Raw mode.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorMode.Boolean">
<summary>
Boolean mode. Report scaled value as 1 (TRUE) or 0 (FALSE). The firmware uses
inverse Boolean logic to match the physical characteristics of NXT sensors. Readings
are FALSE if raw value exceeds 55% of total range; reading are TRUE if raw value
is less than 45% of total range.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorMode.TransitionCounter">
<summary>
Report scaled value as number of transition between TRUE and FALSE.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorMode.PeriodicCounter">
<summary>
Report scaled value as number of transitions from FALSE to TRUE, then back to FALSE.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorMode.PCTFullScale">
<summary>
Report scaled value as percentage of full scale reading for configured sensor type.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorMode.Celsius">
<summary>
Scale terperature reading to degrees Celsius.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorMode.Fahrenheit">
<summary>
Scale terperature reading to degrees Fahrenheit.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.SensorMode.AngleSteps">
<summary>
Report scaled value as count of ticks on RCX-style rotation sensor.
</summary>
</member>
<member name="T:AForge.Robotics.Lego.NXTBrick.SensorValues">
<summary>
Class describing sensor's values received from NXT brick's sensor port.
</summary>
</member>
<member name="P:AForge.Robotics.Lego.NXTBrick.SensorValues.IsValid">
<summary>
Specifies if data value should be treated as valid data.
</summary>
</member>
<member name="P:AForge.Robotics.Lego.NXTBrick.SensorValues.IsCalibrated">
<summary>
Specifies if calibration file was found and used for <see cref="P:AForge.Robotics.Lego.NXTBrick.SensorValues.Calibrated"/>
field calculation.
</summary>
</member>
<member name="P:AForge.Robotics.Lego.NXTBrick.SensorValues.SensorType">
<summary>
Sensor type.
</summary>
</member>
<member name="P:AForge.Robotics.Lego.NXTBrick.SensorValues.SensorMode">
<summary>
Sensor mode.
</summary>
</member>
<member name="P:AForge.Robotics.Lego.NXTBrick.SensorValues.Raw">
<summary>
Raw A/D value (device dependent).
</summary>
</member>
<member name="P:AForge.Robotics.Lego.NXTBrick.SensorValues.Normalized">
<summary>
Normalized A/D value (sensor type dependent), [0, 1023].
</summary>
</member>
<member name="P:AForge.Robotics.Lego.NXTBrick.SensorValues.Scaled">
<summary>
Scaled value (sensor mode dependent).
</summary>
</member>
<member name="P:AForge.Robotics.Lego.NXTBrick.SensorValues.Calibrated">
<summary>
Value scaled according to calibration.
</summary>
<remarks><note>According to Lego notes the value is currently unused.</note></remarks>
</member>
<member name="T:AForge.Robotics.Lego.NXTBrick.Motor">
<summary>
Enumeration of NXT brick motor ports.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.Motor.A">
<summary>
Motor A.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.Motor.B">
<summary>
Motor B.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.Motor.C">
<summary>
Motor C.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.Motor.All">
<summary>
All motors (A, B and C).
</summary>
</member>
<member name="T:AForge.Robotics.Lego.NXTBrick.MotorMode">
<summary>
Enumeration of supported motor modes.
</summary>
<remarks>Motor mode is a bit field, so several modes can be combined.</remarks>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.MotorMode.None">
<summary>
Mode is not set.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.MotorMode.On">
<summary>
Turn on the motor.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.MotorMode.Brake">
<summary>
Brake.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.MotorMode.Regulated">
<summary>
Turn on regulated mode.
</summary>
</member>
<member name="T:AForge.Robotics.Lego.NXTBrick.MotorRegulationMode">
<summary>
Enumeration of motor regulation modes.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.MotorRegulationMode.Idle">
<summary>
No regulation will be enabled.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.MotorRegulationMode.Speed">
<summary>
Power control will be enabled on specified motor.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.MotorRegulationMode.Sync">
<summary>
Synchronization will be enabled.
</summary>
<remarks><note>Synchronization need to be enabled on two motors.</note></remarks>
</member>
<member name="T:AForge.Robotics.Lego.NXTBrick.MotorRunState">
<summary>
Enumeration of motor run states.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.MotorRunState.Idle">
<summary>
Motor will be idle.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.MotorRunState.RampUp">
<summary>
Motor will ramp-up.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.MotorRunState.Running">
<summary>
Motor will be running.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.NXTBrick.MotorRunState.RampDown">
<summary>
Motor will ramp-down.
</summary>
</member>
<member name="T:AForge.Robotics.Lego.NXTBrick.MotorState">
<summary>
Class describing motor's state.
</summary>
</member>
<member name="P:AForge.Robotics.Lego.NXTBrick.MotorState.Power">
<summary>
Power, [-100, 100].
</summary>
</member>
<member name="P:AForge.Robotics.Lego.NXTBrick.MotorState.TurnRatio">
<summary>
Turn ratio, [-100, 100].
</summary>
</member>
<member name="P:AForge.Robotics.Lego.NXTBrick.MotorState.Mode">
<summary>
Mode (bit field).
</summary>
</member>
<member name="P:AForge.Robotics.Lego.NXTBrick.MotorState.Regulation">
<summary>
Regulation mode.
</summary>
</member>
<member name="P:AForge.Robotics.Lego.NXTBrick.MotorState.RunState">
<summary>
Run state.
</summary>
</member>
<member name="P:AForge.Robotics.Lego.NXTBrick.MotorState.TachoLimit">
<summary>
Tacho limit (0 - run forever).
</summary>
<remarks>The value determines motor's run limit.</remarks>
</member>
<member name="P:AForge.Robotics.Lego.NXTBrick.MotorState.TachoCount">
<summary>
Number of counts since last reset of motor counter.
</summary>
<remarks><note>The value is ignored when motor's state is set. The value is
provided when motor's state is retrieved.</note></remarks>
</member>
<member name="P:AForge.Robotics.Lego.NXTBrick.MotorState.BlockTachoCount">
<summary>
Current position relative to last programmed movement.
</summary>
<remarks><note>The value is ignored when motor's state is set. The value is
provided when motor's state is retrieved.</note></remarks>
</member>
<member name="P:AForge.Robotics.Lego.NXTBrick.MotorState.RotationCount">
<summary>
Current position relative to last reset of motor's rotation sensor.
</summary>
<remarks><note>The value is ignored when motor's state is set. The value is
provided when motor's state is retrieved.</note></remarks>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.MotorState.#ctor">
<summary>
Initializes a new instance of the <see cref="T:AForge.Robotics.Lego.NXTBrick.MotorState"/> class.
</summary>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.MotorState.#ctor(System.Int32,System.Int32,AForge.Robotics.Lego.NXTBrick.MotorMode,AForge.Robotics.Lego.NXTBrick.MotorRegulationMode,AForge.Robotics.Lego.NXTBrick.MotorRunState,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:AForge.Robotics.Lego.NXTBrick.MotorState"/> class.
</summary>
<param name="power">Power, [-100, 100].</param>
<param name="turnRatio">Turn ratio, [-100, 100].</param>
<param name="mode">Mode (bit field).</param>
<param name="regulation">Regulation mode.</param>
<param name="runState">Run state.</param>
<param name="tachoLimit">The value determines motor's run limit.</param>
</member>
<member name="P:AForge.Robotics.Lego.NXTBrick.IsConnected">
<summary>
Check if connection to NXT brick is established.
</summary>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.#ctor">
<summary>
Initializes a new instance of the <see cref="T:AForge.Robotics.Lego.NXTBrick"/> class.
</summary>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.Finalize">
<summary>
Destroys the instance of the <see cref="T:AForge.Robotics.Lego.NXTBrick"/> class.
</summary>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.Connect(System.String)">
<summary>
Connect to NXT brick.
</summary>
<param name="portName">Serial port name to use for communication, for example COM1.</param>
<returns>Returns <b>true</b> on successful connection or <b>false</b>
otherwise.</returns>
<remarks>If connection to NXT brick was established before the call, existing connection will be reused.
If it is required to force reconnection, then <see cref="M:AForge.Robotics.Lego.NXTBrick.Disconnect"/> method should be called before.
</remarks>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.Disconnect">
<summary>
Disconnect from Lego NXT brick.
</summary>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.IsAlive">
<summary>
Check if the NXT brick is alive and responds to messages.
</summary>
<returns>Returns <b>true</b> if device is alive or <b>false</b> otherwise.</returns>
<remarks>The command also keeps NXT brick alive preventing it from sleep.</remarks>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.PlayTone(System.Int16,System.Int16)">
<summary>
Play tone of specified frequency.
</summary>
<param name="frequency">Tone frequency in Hz.</param>
<param name="duration">Tone duration in milliseconds.</param>
<returns>Returns <b>true</b> if device is alive or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.PlayTone(System.Int16,System.Int16,System.Boolean)">
<summary>
Play tone of specified frequency.
</summary>
<param name="frequency">Tone frequency in Hz.</param>
<param name="duration">Tone duration in milliseconds.</param>
<param name="waitReply">Wait reply from NXT (safer option) or not (faster option).</param>
<returns>Returns <b>true</b> if device is alive or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.GetVersion(System.String@,System.String@)">
<summary>
Get firmware version of NXT brick.
</summary>
<param name="protocolVersion">Protocol version number.</param>
<param name="firmwareVersion">Firmware version number.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.GetDeviceInformation(System.String@,System.Byte[]@,System.Int32@,System.Int32@)">
<summary>
Get information about NXT device.
</summary>
<param name="deviceName">Device name.</param>
<param name="btAddress">Bluetooth address.</param>
<param name="btSignalStrength">Bluetooth signal strength.</param>
<param name="freeUserFlash">Free user Flash.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.GetBatteryPower(System.Int32@)">
<summary>
Get battery power of NXT brick.
</summary>
<param name="power">NXT brick's battery power in millivolts.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.SetBrickName(System.String)">
<summary>
Set name of NXT device.
</summary>
<param name="deviceName">Device name to set for the brick.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.ResetMotorPosition(AForge.Robotics.Lego.NXTBrick.Motor,System.Boolean)">
<summary>
Reset motor's position.
</summary>
<param name="motor">Motor to reset.</param>
<param name="relative">Specifies if relative (to last movement) or absolute motor's
position should reset.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.ResetMotorPosition(AForge.Robotics.Lego.NXTBrick.Motor,System.Boolean,System.Boolean)">
<summary>
Reset motor's position.
</summary>
<param name="motor">Motor to reset.</param>
<param name="relative">Specifies if relative (to last movement) or absolute motor's
position should reset.</param>
<param name="waitReply">Wait reply from NXT (safer option) or not (faster option).</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.SetMotorState(AForge.Robotics.Lego.NXTBrick.Motor,AForge.Robotics.Lego.NXTBrick.MotorState)">
<summary>
Set motor state.
</summary>
<param name="motor">Motor to set state for.</param>
<param name="state">Motor's state to set.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.SetMotorState(AForge.Robotics.Lego.NXTBrick.Motor,AForge.Robotics.Lego.NXTBrick.MotorState,System.Boolean)">
<summary>
Set motor state.
</summary>
<param name="motor">Motor to set state for.</param>
<param name="state">Motor's state to set.</param>
<param name="waitReply">Wait reply from NXT (safer option) or not (faster option).</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.GetMotorState(AForge.Robotics.Lego.NXTBrick.Motor,AForge.Robotics.Lego.NXTBrick.MotorState@)">
<summary>
Get motor state.
</summary>
<param name="motor">Motor to get state for.</param>
<param name="state">Motor's state.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.SetSensorMode(AForge.Robotics.Lego.NXTBrick.Sensor,AForge.Robotics.Lego.NXTBrick.SensorType,AForge.Robotics.Lego.NXTBrick.SensorMode)">
<summary>
Set sensor's type and mode.
</summary>
<param name="sensor">Sensor to set type of.</param>
<param name="type">Sensor's type.</param>
<param name="mode">Sensor's mode.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.SetSensorMode(AForge.Robotics.Lego.NXTBrick.Sensor,AForge.Robotics.Lego.NXTBrick.SensorType,AForge.Robotics.Lego.NXTBrick.SensorMode,System.Boolean)">
<summary>
Set sensor's type and mode.
</summary>
<param name="sensor">Sensor to set type of.</param>
<param name="type">Sensor's type.</param>
<param name="mode">Sensor's mode.</param>
<param name="waitReply">Wait reply from NXT (safer option) or not (faster option).</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.GetSensorValue(AForge.Robotics.Lego.NXTBrick.Sensor,AForge.Robotics.Lego.NXTBrick.SensorValues@)">
<summary>
Get sensor's values.
</summary>
<param name="sensor">Sensor to get values of.</param>
<param name="sensorValues">etrieved sensor's values.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.ClearSensor(AForge.Robotics.Lego.NXTBrick.Sensor)">
<summary>
Clear sensor's scaled value.
</summary>
<param name="sensor">Sensor to clear value of.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.ClearSensor(AForge.Robotics.Lego.NXTBrick.Sensor,System.Boolean)">
<summary>
Clear sensor's scaled value.
</summary>
<param name="sensor">Sensor to clear value of.</param>
<param name="waitReply">Wait reply from NXT (safer option) or not (faster option).</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.LsGetStatus(AForge.Robotics.Lego.NXTBrick.Sensor,System.Int32@)">
<summary>
Get status of Low Speed bus.
</summary>
<param name="sensor">Sensor to get the status from.</param>
<param name="readyBytes">Number of bytes that are ready to be read from the bus.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.LsWrite(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32)">
<summary>
Write to Low Speed bus.
</summary>
<param name="sensor">Sensor to write to.</param>
<param name="data">Data to send to the I2C device.</param>
<param name="expectedBytes">Number of bytes expected from device on reply, [0..16].
Can be set to zero if I2C command does not suppose any reply.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
<exception cref="T:System.ArgumentException">Data length must be in the [1..16] range.</exception>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.LsWrite(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32,System.Boolean)">
<summary>
Write to Low Speed bus.
</summary>
<param name="sensor">Sensor to write to.</param>
<param name="data">Data to send to the I2C device.</param>
<param name="expectedBytes">Number of bytes expected from device on reply, [0..16].
Can be set to zero if I2C command does not suppose any reply.</param>
<param name="waitReply">Wait reply from NXT (safer option) or not (faster option).</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
<exception cref="T:System.ArgumentException">Data length must be in the [1..16] range.</exception>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.LsRead(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32@)">
<summary>
Read data from Low Speed bus.
</summary>
<param name="sensor">Sensor to read data from.</param>
<param name="readValues">Array to read data to.</param>
<param name="bytesRead">Bytes actually read from I2C device.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.GetUltrasonicSensorsValue(AForge.Robotics.Lego.NXTBrick.Sensor,System.Int32@)">
<summary>
Read value of ultrasonic distance sensor.
</summary>
<param name="sensor">Sensor to read value from.</param>
<param name="value">Distance value obtained from ultrasonic sensor, [0..255] cm.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
<remarks><para>The method retrieves value of ultrasonic distance sensor by
communicating with I2C device (writing to and reading from low speed bus).
The method first sends { 0x02, 0x42 } command to the specified device using
<see cref="M:AForge.Robotics.Lego.NXTBrick.LsWrite(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32)"/> method. Then it waits until there is something available
to read using <see cref="M:AForge.Robotics.Lego.NXTBrick.LsGetStatus(AForge.Robotics.Lego.NXTBrick.Sensor,System.Int32@)"/> method. Finally it reads sensor's value
using <see cref="M:AForge.Robotics.Lego.NXTBrick.LsRead(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32@)"/> device. See
<a href="http://hsrc.static.net/Research/NXT%20I2C%20Communication/">this page</a>
for details.</para>
<para><note>Before using this method it is required to use
<see cref="M:AForge.Robotics.Lego.NXTBrick.SetSensorMode(AForge.Robotics.Lego.NXTBrick.Sensor,AForge.Robotics.Lego.NXTBrick.SensorType,AForge.Robotics.Lego.NXTBrick.SensorMode,System.Boolean)"/> method to set sensor's type to
<see cref="F:AForge.Robotics.Lego.NXTBrick.SensorType.Lowspeed9V"/> mode. It should be done
once after NXT brick is powered on. If sensor's type is not set properly,
the method will generate an exception. Also after setting sensor's
type application may need to wait a bit to give device some time
to initialize.</note></para>
</remarks>
</member>
<member name="E:AForge.Robotics.Lego.NXTBrick.MessageSent">
<summary>
The event is raised every time a command is sent successfully.
</summary>
</member>
<member name="E:AForge.Robotics.Lego.NXTBrick.MessageRead">
<summary>
The event is raised every time a command is read successfully.
</summary>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.SendCommand(System.Byte[],System.Byte[])">
<summary>
Send command to Lego NXT brick and read reply.
</summary>
<param name="command">Command to send.</param>
<param name="reply">Buffer to receive reply into.</param>
<returns>Returns <b>true</b> if the command was sent successfully and reply was
received, otherwise <b>false</b>.</returns>
<exception cref="T:System.NullReferenceException">Communication can not be performed, because connection with
NXT brick was not established yet.</exception>
<exception cref="T:System.ArgumentException">Reply buffer size is smaller than the reply data size.</exception>
<exception cref="T:System.ApplicationException">Reply does not correspond to command (second byte of reply should
be equal to second byte of command).</exception>
<exception cref="T:System.ApplicationException">Error occurred on NXT brick side.</exception>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.ReadHiTechnicColorSensor(AForge.Robotics.Lego.NXTBrick.Sensor,System.Int32@,System.Int32@,System.Int32@,System.Int32@)">
<summary>
Read data from HiTechnic color sensor (also color sensor v2).
</summary>
<param name="sensor">Sensor to read from.</param>
<param name="colorNumber"><a href="http://www.hitechnic.com/contents/media/Color%20Number.jpg">Found color number.</a></param>
<param name="redValue">Found red value.</param>
<param name="greenValue">Found green value.</param>
<param name="blueValue">Found blue value.</param>
<returns>Returns <b>true</b> if the command was sent successfully and reply was
received, otherwise <b>false</b>.</returns>
<remarks><para>The method retrieves the color valuse of a <a href="http://www.hitechnic.com/products/">HiTechnic color sensor</a>
by communicating with I2C device (writing to and reading from low speed bus).
The method first sends { 0x02, 0x42 } command to the specified device using
<see cref="M:AForge.Robotics.Lego.NXTBrick.LsWrite(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32)"/> method. Then it waits until there is something available
to read using <see cref="M:AForge.Robotics.Lego.NXTBrick.LsGetStatus(AForge.Robotics.Lego.NXTBrick.Sensor,System.Int32@)"/> method. Finally it reads sensor's value
using <see cref="M:AForge.Robotics.Lego.NXTBrick.LsRead(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32@)"/> device. See
<a href="http://hsrc.static.net/Research/NXT%20I2C%20Communication/">this page</a>
for details.</para>
<para><note>Before using this method it is required to use
<see cref="M:AForge.Robotics.Lego.NXTBrick.SetSensorMode(AForge.Robotics.Lego.NXTBrick.Sensor,AForge.Robotics.Lego.NXTBrick.SensorType,AForge.Robotics.Lego.NXTBrick.SensorMode,System.Boolean)"/> method to set sensor's type to
<see cref="F:AForge.Robotics.Lego.NXTBrick.SensorType.Lowspeed"/> mode. It should be done
once after NXT brick is powered on. If sensor's type is not set properly,
the method will generate an exception. Also after setting sensor's
type application may need to wait a bit to give device some time
to initialize.</note></para>
<para><note>NXT Firmware version 1.24 must be loaded in the NXT for the HiTechnic color sensor to operate correctly.
You can check the firmware version using the <see cref="M:AForge.Robotics.Lego.NXTBrick.GetVersion(System.String@,System.String@)"/> method.</note></para>
<para><note>The color sensor V2 must be configured to match the mains electricity frequency for your
country. Details on how to configure the Color Sensor V2 can be found at
<a href="http://www.hitechnic.com/colorsensor"></a></note></para>
</remarks>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.ReadHiTechnicCompassSensor(AForge.Robotics.Lego.NXTBrick.Sensor,System.Int32@)">
<summary>
Read data from HiTechnic compass sensor.
</summary>
<param name="sensor">Sensor to read from.</param>
<param name="angle">The magnetic heading, [0, 359] degrees.</param>
<returns>Returns <b>true</b> if the command was sent successfully and reply was
received, otherwise <b>false</b>.</returns>
<remarks><para>The method retrieves the angle of a <a href="http://www.hitechnic.com/products/">
HiTechnic compass sensor</a> by
communicating with I2C device (writing to and reading from low speed bus).
The method first sends { 0x02, 0x42 } command to the specified device using
<see cref="M:AForge.Robotics.Lego.NXTBrick.LsWrite(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32)"/> method. Then it waits until there is something available
to read using <see cref="M:AForge.Robotics.Lego.NXTBrick.LsGetStatus(AForge.Robotics.Lego.NXTBrick.Sensor,System.Int32@)"/> method. Finally it reads sensor's value
using <see cref="M:AForge.Robotics.Lego.NXTBrick.LsRead(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32@)"/> device. See
<a href="http://hsrc.static.net/Research/NXT%20I2C%20Communication/">this page</a>
for details.</para>
<para><note>Before using this method it is required to use
<see cref="M:AForge.Robotics.Lego.NXTBrick.SetSensorMode(AForge.Robotics.Lego.NXTBrick.Sensor,AForge.Robotics.Lego.NXTBrick.SensorType,AForge.Robotics.Lego.NXTBrick.SensorMode,System.Boolean)"/> method to set sensor's type to
<see cref="F:AForge.Robotics.Lego.NXTBrick.SensorType.Lowspeed"/> mode. It should be done
once after NXT brick is powered on. If sensor's type is not set properly,
the method will generate an exception. Also after setting sensor's
type application may need to wait a bit to give device some time
to initialize.</note></para>
<para><note>The HiTechnic compass sensor will only operate correctly in a horizontal plane so you must keep the compass
level for it to read correctly. This is very important so remember this when you build it into your robot.
It is highly desirable to mount the compass at least 6 inches (15cm) away from the motors and 4 inches (10cm) away from the NXT brick
itself. Try to make sure it is firmly mounted, if it bounces around, the readings may bounce around too.
</note></para>
<para><note>NXT Firmware version 1.03 must be loaded in the NXT for the compass to operate correctly. You can check the firmware version
using the <see cref="M:AForge.Robotics.Lego.NXTBrick.GetVersion(System.String@,System.String@)"/> method.</note></para>
</remarks>
</member>
<member name="M:AForge.Robotics.Lego.NXTBrick.ReadHiTechnicAccelerationTiltSensor(AForge.Robotics.Lego.NXTBrick.Sensor,System.Int32@,System.Int32@,System.Int32@)">
<summary>
Read data from HiTechnic acceleration/tilt sensor. The HiTechnic accelerometer/tilt sensor measures acceleration in
three axes. It measures also tilt along each axis. Using the sensor, you can measure the acceleration of your robot in the range
of -2g to 2g.
</summary>
<param name="sensor">Sensor to read from.</param>
<param name="xAceeleration">Acceleration in X direction, with a scaling of approximately 200 counts per g.</param>
<param name="yAceeleration">Acceleration in Y direction, with a scaling of approximately 200 counts per g.</param>
<param name="zAceeleration">Acceleration in Z direction, with a scaling of approximately 200 counts per g.</param>
<returns>Returns <b>true</b> if the command was sent successfully and reply was
received, otherwise <b>false</b>.</returns>
<remarks><para>The method retrieves the acceleration in three directions of a
<a href="http://www.hitechnic.com/products/"> HiTechnic acceleration/tilt sensor</a> by
communicating with I2C device (writing to and reading from low speed bus).
The method first sends { 0x02, 0x42 } command to the specified device using
<see cref="M:AForge.Robotics.Lego.NXTBrick.LsWrite(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32)"/> method. Then it waits until there is something available
to read using <see cref="M:AForge.Robotics.Lego.NXTBrick.LsGetStatus(AForge.Robotics.Lego.NXTBrick.Sensor,System.Int32@)"/> method. Finally it reads sensor's value
using <see cref="M:AForge.Robotics.Lego.NXTBrick.LsRead(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32@)"/> device. See
<a href="http://hsrc.static.net/Research/NXT%20I2C%20Communication/">this page</a>
for details.</para>
<para><note>Before using this method it is required to use
<see cref="M:AForge.Robotics.Lego.NXTBrick.SetSensorMode(AForge.Robotics.Lego.NXTBrick.Sensor,AForge.Robotics.Lego.NXTBrick.SensorType,AForge.Robotics.Lego.NXTBrick.SensorMode,System.Boolean)"/> method to set sensor's type to
<see cref="F:AForge.Robotics.Lego.NXTBrick.SensorType.Lowspeed"/> mode. It should be done
once after NXT brick is powered onq If sensor's type is not set properly,
the method will generate an exception. Also after setting sensor's
type application may need to wait a bit to give device some time
to initialize.</note></para>
<para>The acceleration sensor can also be used to measure tilt in three axes This is possible because gravity is perceived
as acceleration. When the sensor is stationary and in the normal horizontal position, the x and y axis will be near
zero, because they are horizontal, while the z axis will be near 200, which represents g. If you tilt the sensor then
gravity will also be detected on the other axis and the value for the z axis will go down. Since gravity is distributed
among the three component vectors, the tilt of the sensor can be determined.</para>
<para><note>NXT Firmware version 1.05 or later must be loaded in the NXT for the acceleration/tilt sensor and other digital I2C
sensors to operate correctly. You can check the firmware version using the <see cref="M:AForge.Robotics.Lego.NXTBrick.GetVersion(System.String@,System.String@)"/> method.</note></para>
</remarks>
</member>
<member name="T:AForge.Robotics.Lego.RCXBrick">
<summary>
Manipulation of Lego Mindstorms RCX device.
</summary>
<remarks>
<para>The class allows to manipulate with Lego Mindstorms RCX device,
setting its motors' state, getting information about sensors'
values and performing some other manipulations.</para>
<para><img src="img/robotics/rcx.jpg" width="312" height="251" /></para>
<para><note>The class supports both types of IR towers - USB and serial (see
<see cref="T:AForge.Robotics.Lego.RCXBrick.IRTowerType"/>).</note></para>
<para><note>The class uses GhostAPI to communicate with Lego RCX device, so its
libraries (GhostAPI.dll, PbkComm32.dll and PbkUsbPort.dll) should be placed into applications folder.</note></para>
<para><note>The class is deprecated.</note></para>
<para>Sample usage:</para>
<code>
// create an instance of RCX brick
RCXBrick rcx = new RCXBrick( );
// connect to the device
if ( rcx.Connect( RCXBrick.IRTowerType.USB ) )
{
// set forward direction of motor A
rcx.SetMotorDirection( RCXBrick.Motor.A, true );
// set power of motor
rcx.SetMotorPower( RCXBrick.Motor.A, 1 );
// turm motor on
rcx.SetMotorOn( RCXBrick.Motor.A, true );
// ...
// turn off motors A, B and C
rcx.SetMotorOn( RCXBrick.Motor.ABC, false );
// get first sensor's value
short value;
if ( rcx.GetSensorValue( RCXBrick.Sensor.First, out value ) )
{
// ...
}
// ...
}
</code>
</remarks>
</member>
<member name="T:AForge.Robotics.Lego.RCXBrick.IRTowerType">
<summary>
Type of IR tower used for communication with RCX.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.IRTowerType.USB">
<summary>
USB IR tower.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.IRTowerType.Serial">
<summary>
RS232 IR tower.
</summary>
</member>
<member name="T:AForge.Robotics.Lego.RCXBrick.SoundType">
<summary>
Enumeration of sound type playable by Lego RCX brick.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SoundType.Blip">
<summary>
Blip sound.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SoundType.BeepBeep">
<summary>
Double beep spund.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SoundType.DownwardTones">
<summary>
Downward tones sound.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SoundType.UpwardTones">
<summary>
Upward tones sound.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SoundType.LowBuzz">
<summary>
Low buzz sound.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SoundType.FastUpwardTones">
<summary>
Fast upward tones sound.
</summary>
</member>
<member name="T:AForge.Robotics.Lego.RCXBrick.Sensor">
<summary>
Enumeration of RCX brick sensor ports.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.Sensor.First">
<summary>
First sensor.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.Sensor.Second">
<summary>
Second sensor.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.Sensor.Third">
<summary>
Third sensor.
</summary>
</member>
<member name="T:AForge.Robotics.Lego.RCXBrick.SensorType">
<summary>
Enumeration of RCX brick sensor types.
</summary>
<remarks><para>Use <see cref="M:AForge.Robotics.Lego.RCXBrick.SetSensorType(AForge.Robotics.Lego.RCXBrick.Sensor,AForge.Robotics.Lego.RCXBrick.SensorType)"/> method to set RCX sensor's type.</para></remarks>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SensorType.Raw">
<summary>
Raw sensor.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SensorType.Touch">
<summary>
Touch sensor (default mode is boolean).
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SensorType.Temperatur">
<summary>
Temperature sensor (default mode is temperature in 癈).
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SensorType.Light">
<summary>
Light sensor (default mode is percentage).
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SensorType.Rotation">
<summary>
Rotation sensor (default mode is angle).
</summary>
</member>
<member name="T:AForge.Robotics.Lego.RCXBrick.SensorMode">
<summary>
Enumeration of RCX brick sensor modes.
</summary>
<remarks><para>Use <see cref="M:AForge.Robotics.Lego.RCXBrick.SetSensorMode(AForge.Robotics.Lego.RCXBrick.Sensor,AForge.Robotics.Lego.RCXBrick.SensorMode)"/> method to set RCX sensor's mode.</para></remarks>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SensorMode.Raw">
<summary>
Raw mode - value in [0, 1023].
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SensorMode.Boolean">
<summary>
Boolean - either 0 or 1.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SensorMode.EdgeCount">
<summary>
Number of boolean transitions.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SensorMode.PulseCount">
<summary>
Number of boolean transitions divided by two.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SensorMode.Percentage">
<summary>
Raw value scaled to [0, 100].
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SensorMode.TemperatureC">
<summary>
Temperature in 癈 - 1/10ths of a degree, [-19.8, 69.5].
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SensorMode.TemperatureF">
<summary>
Temperature in 癋 - 1/10ths of a degree, [-3.6, 157.1].
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.SensorMode.Angle">
<summary>
Angle - 1/16ths of a rotation, represented as a signed short.
</summary>
</member>
<member name="T:AForge.Robotics.Lego.RCXBrick.Motor">
<summary>
Enumeration of RCX brick motor ports.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.Motor.A">
<summary>
Motor A.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.Motor.B">
<summary>
Motor B.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.Motor.C">
<summary>
Motor C.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.Motor.AB">
<summary>
Motors A and B.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.Motor.AC">
<summary>
Motors A and C.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.Motor.BC">
<summary>
Motors B and C.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.Motor.ABC">
<summary>
Motors A, B and C.
</summary>
</member>
<member name="F:AForge.Robotics.Lego.RCXBrick.Motor.All">
<summary>
All motors (A, B and C).
</summary>
</member>
<member name="P:AForge.Robotics.Lego.RCXBrick.IsConnected">
<summary>
Check if connection to RCX brick is established.
</summary>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.#ctor">
<summary>
Initializes a new instance of the <see cref="T:AForge.Robotics.Lego.RCXBrick"/> class.
</summary>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.Finalize">
<summary>
Destroys the instance of the <see cref="T:AForge.Robotics.Lego.RCXBrick"/> class.
</summary>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.Connect(AForge.Robotics.Lego.RCXBrick.IRTowerType)">
<summary>
Connect to Lego RCX brick.
</summary>
<param name="towerType">Type of IR tower to use for communication with RCX brick.</param>
<returns>Returns <b>true</b> on successful connection or <b>false</b>
otherwise.</returns>
<remarks>If connection to RCX brick was established before the call, existing connection will be reused.
If it is required to force reconnection, then <see cref="M:AForge.Robotics.Lego.RCXBrick.Disconnect"/> method should be called before.
</remarks>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.Disconnect">
<summary>
Disconnnect from Lego RCX brick.
</summary>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.IsAlive">
<summary>
Check if the RCX brick is alive and responds to messages.
</summary>
<returns>Returns <b>true</b> if device is alive or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.PlaySound(AForge.Robotics.Lego.RCXBrick.SoundType)">
<summary>
Play one of supported sounds.
</summary>
<param name="type">Sound type to play.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.PlayTone(System.Int16,System.Byte)">
<summary>
Play tone of specified frequency.
</summary>
<param name="frequency">Tone frequency in Hz.</param>
<param name="duration">Tone duration in 1/100ths of a second.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.GetVersion(System.String@,System.String@)">
<summary>
Get version information of RCX brick.
</summary>
<param name="romVersion">ROM version number.</param>
<param name="firmwareVersion">Firmware version number.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.GetBatteryPower(System.Int32@)">
<summary>
Get battery power of RCX brick.
</summary>
<param name="power">RCX brick's battery power in millivolts.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.SetTime(System.Byte,System.Byte)">
<summary>
Set current time for the RCX brick.
</summary>
<param name="hours">Hours, [0..23].</param>
<param name="minutes">Minutes, [0..59].</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.PowerOff">
<summary>
Turn off the RCX brick.
</summary>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.GetSensorValue(AForge.Robotics.Lego.RCXBrick.Sensor,System.Int16@)">
<summary>
Get sensor's value.
</summary>
<param name="sensor">Sensor to get value of.</param>
<param name="value">Retrieved sensor's value (units depend on current
<see cref="T:AForge.Robotics.Lego.RCXBrick.SensorType">sensor's type</see> and <see cref="T:AForge.Robotics.Lego.RCXBrick.SensorMode">mode</see>).</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.SetSensorType(AForge.Robotics.Lego.RCXBrick.Sensor,AForge.Robotics.Lego.RCXBrick.SensorType)">
<summary>
Set sensor's type.
</summary>
<param name="sensor">Sensor to set type of.</param>
<param name="type">Sensor type to set.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.SetSensorMode(AForge.Robotics.Lego.RCXBrick.Sensor,AForge.Robotics.Lego.RCXBrick.SensorMode)">
<summary>
Set sensor's mode.
</summary>
<param name="sensor">Sensor to set mode of.</param>
<param name="mode">Sensor mode to set.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.ClearSensor(AForge.Robotics.Lego.RCXBrick.Sensor)">
<summary>
Clear the counter associated with the specified sensor by setting it to a value of zero.
</summary>
<param name="sensor">Sensor to clear value of.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.SetMotorOn(AForge.Robotics.Lego.RCXBrick.Motor,System.Boolean)">
<summary>
Turn on/off specified motors.
</summary>
<param name="motors">Motors to turn on/off.</param>
<param name="on">True to turn motors on, otherwise false.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.SetMotorPower(AForge.Robotics.Lego.RCXBrick.Motor,System.Byte)">
<summary>
Set power of specified motors.
</summary>
<param name="motors">Motors to set power of.</param>
<param name="power">Power level to set, [0..7].</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.SetMotorDirection(AForge.Robotics.Lego.RCXBrick.Motor,System.Boolean)">
<summary>
Set direction of specified motors.
</summary>
<param name="motors">Motors to set direction of.</param>
<param name="isForward">True to set forward direction, false to set backward.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.SetTransmitterRange(System.Boolean)">
<summary>
Set IR transmitter's range.
</summary>
<param name="isLongRange">True if long range should be set, otherwise false.</param>
<returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
</member>
<member name="M:AForge.Robotics.Lego.RCXBrick.SendCommand(System.Byte[],System.Byte[],System.Int32)">
<summary>
Send command to Lego RCX brick and read reply.
</summary>
<param name="command">Command to send.</param>
<param name="reply">Buffer to receive reply into.</param>
<param name="expectedReplyLen">Expected reply length.</param>
<returns>Returns <b>true</b> if the command was sent successfully and reply was
received, otherwise <b>false</b>.</returns>
<exception cref="T:System.NullReferenceException">Communication can not be performed, because connection with
RCX brick was not established yet.</exception>
<exception cref="T:System.ArgumentException">Reply buffer size is smaller than the reply data size.</exception>
<exception cref="T:System.ApplicationException">Reply does not correspond to command (first byte of reply
should be complement (bitwise NOT) to the first byte of command orred with 0x08).</exception>
</member>
</members>
</doc>