added missing function is fixed timeslot task
This commit is contained in:
parent
f85ab2b300
commit
5b0758638b
@ -8,6 +8,7 @@
|
|||||||
#include "../../serviceinterface/ServiceInterface.h"
|
#include "../../serviceinterface/ServiceInterface.h"
|
||||||
|
|
||||||
#include <rtems/bspIo.h>
|
#include <rtems/bspIo.h>
|
||||||
|
#include <rtems/io.h>
|
||||||
#include <rtems/rtems/ratemon.h>
|
#include <rtems/rtems/ratemon.h>
|
||||||
#include <rtems/rtems/status.h>
|
#include <rtems/rtems/status.h>
|
||||||
#include <rtems/rtems/tasks.h>
|
#include <rtems/rtems/tasks.h>
|
||||||
@ -103,20 +104,23 @@ ReturnValue_t FixedTimeslotTask::checkSequence() const {
|
|||||||
return pst.checkSequence();
|
return pst.checkSequence();
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <rtems/io.h>
|
|
||||||
|
|
||||||
void FixedTimeslotTask::taskFunctionality() {
|
void FixedTimeslotTask::taskFunctionality() {
|
||||||
// A local iterator for the Polling Sequence Table is created to find the start time for the first entry.
|
/* A local iterator for the Polling Sequence Table is created to find the start time for
|
||||||
|
the first entry. */
|
||||||
FixedSlotSequence::SlotListIter it = pst.current;
|
FixedSlotSequence::SlotListIter it = pst.current;
|
||||||
|
|
||||||
//The start time for the first entry is read.
|
/* Initialize the PST with the correct calling task */
|
||||||
|
pst.intializeSequenceAfterTaskCreation();
|
||||||
|
|
||||||
|
/* The start time for the first entry is read. */
|
||||||
rtems_interval interval = RtemsBasic::convertMsToTicks(it->pollingTimeMs);
|
rtems_interval interval = RtemsBasic::convertMsToTicks(it->pollingTimeMs);
|
||||||
RTEMSTaskBase::setAndStartPeriod(interval,&periodId);
|
RTEMSTaskBase::setAndStartPeriod(interval,&periodId);
|
||||||
//The task's "infinite" inner loop is entered.
|
//The task's "infinite" inner loop is entered.
|
||||||
while (1) {
|
while (1) {
|
||||||
if (pst.slotFollowsImmediately()) {
|
if (pst.slotFollowsImmediately()) {
|
||||||
//Do nothing
|
//Do nothing
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
//The interval for the next polling slot is selected.
|
//The interval for the next polling slot is selected.
|
||||||
interval = RtemsBasic::convertMsToTicks(this->pst.getIntervalToNextSlotMs());
|
interval = RtemsBasic::convertMsToTicks(this->pst.getIntervalToNextSlotMs());
|
||||||
//The period is checked and restarted with the new interval.
|
//The period is checked and restarted with the new interval.
|
||||||
|
Loading…
Reference in New Issue
Block a user