gpiodevice.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #ifndef GPIODEVICE_H
  2. #define GPIODEVICE_H
  3. #include "serial.h"
  4. #include "public.h"
  5. #include "smutex.h"
  6. #define GPIO_SUCCESS 0 // command succeeded
  7. #define GPIO_NOT_OPEN -1 // command succeeded
  8. #define GPIO_HARDWARE_ERROR -2 // command failed because of hardware error
  9. #define GPIO_TIMEOUT -3 // wait for user interaction timed out
  10. #define GPIO_PARA_ERR -4 //
  11. #define SIUSTX 0X1B
  12. #define SIUID 0X2A
  13. #define STX_RET 0X02
  14. #define ETX 0x03
  15. #define NAK 0x15
  16. #define YYBSTX 0X1B
  17. #define YYBID 0X2D
  18. class GPIODevice
  19. {
  20. public:
  21. GPIODevice();
  22. ~GPIODevice();
  23. int Init();
  24. int OpenSIU(const char* sPort, int iBps);
  25. int OpenYYB(const char* sPort, int iBps);
  26. int OpenLCK(const char* sPort, int iBps);
  27. int Close();
  28. int SetLight(int iIndex, char* sCmd, int iState);
  29. int GetFirmware(char* sOut);
  30. int GetStatus( short & dwState);
  31. bool IsOpen(){return m_SerSIU.IsOpen();};
  32. int RestartPower(int nTimeToPowerOff, int nPowerOffDuration );
  33. int GetSIUSta(BYTE* sSta);
  34. int GetYYBSta(BYTE* sSta);
  35. protected:
  36. SSerial m_SerSIU;
  37. SSerial m_SerYYB;
  38. SSerial m_SerLCK;
  39. int ExecuteSIU(char * pSend, int iLength, char* sRecv, int& iRecv, int iTimeOut);
  40. int ExecuteYYB(char * pSend, int iLength, char* sRecv, int& iRecv, int iTimeOut);
  41. };
  42. #endif // GPIODEVICE_H