void MD_TCS230::setFrequency(uint8_t f)
// set the sensor frequency prescaler (user function)
// saves the value the user sets so we can return to it
{
	_freqSet = f;
	setFrequency2(f);
}
void FrequencyAgility::setFrequency(uint8_t index, uint8_t freq) {
    if (index == 1) {
        setFrequency1(freq);
    } else if (index == 2) {
        setFrequency2(freq);
    } else {
        setFrequency3(freq);
    }
}
void MD_TCS230::begin()
{
#define	SET_OUTPUT(x)	if (x!=NO_PIN) pinMode(x,OUTPUT)

	SET_OUTPUT(_S0);
	SET_OUTPUT(_S1);
	SET_OUTPUT(_S2);
	SET_OUTPUT(_S3);
	SET_OUTPUT(_OE);

	setEnable(false);
	setFrequency2(_freqSet);

#undef SET_OUTPUT
	DUMPS("\nLibrary begin initialised");
}
void MD_TCS230::setEnable(bool b)
// enable the sensor output (b=true)
// can be done by toggling OE (preferred) or by setting the frequency output
{
	if (b)
		DUMPS("\nEn");
	else
		DUMPS("\nDis");
	DUMPS("abling using ");
	if (_OE != NO_PIN)
	{
		DUMPS("OE");
		digitalWrite(_OE, (b) ? LOW : HIGH);	// reverse logic
	}
	else
	{
		DUMPS("FREQ");
		setFrequency2((b) ? _freqSet : TCS230_FREQ_OFF);
	}
}
FrequencyAgility::FrequencyAgility(uint8_t channel, uint8_t freq1, uint8_t freq2, uint8_t freq3) : AntRequest(FREQUENCY_AGILITY) {
    setChannel(channel);
    setFrequency1(freq1);
    setFrequency2(freq2);
    setFrequency3(freq3);
}