12 #ifndef __EIOT2SRDO8_H
13 #define __EIOT2SRDO8_H
16 #include "prjParams.h"
18 #include "eio_t25srm.h"
30 #define EIO_RLY8_MIN_PULSE_TIME_US (200000)
34 enum EioT2500Do8RunStates
36 EIO_T2500_DO8_STATE_JUST_CREATED,
37 EIO_T2500_DO8_STATE_JUST_CREATED_2,
38 EIO_T2500_DO8_STATE_MODULE_HAS_CHANGED,
39 EIO_T2500_DO8_STATE_START_RUNTIME,
40 EIO_T2500_DO8_STATE_RUNTIME,
41 EIO_T2500_DO8_STATE_DELETE_1,
42 EIO_T2500_DO8_STATE_DELETE_2,
43 EIO_T2500_DO8_STATE_ERROR,
44 EIO_T2500_DO8_STATE_ERROR_2,
45 EIO_T2500_DO8_STATE_SECONDARY_ENABLING,
46 EIO_T2500_DO8_STATE_SECONDARY_ENABLED,
47 EIO_T2500_DO8_STATE_SECONDARY_DISABLING,
48 EIO_T2500_DO8_STATE_SECONDARY_DISABLED
54 EioT2500Do8Module(
unsigned char z_moduleNumber, EioModuleType z_type,
55 unsigned char z_tpoMultiple, EioT2500CycleEnum z_cycleNumber);
56 virtual ~EioT2500Do8Module();
59 virtual void updateFast(
unsigned short slot);
60 virtual void update62_5mS();
61 virtual void update125mS();
62 virtual void updateFastBuffers(
unsigned int z_thisSlot);
63 virtual void updateBuffers125ms();
64 virtual void cycleComplete125mS();
65 virtual void cycleCompleteFast(
unsigned int z_thisSlot);
69 void configureUpdateMessage(
unsigned int slot);
70 void setUpdateMessagesSafe();
71 void updateBuffers(
unsigned int z_thisSlot);
72 EioT2500Do8RunStates m_state;
74 unsigned char * m_slotData;
75 static const int MAX_NUMBER_OF_OUTPUTS_PER_MODULE = 8;
76 static const int MAX_NUMBER_OF_VP_OUTPUTS_PER_MODULE = MAX_NUMBER_OF_OUTPUTS_PER_MODULE/2;
81 bool m_badConfig[MAX_NUMBER_OF_OUTPUTS_PER_MODULE];
82 EioDOStatus m_status[MAX_NUMBER_OF_OUTPUTS_PER_MODULE];
83 bool m_hadHardwareError[MAX_NUMBER_OF_OUTPUTS_PER_MODULE];
84 bool m_messagesScheduled;
86 unsigned char m_tpoMultiple;
87 unsigned char m_ticks_per_tpo;
Definition: eio_t25srm.h:58