123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- // gfamininetmst.h :
- //
- #if !defined(AGD_GFAMININETMST_H__FE13B563_B3D5_4AA2_81FD_B74220CF2D93__INCLUDED_)
- #define AGD_GFAMININETMST_H__FE13B563_B3D5_4AA2_81FD_B74220CF2D93__INCLUDED_
- #include <stdint.h>
- #include <stdbool.h>
- #include <sys/time.h>
- #include <gfamininetdev.h>
- #ifdef __cplusplus
- extern "C" {
- #endif // __cplusplus
- /////////////////////////////////////////////////////////////////////////////
- // gfamininetmst.h - Declarations:
- #ifndef ANY_SIZE
- #define ANY_SIZE 1
- #endif // ANY_SIZE
- #define MINET_SLAVE_RESPONSE_SUCCESS 0
- #define MINET_SLAVE_RESPONSE_ACK 1
- #define MINET_SLAVE_RESPONSE_INDEX_IS_STATUS_CODE 2
- #define MINET_SLAVE_RESPONSE_ERROR_STX_ERROR -1
- #define MINET_SLAVE_RESPONSE_ERROR_INVALID_ARGUMENT -2
- #define MINET_SLAVE_RESPONSE_ERROR_INVALID_LENGTH -3
- #define MINET_SLAVE_RESPONSE_ERROR_INVALID_SLAVE_INDICATOR -4
- #define MINET_SLAVE_RESPONSE_ERROR_INCOMPLETE_DATA -5
- #define MINET_SLAVE_RESPONSE_ERROR_INVALID_NODE_ADDRESS -6
- #define MINET_SLAVE_RESPONSE_ERROR_INDEX_OUT_OF_RANGE -7
- #define MINET_SLAVE_RESPONSE_ERROR_INDEX_NO_MATCH -8
- #define MINET_SLAVE_RESPONSE_ERROR_INVALID_CHECKSUM -9
- #define MINET_SLAVE_STATUS_INDEX_RESET_DONE 0xC0
- #define MINET_SLAVE_STATUS_INDEX_ERROR 0xC1
- #define MINET_SLAVE_STATUS_INDEX_CMD_ERROR 0xC2
- #define MINET_SLAVE_STATUS_INDEX_INVALID_PARAM 0xC3
- #define MINET_SLAVE_STATUS_INDEX_UNKNOWN_CMD 0xC4
- #define MINET_SLAVE_STATUS_INDEX_CMD_ALREADY_EX 0xC8
- /////////////////////////////////////////////////////////////////////////////
- #define MINET_MIN_NODE_ADDRESS 0x11
- #define NODE_IS_BROADCAST(n) ((n) == 0)
- #define NODE_IS_GROUPCAST(n) ((((n) & 0xF0) != 0) && (((n) & 0x0F) == 0))
- #define NODE_IS_MULTICAST(n) (NODE_IS_BROADCAST(n) || NODE_IS_GROUPCAST(n))
- /////////////////////////////////////////////////////////////////////////////
- typedef struct _GFA_MININET_FRAME
- {
- uint8_t stx;
- uint8_t len;
- uint8_t node;
- uint8_t index;
- union
- {
- uint8_t by[ANY_SIZE];
- uint16_t wo[ANY_SIZE];
- uint32_t dw[ANY_SIZE];
- }data;
- }GFA_MININET_FRAME, *LPGFA_MININET_FRAME;
- typedef const GFA_MININET_FRAME *LPCGFA_MININET_FRAME;
- /////////////////////////////////////////////////////////////////////////////
- typedef void *HGFAMINEMST;
- /////////////////////////////////////////////////////////////////////////////
- typedef struct _GFA_MININET_MST_CFG_PARAMS
- {
- GFA_MININET_DEV_CFG_PARAMS devcfg;
- }GFA_MININET_MST_CFG_PARAMS, *LPGFA_MININET_MST_CFG_PARAMS;
- typedef const GFA_MININET_MST_CFG_PARAMS *LPCGFA_MININET_MST_CFG_PARAMS;
- /////////////////////////////////////////////////////////////////////////////
- HGFAMINEMST GfaMininetMasterOpen(LPCGFA_MININET_MST_CFG_PARAMS pmmcp);
- void GfaMininetMasterClose(HGFAMINEMST hMst);
- size_t GfaMininetMasterBuildFrame(HGFAMINEMST hMst, uint8_t nNode, uint8_t nIndex, const void *pDataPayload, size_t nCbDataPayload, void *pFrameBuffer, size_t nCbFrameBuffer);
- ssize_t GfaMininetMasterTransmitFrame(HGFAMINEMST hMst, const void *pData, size_t nCbData);
- ssize_t GfaMininetMasterReceiveFrame(HGFAMINEMST hMst, void *pBuffer, size_t nCbBuffer, bool bAckPossible);
- int GfaMininetMasterEvaluateSlaveResponse(HGFAMINEMST hMst, uint8_t nNode, const void *pFrame, size_t nCbFrame, bool bAckPossible, uint8_t *pbIndex);
- int GfaMininetMasterResetSlaveIndex(HGFAMINEMST hMst, uint8_t nNode);
- int GfaMininetMasterResetLocalIndex(HGFAMINEMST hMst, uint8_t nNode);
- int GfaMininetMasterPurgeDeviceRXBuffer(HGFAMINEMST hMst);
- int GfaMininetMasterPingSlave(HGFAMINEMST hMst, uint8_t nNode);
- bool GfaMininetMasterGetTimeouts(HGFAMINEMST hMst, struct timeval *ptvRX, struct timeval *ptvTX);
- bool GfaMininetMasterSetTimeouts(HGFAMINEMST hMst, const struct timeval *ptvRX, const struct timeval *ptvTX);
- bool GfaMininetMasterSaveTimeouts(HGFAMINEMST hMst);
- bool GfaMininetMasterRestoreTimeouts(HGFAMINEMST hMst);
- ssize_t GfaMininetMasterGetConfigParams(HGFAMINEMST hMst, void *pDevParams, size_t nSizeDevParams);
- int GfaMininetMasterSetConfigParams(HGFAMINEMST hMst, const void *pDevParams, size_t nSizeDevParams);
- bool GfaMininetMasterIsValidBaudrate(HGFAMINEMST hMst, uint32_t nBaudrate);
- int GfaMininetMasterGetBaudrate(HGFAMINEMST hMst, uint32_t *pnBaudrate);
- int GfaMininetMasterSetBaudrate(HGFAMINEMST hMst, uint32_t nBaudrate);
- HMINETDEV GfaMininetMasterGetDeviceHandle(HGFAMINEMST hMst);
- /////////////////////////////////////////////////////////////////////////////
- uint8_t GfaMininetMasterCalcChk(const void *pData, size_t nCbData, bool bProcessSTX);
- ssize_t GfaMininetMasterGetDataFromFrame(const void *pFrame, size_t nCbFrame, void *pData, size_t nCbData);
- ssize_t GfaMininetMasterGetDataFromSlaveFrame(const void *pFrame, size_t nCbFrame, void *pData, size_t nCbData);
- void GfaMininetMasterDumpFrame(HGFAMINEMST hMst, FILE *pf, LPCGFA_MININET_FRAME pFrame, bool bTX, const char *pszAnnotation);
- int GfaMininetMasterSetVerbosity(HGFAMINEMST hMst, int nVerbosity);
- const char* GfaMininetMasterStrError(int nErrorCode);
- /////////////////////////////////////////////////////////////////////////////
- #ifdef __cplusplus
- }
- #endif // __cplusplus
- #endif // !defined(AGD_GFAMININETMST_H__FE13B563_B3D5_4AA2_81FD_B74220CF2D93__INCLUDED_)
|