#ifndef SOUND_SENSOR_H
#define SOUND_SENSOR_H
#include "Sensor.h"
#include "connection.h"
/**
* Enumeration for different NXT sound sensor modes
* @see Sound
*/
enum Sound_mode{
/**
* normal decibel scale
*/
DB_MODE = 10,
/**
* decibel scale which is less sensitive to very high and very low frequencie (A scale)
*/
DBA_MODE = 11
};
using namespace std;
/**
* Class for NXT sound sensor
*/
class Sound : public Sensor{
public:
/**
* Constructor for the sound sensor (percent mode and DBA_MODE is default)
* @param port [which sensor port to use]
* @param *connection [attach a connection]
* @param sound_mode [set the sound mode to either DB_MODE or DBA_MODE (default is DBA_MODE)]
*/
Sound::Sound(Sensor_port port, Connection* connection, Sound_mode sound_mode=DBA_MODE):Sensor(port, connection, SOUND_DBA, PERCENT_MODE){
if(sound_mode == DB_MODE){
sensor_type = SOUND_DB;
}
}
Sound::~Sound(){}
/**
* Get the sensor reading as a string
* (init method will be called if the sensor has not been initialized)
* @return sensor reading as a string + either " dBA" or " dB"
*/
string Sound::print(){
if(sensor_type == SOUND_DBA){
return Sensor::print() + " dBA";
}
else{
return Sensor::print() + " dB";
}
}
};
#endif