#ifndef _MBUSCOMM_H_ #define _MBUSCOMM_H_ #include #include typedef struct { uint8_t start1; uint8_t length1; uint8_t length2; uint8_t start2; uint8_t l; uint8_t c; uint8_t a; uint8_t ci; uint8_t *userdata; uint8_t chksum; uint8_t stop; } t_longframe; typedef enum { MBCR_SUCCESS = 0, MBCR_ERROR_TIMEOUT, MBCR_ERROR_LOOP_FAILURE, MBCR_ERROR_TX_REG_UNACCESSIBLE, MBCR_ERROR_OUT_OF_MEMORY__FRAME, MBCR_ERROR_OUT_OF_MEMORY__USERDATA, MBCR_ERROR_STATE_ENGINE__START1, MBCR_ERROR_STATE_ENGINE__LENGTH1, MBCR_ERROR_STATE_ENGINE__LENGTH2, MBCR_ERROR_STATE_ENGINE__START2, MBCR_ERROR_STATE_ENGINE__INVALID_CHKSUM, MBCR_ERROR_STATE_ENGINE__STOP, MBCR_ERROR_STATE_ENGINE__ILLEGAL_STATE, MBCR_ERROR_STATE_ENGINE__UNKNOWN } t_mbusCommResult; void mbusCommRequest(uint8_t cmd, uint8_t addr); void mbusCommTxCpltCallback(UART_HandleTypeDef *huart); void mbusCommRxCpltCallback(UART_HandleTypeDef *huart); #endif // _MBUSCOMM_H_