mirror of
https://github.com/preble/libpinproc
synced 2026-02-24 18:25:23 +01:00
Added 'now' param to patter functions.
This commit is contained in:
@@ -102,7 +102,7 @@ void ConfigureSternFlipperSwitchRule (PRHandle proc, int swNum, int mainCoilNum,
|
||||
|
||||
// Flipper on rules
|
||||
PRDriverGetState(proc, mainCoilNum, &drivers[0]);
|
||||
PRDriverStatePatter(&drivers[0],patterOnTime,patterOffTime,pulseTime); // Pulse coil for 34ms.
|
||||
PRDriverStatePatter(&drivers[0],patterOnTime,patterOffTime,pulseTime,true); // Pulse coil for 34ms.
|
||||
sw.notifyHost = false;
|
||||
sw.reloadActive = false;
|
||||
PRSwitchUpdateRule(proc, swNum, kPREventTypeSwitchClosedNondebounced, &sw, drivers, numDriverRules, true);
|
||||
|
||||
@@ -271,17 +271,12 @@ PINPROC_API PRResult PRDriverSchedule(PRHandle handle, uint8_t driverNum, uint32
|
||||
* Assigns a pitter-patter schedule (repeating on/off) to the given driver.
|
||||
* This function is provided for convenience. See PRDriverStatePatter() for a full description.
|
||||
*/
|
||||
PINPROC_API PRResult PRDriverPatter(PRHandle handle, uint8_t driverNum, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t originalOnTime);
|
||||
PINPROC_API PRResult PRDriverPatter(PRHandle handle, uint8_t driverNum, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t originalOnTime, bool_t now);
|
||||
/**
|
||||
* Assigns a pitter-patter schedule (repeating on/off) to the given driver on for the given duration.
|
||||
* This function is provided for convenience. See PRDriverStatePulsedPatter() for a full description.
|
||||
*/
|
||||
PINPROC_API PRResult PRDriverPulsedPatter(PRHandle handle, uint8_t driverNum, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t originalOnTime);
|
||||
/**
|
||||
* Assigns a pitter-patter schedule (repeating on/off) to the given driver for the given duration.
|
||||
* This function is provided for convenience. See PRDriverStatePatter() for a full description.
|
||||
*/
|
||||
PINPROC_API PRResult PRDriverPulsedPatter(PRHandle handle, uint8_t driverNum, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t originalOnTime);
|
||||
PINPROC_API PRResult PRDriverPulsedPatter(PRHandle handle, uint8_t driverNum, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t originalOnTime, bool_t now);
|
||||
/**
|
||||
* Prepares an Aux Command to drive the Aux bus.
|
||||
* This function is provided for convenience.
|
||||
@@ -342,14 +337,14 @@ PINPROC_API void PRDriverStateSchedule(PRDriverState *driverState, uint32_t sche
|
||||
*
|
||||
* Use originalOnTime to pulse the driver for a number of milliseconds before the pitter-patter schedule begins.
|
||||
*/
|
||||
PINPROC_API void PRDriverStatePatter(PRDriverState *driverState, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t originalOnTime);
|
||||
PINPROC_API void PRDriverStatePatter(PRDriverState *driverState, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t originalOnTime, bool_t now);
|
||||
|
||||
/**
|
||||
* @brief Changes the given #PRDriverState to reflect a pitter-patter schedule state.
|
||||
* Just like the regular Patter above, but PulsePatter only drives the patter
|
||||
* scheduled for the given number of milliseconds before disabling the driver.
|
||||
*/
|
||||
PINPROC_API void PRDriverStatePulsedPatter(PRDriverState *driverState, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t patterTime);
|
||||
PINPROC_API void PRDriverStatePulsedPatter(PRDriverState *driverState, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t patterTime, bool_t now);
|
||||
|
||||
/**
|
||||
* Write Aux Port commands into the Aux Port command memory.
|
||||
|
||||
@@ -207,18 +207,18 @@ PRResult PRDriverSchedule(PRHandle handle, uint8_t driverNum, uint32_t schedule,
|
||||
PRDriverStateSchedule(&driver, schedule, cycleSeconds, now);
|
||||
return handleAsDevice->DriverUpdateState(&driver);
|
||||
}
|
||||
PRResult PRDriverPatter(PRHandle handle, uint8_t driverNum, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t originalOnTime)
|
||||
PRResult PRDriverPatter(PRHandle handle, uint8_t driverNum, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t originalOnTime, bool_t now)
|
||||
{
|
||||
PRDriverState driver;
|
||||
handleAsDevice->DriverGetState(driverNum, &driver);
|
||||
PRDriverStatePatter(&driver, millisecondsOn, millisecondsOff, originalOnTime);
|
||||
PRDriverStatePatter(&driver, millisecondsOn, millisecondsOff, originalOnTime, now);
|
||||
return handleAsDevice->DriverUpdateState(&driver);
|
||||
}
|
||||
PRResult PRDriverPulsedPatter(PRHandle handle, uint8_t driverNum, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t duration)
|
||||
PRResult PRDriverPulsedPatter(PRHandle handle, uint8_t driverNum, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t duration, bool_t now)
|
||||
{
|
||||
PRDriverState driver;
|
||||
handleAsDevice->DriverGetState(driverNum, &driver);
|
||||
PRDriverStatePulsedPatter(&driver, millisecondsOn, millisecondsOff, duration);
|
||||
PRDriverStatePulsedPatter(&driver, millisecondsOn, millisecondsOff, duration, now);
|
||||
return handleAsDevice->DriverUpdateState(&driver);
|
||||
}
|
||||
PRResult PRDriverAuxSendCommands(PRHandle handle, PRDriverAuxCommand * commands, uint8_t numCommands, uint8_t startingAddr)
|
||||
@@ -321,11 +321,11 @@ void PRDriverStateSchedule(PRDriverState *driver, uint32_t schedule, uint8_t cyc
|
||||
driver->patterEnable = false;
|
||||
driver->futureEnable = false;
|
||||
}
|
||||
void PRDriverStatePatter(PRDriverState *driver, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t originalOnTime)
|
||||
void PRDriverStatePatter(PRDriverState *driver, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t originalOnTime, bool_t now)
|
||||
{
|
||||
driver->state = true;
|
||||
driver->timeslots = 0;
|
||||
driver->waitForFirstTimeSlot = false;
|
||||
driver->waitForFirstTimeSlot = !now;
|
||||
driver->outputDriveTime = originalOnTime;
|
||||
driver->patterOnTime = millisecondsOn;
|
||||
driver->patterOffTime = millisecondsOff;
|
||||
@@ -333,11 +333,11 @@ void PRDriverStatePatter(PRDriverState *driver, uint8_t millisecondsOn, uint8_t
|
||||
driver->futureEnable = false;
|
||||
}
|
||||
|
||||
void PRDriverStatePulsedPatter(PRDriverState *driver, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t patterTime)
|
||||
void PRDriverStatePulsedPatter(PRDriverState *driver, uint8_t millisecondsOn, uint8_t millisecondsOff, uint8_t patterTime, bool_t now)
|
||||
{
|
||||
driver->state = false;
|
||||
driver->timeslots = 0;
|
||||
driver->waitForFirstTimeSlot = false;
|
||||
driver->waitForFirstTimeSlot = !now;
|
||||
driver->outputDriveTime = patterTime;
|
||||
driver->patterOnTime = millisecondsOn;
|
||||
driver->patterOffTime = millisecondsOff;
|
||||
|
||||
Reference in New Issue
Block a user