/** \file
 *
 *  Contains the SensorModule class definition.
 *
 *  Copyright (c) 2007,2008,2009 MBARI
 *  MBARI Proprietary Information.  All Rights Reserved
 */

/** \defgroup modules_sensor Loadable Module: Sensor
 *
 *  The SensorModule provides components responsible for providing
 *  software-hardware-device communications for getting measurements
 *  from navigation-related sensor devices -- i.e., devices that
 *  measure the state of the vehicle and its trajectory, such as the
 *  AHRS, depth sensor, modems, and internal pressure, temperature,
 *  and humidity.
 */

#ifndef SENSORMODULE_H_
#define SENSORMODULE_H_

#include "module/Module.h"

/**
 *  The SensorModule provides components responsible for providing
 *  software-hardware-device communications for getting measurements
 *  from navigation-related sensor devices -- i.e., devices that
 *  measure the state of the vehicle and its trajectory, such as the
 *  AHRS, depth sensor, modems, and internal pressure, temperature,
 *  and humidity.
 *
 *  \ingroup modules_sensor
 */
class SensorModule : public Module
{
public:
    /// Constructor
    SensorModule();

    /// Destructor
    virtual ~SensorModule();

    void loadComponents( Logger& logger );

private:

};

/// Class factories

/// create_module must be implemented, following the
/// class implementation:
extern "C" Module* create_module()
{
    return new SensorModule();
}

/// destroy_module must be implemented, following the
/// class implementation:
extern "C" void destroy_module( Module* module )
{
    delete module;
}

#endif /*SENSORMODULE_H_*/
