Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 11 additions & 6 deletions src/hcr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,31 +32,31 @@
}; */

HCRVocalizer::HCRVocalizer(const uint8_t addr, TwoWire &i2c)
: _i2caddr(addr), _i2c(&i2c), _serialBaud(400000)
: _i2caddr(addr), _i2c(&i2c), _serialBaud(400000), _wavPlayDelay(HCR_WAV_PLAY_DELAY)
{
connectionType=0x03;
}

HCRVocalizer::HCRVocalizer(const uint8_t addr, TwoWire &i2c, int baud)
: _i2caddr(addr), _i2c(&i2c), _serialBaud(baud)
: _i2caddr(addr), _i2c(&i2c), _serialBaud(baud), _wavPlayDelay(HCR_WAV_PLAY_DELAY)
{
connectionType=0x03;
}

HCRVocalizer::HCRVocalizer(HardwareSerial *conn,int baud)
: _serial(conn), _serialBaud(baud)
: _serial(conn), _serialBaud(baud), _wavPlayDelay(HCR_WAV_PLAY_DELAY)
{
connectionType=0x01;
}

HCRVocalizer::HCRVocalizer(SoftwareSerial *conn,int baud)
: _softserial(conn), _serialBaud(baud)
: _softserial(conn), _serialBaud(baud), _wavPlayDelay(HCR_WAV_PLAY_DELAY)
{
connectionType=0x02;
}

HCRVocalizer::HCRVocalizer(int rx, int tx,int baud)
: _serialBaud(9600)
: _serialBaud(9600), _wavPlayDelay(HCR_WAV_PLAY_DELAY)
{
#if defined(ARDUINO_ARCH_AVR) || defined(ARDUINO_ARCH_PIC32)
connectionType=0x02;
Expand Down Expand Up @@ -455,7 +455,7 @@ void HCRVocalizer::PlayWAV(int ch,int fileNumber)

void HCRVocalizer::PlayWAV(int ch,String file) {
if (millis() > lastPlayWAV) {
lastPlayWAV = millis() + 5000;
lastPlayWAV = millis() + _wavPlayDelay;
char channel[] = "VAB";
String msg = "C" + ToString((char) channel[ch]) + file + ",QP" + ToString((char) channel[ch]);
sendCommand(msg);
Expand Down Expand Up @@ -571,6 +571,11 @@ float HCRVocalizer::getVolume(int ch)
return volume;
}

void HCRVocalizer::setWAVPlayDelay(unsigned long delay)
{
_wavPlayDelay = delay;
}

String HCRVocalizer::getValue(String data, char separator, int index)
{
int found = 0;
Expand Down
12 changes: 12 additions & 0 deletions src/hcr.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@
#define HCR_I2C_RATE 400000
#endif

#ifndef HCR_WAV_PLAY_DELAY
#define HCR_WAV_PLAY_DELAY 5000
#endif

#define CONN_SERIAL0 0x00 //"Serial"
#define CONN_SERIAL1 0x01 //"Serial1"
#define CONN_SERIAL2 0x02 //"Serial2"
Expand Down Expand Up @@ -307,6 +311,13 @@ class HCRVocalizer
float getVolume(int e);
void getUpdate(void);

/**
* @brief Sets the delay between WAV file plays (in milliseconds)
*
* @param delay the delay in milliseconds (default: 5000)
*/
void setWAVPlayDelay(unsigned long delay);

void dfPlayer();

private:
Expand Down Expand Up @@ -347,6 +358,7 @@ class HCRVocalizer
int Volume_V;
int Volume_A;
int Volume_B;
unsigned long _wavPlayDelay;
};

using namespace std;
Expand Down