eive-obsw/linux/fsfwconfig/pollingsequence/pollingSequenceFactory.h

47 lines
1.6 KiB
C
Raw Normal View History

2020-09-16 16:22:36 +02:00
#ifndef POLLINGSEQUENCEFACTORY_H_
#define POLLINGSEQUENCEFACTORY_H_
2021-03-07 14:06:29 +01:00
2020-09-16 16:22:36 +02:00
#include <fsfw/returnvalues/HasReturnvaluesIF.h>
class FixedTimeslotTaskIF;
/**
* All device handlers are scheduled by adding them into
* Polling Sequence Tables (PST) to satisfy stricter timing requirements of
* device communication, a device handler has four different communication steps:
* 1. DeviceHandlerIF::SEND_WRITE -> Send write via interface
* 2. DeviceHandlerIF::GET_WRITE -> Get confirmation for write
* 3. DeviceHandlerIF::SEND_READ -> Send read request
* 4. DeviceHandlerIF::GET_READ -> Read from interface
* The PST specifies precisely when the respective ComIF functions are called
* during the communication cycle time.
* The task is created using the FixedTimeslotTaskIF,
* which utilises the underlying Operating System Abstraction Layer (OSAL)
*
* @param thisSequence FixedTimeslotTaskIF * object is passed inside the
* Factory class when creating the PST
* @return
*/
namespace pst {
/* 0.4 second period init*/
ReturnValue_t pollingSequenceInitDefault(FixedTimeslotTaskIF *thisSequence);
/**
* @brief This function creates the PST for all gomspace devices. They are
* scheduled in a separate PST because the gomspace library uses
* blocking calls when requesting data from devices.
*/
ReturnValue_t gomspacePstInit(FixedTimeslotTaskIF *thisSequence);
2021-02-23 22:07:39 +01:00
2021-05-24 01:20:44 +02:00
ReturnValue_t pollingSequenceTest(FixedTimeslotTaskIF* thisSequence);
2021-04-15 13:17:15 +02:00
/**
* @brief This polling sequence will be created when the software is compiled for the TE0720.
*/
ReturnValue_t pollingSequenceTE0720(FixedTimeslotTaskIF* thisSequence);
2020-09-16 16:22:36 +02:00
}
2020-09-16 16:22:36 +02:00
#endif /* POLLINGSEQUENCEINIT_H_ */