119 int16_t result = _asosw.sendPacket(tx);
142 int16_t result = _asosw.sendPacket(tx);
168 return(_asosw.sendPacket(tx));
195 return(_asosw.sendPacket(tx));
214 return(_asosw.sendPacket(tx));
237 return(_asosw.sendPacket(tx));
261 SW_LE16(maximumChangecounts),0x55,
263 int16_t result = _asosw.sendPacket(tx);
274 SW_LE16(maximumDecrementCounts),0x55,0x55
276 int16_t result = _asosw.sendPacket(tx);
287 (uint8_t)samplePeriod,
290 return(_asosw.sendPacket(tx));
317 int16_t result = _asosw.sendPacket(tx);
331 return(_asosw.sendPacket(tx));
349 int16_t
writeHysteresis(uint16_t lowLimit, uint16_t lowOutputValue, uint16_t highLimit, uint16_t highOutputValue, uint16_t initialOutputValue)
359 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
370 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
380 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
405 int16_t
writeRamp(uint16_t slowIncrement, uint16_t incrementThreshold, uint16_t fastIncrement,
Period samplePeriod,
RampMode rampMode)
412 (uint8_t) samplePeriod,
415 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
426 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
434 (uint8_t) rampMode, 0x55
436 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
475 int16_t
writePID(uint16_t kp, uint16_t ki, uint16_t kd,uint16_t target,
Period samplePeriod, uint8_t targetPin = 255,
bool biDirectional =
false)
485 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
495 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
503 (uint8_t)samplePeriod,
506 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
515 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
526 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
546 0x55, 0x55,0x55,0x55,
549 if (_asosw.sendPacket(tx, rx) >= 0)
551 return(rx[4] + (uint16_t)rx[5] * 256);
566 (byte)(target & 0xFF),(byte)(target >> 8),0x55,0x55
568 return _asosw.sendPacket(tx);
580 _asosw.sendPacket(tx, rx);
582 memcpy(&returnVal,&rx[4],4);
598 _asosw.sendPacket(tx, rx);
601 memcpy(&returnVal,&rx[4],4);
615 _asosw.sendPacket(tx, rx);
618 memcpy(&returnVal,&rx[4],4);
632 _asosw.sendPacket(tx, rx);
635 memcpy(&returnVal,&rx[4],4);
649 _asosw.sendPacket(tx, rx);
652 memcpy(&returnVal,&rx[4],4);
666 _asosw.sendPacket(tx, rx);
669 memcpy(&returnVal,&rx[4],4);
683 _asosw.sendPacket(tx, rx);
685 return ((uint16_t)(rx[4] + 256 * rx[5]));
706 SW_LE16(IndexInUserMemory),0x55,0x55 };
707 return _asosw.sendPacket(tx);
711 virtual uint8_t
pin() = 0;
#define SW_LE16(_a)
Convert a uint16_t to two bytes in little endian format for array initialization.
@ CONFIGURE_PIN_OUTPUTSCALE
(210)
int16_t writeScalingEnabled(bool enabled, uint8_t sourcePin)
Enable scaling and set which pin or public data is used as the input source.
int16_t writeTimeout(uint16_t timeout_mS, uint16_t timeoutOutputValue)
Enable a timeout value which will cause the output to go to a default value if not updated.
int16_t writeHysteresis(uint16_t lowLimit, uint16_t lowOutputValue, uint16_t highLimit, uint16_t highOutputValue, uint16_t initialOutputValue)
Controls the output based on hystersis control.
uint16_t ReadLastTarget()
int16_t Enable2DLookupOutputScaling(uint16_t IndexInUserMemory)
Set Up 2D Lookup Output Scaling.
SerialWombatAbstractScaledOutput(SerialWombatChip &sw)
Constructor for the SerialWombatAbstractScaledOutput Class.
int16_t writeOutputScaling(uint16_t outputMin, uint16_t outputMax)
Reduces the output range from 0 to 65535 to user specified range.
int16_t writeRateControl(Period samplePeriod, uint16_t maximumChangecounts, uint16_t maximumDecrementCounts=0)
int16_t writeRamp(uint16_t slowIncrement, uint16_t incrementThreshold, uint16_t fastIncrement, Period samplePeriod, RampMode rampMode)
Configure the scaled output block into Ramp control mode.
int32_t PIDGetLastProportionalEffort()
int16_t writeScalingTargetValue(uint16_t target)
The target input value for PID control.
virtual uint8_t pin()=0
Facilitates inheritance.
int16_t write1stOrderFiltering(Period sampleRate, uint16_t filterConstant)
uint16_t readLastOutputValue()
Request Last Output Value.
int32_t PIDGetLastEffort()
int16_t writeInputScaling(uint16_t inputMin, uint16_t inputMax)
Scale incoming values to a range of 0 to 65535.
int32_t PIDGetLastDerivativeEffort()
int32_t PIDGetLastIntegratorEffort()
int16_t writeScalingTargetValueResetIntegrator(uint16_t target)
int16_t writePID(uint16_t kp, uint16_t ki, uint16_t kd, uint16_t target, Period samplePeriod, uint8_t targetPin=255, bool biDirectional=false)
Configure the scaled output block into PID control mode.
int16_t writeScalingInvertedInput(bool inverted)
if enabled subtract the input value from 65535 before doing any other processing.
int32_t PIDGetLastIntegrator()
int32_t PIDGetLastError()
virtual uint8_t swPinModeNumber()=0
Facilitates inheritance.
Class for a Serial Wombat chip. Each Serial Wombat chip on a project should have its own instance.