diff --git a/components/zcancmder/zcanreceiver.cpp b/components/zcancmder/zcanreceiver.cpp index 3adcd01..68cbd3c 100644 --- a/components/zcancmder/zcanreceiver.cpp +++ b/components/zcancmder/zcanreceiver.cpp @@ -11,7 +11,7 @@ using namespace zcr; #define OVER_TIME_MS 5 -ZCanCmder::CFG *ZCanCmder::createCFG(uint8_t deviceId) { +ZCanReceiver::CFG *ZCanReceiver::createCFG(uint8_t deviceId) { CFG *cfg = new CFG(); ZASSERT(cfg != NULL); cfg->deviceId = deviceId; @@ -25,7 +25,7 @@ ZCanCmder::CFG *ZCanCmder::createCFG(uint8_t deviceId) { cfg->rxfifoNum = CAN_RX_FIFO0; return cfg; } -void ZCanCmder::init(CFG *cfg) { +void ZCanReceiver::initialize(CFG *cfg) { HAL_StatusTypeDef hal_status; m_config = cfg; m_lock.init(); @@ -68,7 +68,7 @@ void ZCanCmder::init(CFG *cfg) { } // ZHALCORE::getInstance()->regPeriodJob([this](ZHALCORE::Context &context) { loop(); }, 0); } -HAL_StatusTypeDef ZCanCmder::initializeFilter() { +HAL_StatusTypeDef ZCanReceiver::initializeFilter() { /** * @brief ID区帧格式 * [ 27:0 ] @@ -108,8 +108,8 @@ HAL_StatusTypeDef ZCanCmder::initializeFilter() { return HAL_Status; } -void ZCanCmder::registerListener(IZCanReceiverListener *listener) { m_listenerList.push_back(listener); } -void ZCanCmder::sendPacket(uint8_t *packet, size_t len) { +void ZCanReceiver::registerListener(IZCanReceiverListener *listener) { m_listenerList.push_back(listener); } +void ZCanReceiver::sendPacket(uint8_t *packet, size_t len) { /** * @brief */ @@ -134,7 +134,7 @@ void ZCanCmder::sendPacket(uint8_t *packet, size_t len) { } } #if 0 -void ZCanCmder::sendAck(zcr_cmd_header_t *cmdheader, uint8_t *data, size_t len) { +void ZCanReceiver::sendAck(zcr_cmd_header_t *cmdheader, uint8_t *data, size_t len) { zlock_guard l(m_lock); zcr_cmd_header_t *txheader = (zcr_cmd_header_t *)txbuff; memcpy(txheader, cmdheader, sizeof(zcr_cmd_header_t)); @@ -142,7 +142,7 @@ void ZCanCmder::sendAck(zcr_cmd_header_t *cmdheader, uint8_t *data, size_t len) memcpy(txheader->data, data, len); sendPacket(txbuff, sizeof(zcr_cmd_header_t) + len); } -void ZCanCmder::sendErrorAck(zcr_cmd_header_t *cmdheader, uint16_t id, uint32_t errcode) { +void ZCanReceiver::sendErrorAck(zcr_cmd_header_t *cmdheader, uint16_t id, uint32_t errcode) { zlock_guard l(m_lock); zcr_cmd_header_t *txheader = (zcr_cmd_header_t *)txbuff; @@ -154,7 +154,7 @@ void ZCanCmder::sendErrorAck(zcr_cmd_header_t *cmdheader, uint16_t id, uint32_t sendPacket(txbuff, sizeof(zcr_cmd_header_t) + sizeof(zcanreceiver_error_ack_t)); } -void ZCanCmder::sendExecStatusReport(zcr_cmd_header_t *rxcmdheader, uint8_t *data, size_t len) { +void ZCanReceiver::sendExecStatusReport(zcr_cmd_header_t *rxcmdheader, uint8_t *data, size_t len) { zlock_guard l(m_lock); zcr_cmd_header_t *txheader = (zcr_cmd_header_t *)txbuff; @@ -163,7 +163,7 @@ void ZCanCmder::sendExecStatusReport(zcr_cmd_header_t *rxcmdheader, uint8_t *dat memcpy(txheader->data, data, len); sendPacket(txbuff, sizeof(zcr_cmd_header_t) + len); } -void ZCanCmder::sendStatusReport(zcr_cmd_header_t *rxcmdheader, uint8_t *data, size_t len) { +void ZCanReceiver::sendStatusReport(zcr_cmd_header_t *rxcmdheader, uint8_t *data, size_t len) { zlock_guard l(m_lock); zcr_cmd_header_t *txheader = (zcr_cmd_header_t *)txbuff; @@ -173,7 +173,7 @@ void ZCanCmder::sendStatusReport(zcr_cmd_header_t *rxcmdheader, uint8_t *data, s sendPacket(txbuff, sizeof(zcr_cmd_header_t) + len); } #endif -int32_t ZCanCmder::sendBufAck(zcr_cmd_header_t *rx_cmd_header, uint8_t *data, int32_t len) { +int32_t ZCanReceiver::sendBufAck(zcr_cmd_header_t *rx_cmd_header, uint8_t *data, int32_t len) { zlock_guard l(m_lock); ZASSERT(sizeof(txbuff) > sizeof(zcr_cmd_header_t) + len); zcr_cmd_header_t *txheader = (zcr_cmd_header_t *)txbuff; @@ -183,7 +183,7 @@ int32_t ZCanCmder::sendBufAck(zcr_cmd_header_t *rx_cmd_header, uint8_t *data, in sendPacket(txbuff, sizeof(zcr_cmd_header_t) + len); return 0; } -int32_t ZCanCmder::triggerEvent(zcr_cmd_header_t *cmd_header, uint8_t *data, int32_t len) { +int32_t ZCanReceiver::triggerEvent(zcr_cmd_header_t *cmd_header, uint8_t *data, int32_t len) { zlock_guard l(m_lock); m_reportIndex++; ZASSERT(sizeof(txbuff) > sizeof(zcr_cmd_header_t) + len); @@ -196,7 +196,7 @@ int32_t ZCanCmder::triggerEvent(zcr_cmd_header_t *cmd_header, uint8_t *data, int return 0; } -int32_t ZCanCmder::sendAck(zcr_cmd_header_t *rx_cmd_header, int32_t *ackvar, int32_t nack) { +int32_t ZCanReceiver::sendAck(zcr_cmd_header_t *rx_cmd_header, int32_t *ackvar, int32_t nack) { zlock_guard l(m_lock); zcr_cmd_header_t *txheader = (zcr_cmd_header_t *)txbuff; memcpy(txheader, rx_cmd_header, sizeof(zcr_cmd_header_t)); @@ -210,7 +210,7 @@ int32_t ZCanCmder::sendAck(zcr_cmd_header_t *rx_cmd_header, int32_t *ackvar, int sendPacket(txbuff, sizeof(zcr_cmd_header_t) + sizeof(int32_t) * nack); return 0; } -int32_t ZCanCmder::sendErrorAck(zcr_cmd_header_t *rx_cmd_header, int32_t errorcode) { +int32_t ZCanReceiver::sendErrorAck(zcr_cmd_header_t *rx_cmd_header, int32_t errorcode) { zlock_guard l(m_lock); zcr_cmd_header_t *txheader = (zcr_cmd_header_t *)txbuff; memcpy(txheader, rx_cmd_header, sizeof(zcr_cmd_header_t)); @@ -223,7 +223,7 @@ int32_t ZCanCmder::sendErrorAck(zcr_cmd_header_t *rx_cmd_header, int32_t errorco return 0; } -bool ZCanCmder::sendPacketSub(int npacket, int packetIndex, uint8_t *packet, size_t len, int overtimems) { +bool ZCanReceiver::sendPacketSub(int npacket, int packetIndex, uint8_t *packet, size_t len, int overtimems) { zlock_guard l(m_lock); // ZLOGI(TAG, "sendPacketSub(%d:%d)", npacket, packetIndex); @@ -264,7 +264,7 @@ bool ZCanCmder::sendPacketSub(int npacket, int packetIndex, uint8_t *packet, siz return true; } -bool ZCanCmder::getRxMessage(CAN_RxHeaderTypeDef *pHeader, uint8_t aData[] /*8byte table*/) { +bool ZCanReceiver::getRxMessage(CAN_RxHeaderTypeDef *pHeader, uint8_t aData[] /*8byte table*/) { /** * @brief 读取当前FIFO中缓存了多少帧的数据 */ @@ -280,7 +280,7 @@ bool ZCanCmder::getRxMessage(CAN_RxHeaderTypeDef *pHeader, uint8_t aData[] /*8by } return false; } -void ZCanCmder::STM32_HAL_onCAN_RxFifo0MsgPending(CAN_HandleTypeDef *canHandle) { +void ZCanReceiver::STM32_HAL_onCAN_RxFifo0MsgPending(CAN_HandleTypeDef *canHandle) { /** * @brief 中断上下文 */ @@ -338,13 +338,13 @@ void ZCanCmder::STM32_HAL_onCAN_RxFifo0MsgPending(CAN_HandleTypeDef *canHandle) // deactivateRxIT(); } -void ZCanCmder::STM32_HAL_onCAN_Error(CAN_HandleTypeDef *canHandle) { +void ZCanReceiver::STM32_HAL_onCAN_Error(CAN_HandleTypeDef *canHandle) { if (canHandle != m_config->canHandle) { return; } ZLOGE(TAG, "onCAN_Error\r\n"); } -void ZCanCmder::loop() { +void ZCanReceiver::loop() { CanPacketRxBuffer *rxbuf = &m_canPacketRxBuffer[0]; if (rxbuf->dataIsReady) { int dataoff = 0; @@ -361,7 +361,7 @@ void ZCanCmder::loop() { rxbuf->dataIsReady = false; } } -HAL_StatusTypeDef ZCanCmder::activateRxIT() { +HAL_StatusTypeDef ZCanReceiver::activateRxIT() { HAL_StatusTypeDef hal_status = HAL_ERROR; if (m_config->rxfifoNum == CAN_RX_FIFO0) { hal_status = HAL_CAN_ActivateNotification(m_config->canHandle, CAN_IT_RX_FIFO0_MSG_PENDING); @@ -373,7 +373,7 @@ HAL_StatusTypeDef ZCanCmder::activateRxIT() { } return hal_status; } -HAL_StatusTypeDef ZCanCmder::deactivateRxIT() { +HAL_StatusTypeDef ZCanReceiver::deactivateRxIT() { HAL_StatusTypeDef hal_status = HAL_ERROR; if (m_config->rxfifoNum == CAN_RX_FIFO0) { hal_status = HAL_CAN_DeactivateNotification(m_config->canHandle, CAN_IT_RX_FIFO0_MSG_PENDING); diff --git a/components/zcancmder/zcanreceiver.hpp b/components/zcancmder/zcanreceiver.hpp index c587295..37fffec 100644 --- a/components/zcancmder/zcanreceiver.hpp +++ b/components/zcancmder/zcanreceiver.hpp @@ -10,16 +10,10 @@ namespace iflytop { using namespace zcr; -#if 0 -class ZCanCmderListener { - public: - virtual void onRceivePacket(CanPacketRxBuffer *rxcmd) = 0; -}; -#endif typedef function zcanreceiver_listener_t; -class ZCanCmder : public ZCanIRQListener, public IZCanReceiver { +class ZCanReceiver : public ZCanIRQListener, public IZCanReceiver { public: class CFG { public: @@ -57,9 +51,9 @@ class ZCanCmder : public ZCanIRQListener, public IZCanReceiver { int32_t m_reportIndex = 0; public: - ZCanCmder() {} + ZCanReceiver() {} CFG *createCFG(uint8_t deviceId); - void init(CFG *cfg); + void initialize(CFG *cfg); #if 0 void sendExecStatusReport(zcr_cmd_header_t *rxcmdheader, uint8_t *data, size_t len);