1
0
mirror of https://github.com/preble/libpinproc synced 2026-02-24 18:25:23 +01:00

Added support for Aux Port and Pulsed Patter

This commit is contained in:
gstellenberg
2010-04-04 14:19:43 -05:00
parent ed7f0153f0
commit f5754d961b
7 changed files with 255 additions and 19 deletions

View File

@@ -186,6 +186,41 @@ PR_EXPORT PRResult PRDriverPatter(PRHandle handle, uint16_t driverNum, uint16_t
PRDriverStatePatter(&driver, millisecondsOn, millisecondsOff, originalOnTime);
return handleAsDevice->DriverUpdateState(&driver);
}
PR_EXPORT PRResult PRDriverAuxSendCommands(PRHandle handle, PRDriverAuxCommand * commands, uint8_t numCommands, uint8_t startingAddr)
{
return handleAsDevice->DriverAuxSendCommands(commands, numCommands, startingAddr);
}
PR_EXPORT void PRDriverAuxPrepareOutput(PRDriverAuxCommand *auxCommand, uint8_t data, uint8_t extraData, bool_t useExtraData, uint8_t enables, bool_t muxEnables)
{
auxCommand->active = true;
auxCommand->data = data;
auxCommand->extraData = extraData;
auxCommand->enables = enables;
auxCommand->muxEnables = muxEnables;
auxCommand->useExtraData = useExtraData;
auxCommand->command = kPRDriverAuxCmdOutput;
}
PR_EXPORT void PRDriverAuxPrepareDelay(PRDriverAuxCommand *auxCommand, uint16_t delayTime)
{
auxCommand->active = true;
auxCommand->delayTime = delayTime;
auxCommand->command = kPRDriverAuxCmdDelay;
}
PR_EXPORT void PRDriverAuxPrepareJump(PRDriverAuxCommand *auxCommand, uint8_t jumpAddr)
{
auxCommand->active = true;
auxCommand->jumpAddr = jumpAddr;
auxCommand->command = kPRDriverAuxCmdJump;
}
PR_EXPORT void PRDriverAuxPrepareDisable(PRDriverAuxCommand *auxCommand)
{
auxCommand->active = false;
}
PR_EXPORT PRResult PRDriverWatchdogTickle(PRHandle handle)
{
return handleAsDevice->DriverWatchdogTickle();
@@ -223,7 +258,7 @@ PR_EXPORT void PRDriverStateSchedule(PRDriverState *driver, uint32_t schedule, u
}
PR_EXPORT void PRDriverStatePatter(PRDriverState *driver, uint16_t millisecondsOn, uint16_t millisecondsOff, uint16_t originalOnTime)
{
driver->state = originalOnTime != 0;
driver->state = true;
driver->timeslots = 0;
driver->waitForFirstTimeSlot = false;
driver->outputDriveTime = originalOnTime;
@@ -232,6 +267,17 @@ PR_EXPORT void PRDriverStatePatter(PRDriverState *driver, uint16_t millisecondsO
driver->patterEnable = true;
}
PR_EXPORT void PRDriverStatePulsedPatter(PRDriverState *driver, uint16_t millisecondsOn, uint16_t millisecondsOff, uint16_t patterTime)
{
driver->state = false;
driver->timeslots = 0;
driver->waitForFirstTimeSlot = false;
driver->outputDriveTime = patterTime;
driver->patterOnTime = millisecondsOn;
driver->patterOffTime = millisecondsOff;
driver->patterEnable = true;
}
PR_EXPORT uint16_t PRDecode(PRMachineType machineType, const char *str)
{
uint16_t x;