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
|
// Flipper on rules
|
||||||
PRDriverGetState(proc, mainCoilNum, &drivers[0]);
|
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.notifyHost = false;
|
||||||
sw.reloadActive = false;
|
sw.reloadActive = false;
|
||||||
PRSwitchUpdateRule(proc, swNum, kPREventTypeSwitchClosedNondebounced, &sw, drivers, numDriverRules, true);
|
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.
|
* Assigns a pitter-patter schedule (repeating on/off) to the given driver.
|
||||||
* This function is provided for convenience. See PRDriverStatePatter() for a full description.
|
* 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.
|
* 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.
|
* 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);
|
PINPROC_API PRResult PRDriverPulsedPatter(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 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);
|
|
||||||
/**
|
/**
|
||||||
* Prepares an Aux Command to drive the Aux bus.
|
* Prepares an Aux Command to drive the Aux bus.
|
||||||
* This function is provided for convenience.
|
* 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.
|
* 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.
|
* @brief Changes the given #PRDriverState to reflect a pitter-patter schedule state.
|
||||||
* Just like the regular Patter above, but PulsePatter only drives the patter
|
* Just like the regular Patter above, but PulsePatter only drives the patter
|
||||||
* scheduled for the given number of milliseconds before disabling the driver.
|
* 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.
|
* 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);
|
PRDriverStateSchedule(&driver, schedule, cycleSeconds, now);
|
||||||
return handleAsDevice->DriverUpdateState(&driver);
|
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;
|
PRDriverState driver;
|
||||||
handleAsDevice->DriverGetState(driverNum, &driver);
|
handleAsDevice->DriverGetState(driverNum, &driver);
|
||||||
PRDriverStatePatter(&driver, millisecondsOn, millisecondsOff, originalOnTime);
|
PRDriverStatePatter(&driver, millisecondsOn, millisecondsOff, originalOnTime, now);
|
||||||
return handleAsDevice->DriverUpdateState(&driver);
|
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;
|
PRDriverState driver;
|
||||||
handleAsDevice->DriverGetState(driverNum, &driver);
|
handleAsDevice->DriverGetState(driverNum, &driver);
|
||||||
PRDriverStatePulsedPatter(&driver, millisecondsOn, millisecondsOff, duration);
|
PRDriverStatePulsedPatter(&driver, millisecondsOn, millisecondsOff, duration, now);
|
||||||
return handleAsDevice->DriverUpdateState(&driver);
|
return handleAsDevice->DriverUpdateState(&driver);
|
||||||
}
|
}
|
||||||
PRResult PRDriverAuxSendCommands(PRHandle handle, PRDriverAuxCommand * commands, uint8_t numCommands, uint8_t startingAddr)
|
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->patterEnable = false;
|
||||||
driver->futureEnable = 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->state = true;
|
||||||
driver->timeslots = 0;
|
driver->timeslots = 0;
|
||||||
driver->waitForFirstTimeSlot = false;
|
driver->waitForFirstTimeSlot = !now;
|
||||||
driver->outputDriveTime = originalOnTime;
|
driver->outputDriveTime = originalOnTime;
|
||||||
driver->patterOnTime = millisecondsOn;
|
driver->patterOnTime = millisecondsOn;
|
||||||
driver->patterOffTime = millisecondsOff;
|
driver->patterOffTime = millisecondsOff;
|
||||||
@@ -333,11 +333,11 @@ void PRDriverStatePatter(PRDriverState *driver, uint8_t millisecondsOn, uint8_t
|
|||||||
driver->futureEnable = false;
|
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->state = false;
|
||||||
driver->timeslots = 0;
|
driver->timeslots = 0;
|
||||||
driver->waitForFirstTimeSlot = false;
|
driver->waitForFirstTimeSlot = !now;
|
||||||
driver->outputDriveTime = patterTime;
|
driver->outputDriveTime = patterTime;
|
||||||
driver->patterOnTime = millisecondsOn;
|
driver->patterOnTime = millisecondsOn;
|
||||||
driver->patterOffTime = millisecondsOff;
|
driver->patterOffTime = millisecondsOff;
|
||||||
|
|||||||
Reference in New Issue
Block a user