gfamininetmst.h 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. // gfamininetmst.h :
  2. //
  3. #if !defined(AGD_GFAMININETMST_H__FE13B563_B3D5_4AA2_81FD_B74220CF2D93__INCLUDED_)
  4. #define AGD_GFAMININETMST_H__FE13B563_B3D5_4AA2_81FD_B74220CF2D93__INCLUDED_
  5. #include <stdint.h>
  6. #include <stdbool.h>
  7. #include <sys/time.h>
  8. #include <gfamininetdev.h>
  9. #ifdef __cplusplus
  10. extern "C" {
  11. #endif // __cplusplus
  12. /////////////////////////////////////////////////////////////////////////////
  13. // gfamininetmst.h - Declarations:
  14. #ifndef ANY_SIZE
  15. #define ANY_SIZE 1
  16. #endif // ANY_SIZE
  17. #define MINET_SLAVE_RESPONSE_SUCCESS 0
  18. #define MINET_SLAVE_RESPONSE_ACK 1
  19. #define MINET_SLAVE_RESPONSE_INDEX_IS_STATUS_CODE 2
  20. #define MINET_SLAVE_RESPONSE_ERROR_STX_ERROR -1
  21. #define MINET_SLAVE_RESPONSE_ERROR_INVALID_ARGUMENT -2
  22. #define MINET_SLAVE_RESPONSE_ERROR_INVALID_LENGTH -3
  23. #define MINET_SLAVE_RESPONSE_ERROR_INVALID_SLAVE_INDICATOR -4
  24. #define MINET_SLAVE_RESPONSE_ERROR_INCOMPLETE_DATA -5
  25. #define MINET_SLAVE_RESPONSE_ERROR_INVALID_NODE_ADDRESS -6
  26. #define MINET_SLAVE_RESPONSE_ERROR_INDEX_OUT_OF_RANGE -7
  27. #define MINET_SLAVE_RESPONSE_ERROR_INDEX_NO_MATCH -8
  28. #define MINET_SLAVE_RESPONSE_ERROR_INVALID_CHECKSUM -9
  29. /////////////////////////////////////////////////////////////////////////////
  30. typedef struct _GFA_MININET_FRAME
  31. {
  32. uint8_t stx;
  33. uint8_t len;
  34. uint8_t node;
  35. uint8_t index;
  36. union
  37. {
  38. uint8_t by[ANY_SIZE];
  39. uint16_t wo[ANY_SIZE];
  40. uint32_t dw[ANY_SIZE];
  41. }data;
  42. }GFA_MININET_FRAME, *LPGFA_MININET_FRAME;
  43. typedef const GFA_MININET_FRAME *LPCGFA_MININET_FRAME;
  44. /////////////////////////////////////////////////////////////////////////////
  45. typedef void *HGFAMINEMST;
  46. /////////////////////////////////////////////////////////////////////////////
  47. typedef struct _GFA_MININET_MST_CFG_PARAMS
  48. {
  49. GFA_MININET_DEV_CFG_PARAMS devcfg;
  50. }GFA_MININET_MST_CFG_PARAMS, *LPGFA_MININET_MST_CFG_PARAMS;
  51. typedef const GFA_MININET_MST_CFG_PARAMS *LPCGFA_MININET_MST_CFG_PARAMS;
  52. /////////////////////////////////////////////////////////////////////////////
  53. HGFAMINEMST GfaMininetMasterOpen(LPGFA_MININET_MST_CFG_PARAMS pmmcp);
  54. void GfaMininetMasterClose(HGFAMINEMST hMst);
  55. size_t GfaMininetMasterBuildFrame(HGFAMINEMST hMst, uint8_t nNode, uint8_t nIndex, const void *pDataPayload, size_t nCbDataPayload, void *pFrameBuffer, size_t nCbFrameBuffer);
  56. ssize_t GfaMininetMasterTransmitFrame(HGFAMINEMST hMst, const void *pData, size_t nCbData);
  57. ssize_t GfaMininetMasterReceiveFrame(HGFAMINEMST hMst, void *pBuffer, size_t nCbBuffer, bool bAckPossible);
  58. int GfaMininetMasterEvaluateSlaveResponse(HGFAMINEMST hMst, uint8_t nNode, const void *pFrame, size_t nCbFrame, bool bAckPossible, uint8_t *pbIndex);
  59. uint8_t GfaMininetMasterCalcChk(const void *pData, size_t nCbData);
  60. ssize_t GfaMininetMasterResetSlaveIndex(HGFAMINEMST hMst, uint8_t nNode);
  61. ssize_t GfaMininetMasterResetLocalIndex(HGFAMINEMST hMst, uint8_t nNode);
  62. bool GfaMininetMasterGetTimeouts(HGFAMINEMST hMst, struct timeval *ptvRX, struct timeval *ptvTX);
  63. bool GfaMininetMasterSetTimeouts(HGFAMINEMST hMst, const struct timeval *ptvRX, const struct timeval *ptvTX);
  64. bool GfaMininetMasterSaveTimeouts(HGFAMINEMST hMst);
  65. bool GfaMininetMasterRestoreTimeouts(HGFAMINEMST hMst);
  66. ssize_t GfaMininetMasterGetConfigParams(HGFAMINEMST hMst, void *pDevParams, size_t nSizeDevParams);
  67. int GfaMininetMasterSetConfigParams(HGFAMINEMST hMst, const void *pDevParams, size_t nSizeDevParams);
  68. void GfaMininetMasterDumpFrame(FILE *pf, LPCGFA_MININET_FRAME pFrame);
  69. /////////////////////////////////////////////////////////////////////////////
  70. #ifdef __cplusplus
  71. }
  72. #endif // __cplusplus
  73. #endif // !defined(AGD_GFAMININETMST_H__FE13B563_B3D5_4AA2_81FD_B74220CF2D93__INCLUDED_)