public bool GetSensorValue( Sensor sensor, out SensorValues sensorValues )
{
byte[] command = new byte[3];
byte[] reply = new byte[16];
sensorValues = new SensorValues( );
// prepare message
command[0] = (byte) NXTCommandType.DirectCommand;
command[1] = (byte) NXTDirectCommand.GetInputValues;
command[2] = (byte) sensor;
if ( SendCommand( command, reply ) )
{
sensorValues.IsValid = ( reply[4] != 0 );
sensorValues.IsCalibrated = ( reply[5] != 0 );
sensorValues.SensorType = (SensorType) reply[6];
sensorValues.SensorMode = (SensorMode) reply[7];
sensorValues.Raw = (ushort) ( reply[8] | ( reply[9] << 8 ) );
sensorValues.Normalized = (ushort) ( reply[10] | ( reply[11] << 8 ) );
sensorValues.Scaled = (short) ( reply[12] | ( reply[13] << 8 ) );
sensorValues.Calibrated = (short) ( reply[14] | ( reply[15] << 8 ) );
return true;
}
return false;
}