versadac  1
versadac - Scalable Recorder Firmware
di_s_ssm.h
1 /*******************************************************************************
2 FILE : di_s_ssm.h
3 VERSION : $Id: di_s_ssm.h 5305 2006-10-27 12:09:59Z martinto $
4 AUTHOR : David Cozens
5 SYSTEM : Diab C for PowerPC under vxWorks
6 DESCRIPTION : Scheduled message class for driving any of the 2500 slow digital
7  input modules. DI4, DI8 and DI6.
8 *******************************************************************************/
9 #ifndef __DI_S_SSM_H
10 #define __DI_S_SSM_H
11 #include "spismsg.h"
12 
13 #define EIO_DI_MODULE_STATUS_GOOD 0x7F
14 
15 enum DissmCommandByte
16 {
17  DI_S_SSM_COMMAND_1_TO_4_ONLY = 0xA0,
18  DI_S_SSM_COMMAND_1_TO_4 = 0xA1,
19  DI_S_SSM_COMMAND_5_TO_8 = 0xA6,
20  DI_S_SSM_COMMAND_SET_FAST = 0xA8
21 };
22 
23 class DigitalInputSlowSpiScheduledMessage:public SpiScheduledMessage
24 {
25  public:
26  DigitalInputSlowSpiScheduledMessage(unsigned char device);
28  /*------------------------------------------------------------------------------
29  FUNCTION : sent
30  DESCRIPTION : Called when the message has been sent.
31  ARGUMENTS :
32  RETURN :
33  NOTES :
34  ------------------------------------------------------------------------------*/
35  virtual void sent();
36 
37  unsigned char getDebouncedData(){return getRxPtr()[3];};
38  unsigned char getPulseData() {return getRxPtr()[4];};
39  unsigned char getRawData() {return getRxPtr()[2];};
40  bool isModuleStatusGood(){return (*getRxPtr() == EIO_DI_MODULE_STATUS_GOOD );};
41  void setCommandData(DissmCommandByte z_command, unsigned char z_debounce_1, unsigned char z_debounce_2, unsigned char z_debounce_3, unsigned char z_debounce_4);
42  /*------------------------------------------------------------------------------
43  FUNCTION : getTransacted
44 
45  DESCRIPTION : Can be called to see if the message has been transacted since it
46  was created or last checked.
47  ARGUMENTS :
48  RETURN :
49  NOTES :
50  ------------------------------------------------------------------------------*/
51  bool getTransacted(){bool temp = m_transacted; m_transacted = false; return temp;};
52 
53  bool wasCommandOk();
54 
55  private:
56  static unsigned short moduleToDevice(unsigned char module);
57  bool m_transacted;
58 };
59 #endif /*__DI_S_SSM_H */
60 
Definition: di_s_ssm.h:23