12 #ifndef __EIOT2SRDOS_H
13 #define __EIOT2SRDOS_H
15 #include "prjParams.h"
17 #include "eio_t25srm.h"
25 enum EioT2500DoSlowRunStates
27 EIO_T2500DOSLOW_STATE_JUST_CREATED,
28 EIO_T2500DOSLOW_STATE_MODULE_HAS_CHANGED,
29 EIO_T2500DOSLOW_STATE_RUNTIME,
30 EIO_T2500DOSLOW_STATE_DELETE,
31 EIO_T2500DOSLOW_STATE_SECONDARY,
32 EIO_T2500DOSLOW_STATE_BECOMING_PRIMARY,
35 enum EioT2500DoSlowTpoStates
37 EIO_T2500DOSLOW_TPO_STATE_INITIALISE,
38 EIO_T2500DOSLOW_TPO_STATE_SEND_MINIMUM_ON_TIME,
39 EIO_T2500DOSLOW_TPO_STATE_SEND_DEMAND,
40 EIO_T2500DOSLOW_TPO_STATE_CAPABILITY_EXCEEDED
46 EioT2500DoSlowModule(
unsigned char z_moduleNumber, EioModuleType z_type, EioT2500CycleEnum z_expectedCycleNumber);
50 virtual void update62_5mS();
51 virtual void update125mS();
52 virtual void updateBuffers125ms();
53 virtual void cycleComplete125mS();
56 void configureUpdateMessage();
57 EioT2500DoSlowRunStates m_state;
59 static const int MAX_NUMBER_OF_OUTPUTS_PER_MODULE = 4;
60 static const int MAX_NUMBER_OF_VP_OUTPUTS_PER_MODULE = MAX_NUMBER_OF_OUTPUTS_PER_MODULE/2;
63 EioUint32 m_oneShotTimer[MAX_NUMBER_OF_OUTPUTS_PER_MODULE];
64 EioUint32 m_pulseTrainPeriod62_5mSTicks[MAX_NUMBER_OF_OUTPUTS_PER_MODULE];
65 EioUint32 m_pulseTrainCurrentPulseLength62_5mSTicks[MAX_NUMBER_OF_OUTPUTS_PER_MODULE];
66 EioUint32 m_pulseTrainPulsesOutstanding[MAX_NUMBER_OF_OUTPUTS_PER_MODULE];
67 EioT2500DoSlowTpoStates m_tpoState[MAX_NUMBER_OF_OUTPUTS_PER_MODULE];
69 EioDOStatus m_status[MAX_NUMBER_OF_OUTPUTS_PER_MODULE];
70 bool m_messagesScheduled;
71 bool m_hadHardwareError[MAX_NUMBER_OF_OUTPUTS_PER_MODULE];
Definition: eio_t25srm.h:58
Definition: eiot2srdos.h:43
Definition: do_s_ssm.h:36