MecanumDrive::MecanumDrive( UINT32 frontLeftMotorChannel,
	UINT32 frontRightMotorChannel,
	UINT32 rearLeftMotorChannel,
	UINT32 rearRightMotorChannel,
	UINT32 frontLeftEncoderChannelA,
	UINT32 frontLeftEncoderChannelB,
	UINT32 frontRightEncoderChannelA,
	UINT32 frontRightEncoderChannelB,
	UINT32 rearLeftEncoderChannelA,
	UINT32 rearLeftEncoderChannelB,
	UINT32 rearRightEncoderChannelA,
	UINT32 rearRightEncoderChannelB,
	UINT32 gyroChannel,
	UINT32 accelerometerChannelX,
	UINT32 accelerometerChannelY )
	: m_frontLeftMotor( frontLeftMotorChannel)
	, m_frontRightMotor( frontRightMotorChannel)
	, m_rearLeftMotor( rearLeftMotorChannel)
	, m_rearRightMotor( rearRightMotorChannel)
	, m_frontLeftEncoder(4,frontLeftEncoderChannelA,4,frontLeftEncoderChannelB)
	, m_frontRightEncoder(4,frontRightEncoderChannelA,4,frontRightEncoderChannelB)
	, m_rearLeftEncoder(4,rearLeftEncoderChannelA,4,rearLeftEncoderChannelB)
	, m_rearRightEncoder(4,rearRightEncoderChannelA,4,rearRightEncoderChannelB)
	, m_gyroscope(1,gyroChannel)
	, m_accelerometerX(1,accelerometerChannelX)
	, m_accelerometerY(1,accelerometerChannelY)
{
	InitializeSensors();
	RestartSensors();
}
int
LightHouseHardware::Initialize(
    LightHouseLight* light,
    LightHouseSensors* sensors
    )
{
    m_whitePin = light->whitePin;

    m_redPin = light->redPin;
    m_greenPin = light->greenPin;
    m_bluePin = light->bluePin;

    // Setup our application hardware pins
    if (m_whitePin != (-1)) {
        pinMode(m_whitePin, OUTPUT);
    }

    if (m_redPin != (-1)) {
        pinMode(m_redPin, OUTPUT);

        // Set test short cut
        m_rgbEnabled = true;
    }

    if (m_greenPin != (-1)) {
        pinMode(m_greenPin, OUTPUT);
        m_rgbEnabled = true;
    }

    if (m_bluePin != (-1)) {
        pinMode(m_bluePin, OUTPUT);
        m_rgbEnabled = true;
    }

    //
    // Setup environmental sensors
    //
    InitializeSensors(sensors);

    //
    // NMEA 0183 streaming sensors must be deferred until
    // the MenloDweet* channel is registered by the application
    // later in initialization.
    //

    //
    // Note: The Dweet Application is responsible for getting
    // any configuration from the MenloConfigStore (EEPROM)
    // and setting states of the hardware.
    //

    return 0;
}