| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- /**
- * @file CAN_ATY.h
- *
- * @param Project DEVICE_GENERAL_ATY_LIB
- *
- * @author ATY
- *
- * @copyright
- * - Copyright 2017 - 2026 MZ-ATY
- * - This code follows:
- * - MZ-ATY Various Contents Joint Statement -
- * <a href="https://mengze.top/MZ-ATY_VCJS">
- * https://mengze.top/MZ-ATY_VCJS</a>
- * - CC 4.0 BY-NC-SA -
- * <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
- * https://creativecommons.org/licenses/by-nc-sa/4.0/</a>
- * - Your use will be deemed to have accepted the terms of this statement.
- *
- * @brief functions of can process for C platform
- *
- * @version
- * - 1_00_260116 > ATY
- * -# Preliminary version
- ********************************************************************************
- */
- /**
- * =============================================================================
- * CAN Protocol Frame Definitions (Classic CAN, 11-bit Standard ID)
- * =============================================================================
- *
- * -------------------
- * │ Frame Type │ CAN ID │ Data Field Layout │
- * -------------------
- * │ Broadcast │ 0x00FF │ [0]: CMD │
- * │ (Host -> Slave) │ │ [1]: REG_ADDR │
- * │ │ │ [2-5]: VALUE (float) │
- * │ │ │ [6-7]: - │
- * -------------------
- * │ Multicast │ 0x100 + N │ [0]: CMD │
- * │ (Host -> Slave) │ (N = Group Id) │ [1]: REG_ADDR │
- * │ │ │ [2-5]: VALUE (float) │
- * │ │ │ [6-7]: - │
- * -------------------
- * │ P2P │ 0x200 + N │ [0]: CMD │
- * │ (Host -> Slave) │ (N = ADDR) │ [1]: REG_ADDR │
- * │ │ │ [2-5]: VALUE │
- * │ │ │ [6-7]: - │
- * -------------------
- * │ Slave Response │ 0x300 + N │ [0]: CMD_ECHO │
- * │ (Slave -> Host) │ (N = ADDR) │ [1]: REG_ADDR │
- * │ │ │ [2-5]: VALUE (float) │
- * │ │ │ [6]: ERR │
- * │ │ │ [7]: - │
- * -------------------
- * │ Fault Report │ 0x0010 + N │ [0]: FAULT_CODE │
- * │ (High Priority) │ (N = ADDR) │ [1]: SEVERITY │
- * │ │ │ [2-5]: ERROR_VALUE (float) │
- * │ │ │ [6-7]: - │
- * -------------------
- * =============================================================================
- */
- #ifndef __CAN_ATY_H
- #define __CAN_ATY_H
- #include "INCLUDE_ATY.h"
- /******************************* For user *************************************/
- /******************************************************************************/
- struct CAN_ATY_Dev{
- uint8_t (*addTxMessage)(uint32_t addr, uint8_t* data, uint8_t len);
- uint8_t addr;
- uint8_t groupId;
- uint8_t lock;
- };
- void CAN_RegRW(struct CAN_ATY_Dev* dev,
- uint32_t frameId, uint8_t cmd, uint8_t regAddr, float value);
- void CAN_Response(struct CAN_ATY_Dev* dev,
- uint8_t cmd, uint8_t regAddr, float value, uint8_t error);
- void CAN_FaultReport(struct CAN_ATY_Dev* dev,
- uint8_t faultCode, uint8_t severity, float faultValue);
- void CAN_RX_Callback(struct CAN_ATY_Dev* dev, uint32_t stdId, float* data, uint8_t* rxData);
- #define CAN_FILTER_BROADCAST 1
- #define CAN_FILTER_MULTICAST 2
- #define CAN_FILTER_P2P 3
- #define CAN_FILTER_RESPONSE 4
- #define CAN_FILTER_FAULT 5
- #define CAN_STD_ID_BROADCAST 0x00FF
- #define CAN_STD_ID_MULTICAST 0x0100
- #define CAN_STD_ID_P2P 0x0200
- #define CAN_STD_ID_RESPONSE 0x0300
- #define CAN_STD_ID_FAULT 0x0010
- #define CAN_CMD_READ 0x01
- #define CAN_CMD_WRITE 0x02
- #define CAN_ERR_NONE 0x00
- #define CAN_ERR_CMD 0x01
- #define CAN_ERR_PARAM 0x02
- #define CAN_FAULT_SEVERITY_WARN 0x00
- #define CAN_FAULT_SEVERITY_CRITICAL 0x01
- #define CAN_FAULT_CODE_NONE 0x00
- #endif /* __CAN_ATY_H */
- /******************************** End Of File *********************************/
|