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));
262 SW_LE16(maximumChangecounts),0x55,
264 int16_t result = _asosw.sendPacket(tx);
270 if (maximumDecrementCounts > 0)
276 SW_LE16(maximumDecrementCounts),0x55,0x55
278 int16_t result = _asosw.sendPacket(tx);
289 (uint8_t)samplePeriod,
292 return(_asosw.sendPacket(tx));
319 int16_t result = _asosw.sendPacket(tx);
330 (uint8_t)samplePeriod,
333 return(_asosw.sendPacket(tx));
351 int16_t
writeHysteresis(uint16_t lowLimit, uint16_t lowOutputValue, uint16_t highLimit, uint16_t highOutputValue, uint16_t initialOutputValue)
361 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
372 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
382 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
407 int16_t
writeRamp(uint16_t slowIncrement, uint16_t incrementThreshold, uint16_t fastIncrement,
Period samplePeriod,
RampMode rampMode)
414 (uint8_t) samplePeriod,
417 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
428 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
436 (uint8_t) rampMode, 0x55
438 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
479 int16_t
writePID(uint16_t kp, uint16_t ki, uint16_t kd,uint16_t target,
Period samplePeriod, uint8_t targetPin = 255,
bool biDirectional =
false)
489 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
499 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
507 (uint8_t)samplePeriod,
510 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
519 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
530 int16_t result = _asosw.sendPacket(tx);
if (result < 0) {
return(result); }
550 0x55, 0x55,0x55,0x55,
553 if (_asosw.sendPacket(tx, rx) >= 0)
555 return(rx[4] + (uint16_t)rx[5] * 256);
570 (byte)(target & 0xFF),(byte)(target >> 8),0x55,0x55
572 return _asosw.sendPacket(tx);
584 _asosw.sendPacket(tx, rx);
586 memcpy(&returnVal,&rx[4],4);
602 _asosw.sendPacket(tx, rx);
605 memcpy(&returnVal,&rx[4],4);
619 _asosw.sendPacket(tx, rx);
622 memcpy(&returnVal,&rx[4],4);
636 _asosw.sendPacket(tx, rx);
639 memcpy(&returnVal,&rx[4],4);
653 _asosw.sendPacket(tx, rx);
656 memcpy(&returnVal,&rx[4],4);
670 _asosw.sendPacket(tx, rx);
673 memcpy(&returnVal,&rx[4],4);
687 _asosw.sendPacket(tx, rx);
689 return ((uint16_t)(rx[4] + 256 * rx[5]));
710 SW_LE16(IndexInUserMemory),0x55,0x55 };
711 return _asosw.sendPacket(tx);
715 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)
Controls how fast an ouput can change in counts.
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 samplePeriod, uint16_t filterConstant)
Controls how fast an ouput can change based on filtering.
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.