package lejos.nxt; /* * WARNING: THIS CLASS IS SHARED BETWEEN THE classes AND pccomms PROJECTS. * DO NOT EDIT THE VERSION IN pccomms AS IT WILL BE OVERWRITTEN WHEN THE PROJECT IS BUILT. */ /** * Abstraction for a NXT sound sensor. * */ public class SoundSensor implements SensorConstants { ADSensorPort port; /** * Create a sound sensor object attached to the specified port. * The sensor will be set to DB mode. * @param port port, e.g. Port.S1 */ public SoundSensor(ADSensorPort port) { this.port = port; port.setTypeAndMode(TYPE_SOUND_DB, MODE_PCTFULLSCALE); } /** * Create a sound sensor object attached to the specified port, * and sets DB or DBA mode. * @param port port, e.g. Port.S1 * @param dba true to set DBA mode, false for DB mode. */ public SoundSensor(ADSensorPort port, boolean dba) { this.port = port; port.setTypeAndMode( (dba ? TYPE_SOUND_DBA : TYPE_SOUND_DB), MODE_PCTFULLSCALE); } /** * Set DB or DBA mode. * @param dba true to set DBA mode, false for DB mode. */ public void setDBA(boolean dba) { port.setType((dba ? TYPE_SOUND_DBA : TYPE_SOUND_DB)); } /** * Read the current sensor value. * @return value as a percentage. */ public int readValue() { return ((1023 - port.readRawValue()) * 100/ 1023); } }