| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- /*
- * Copyright (c) 2006-2020, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-09-29 liuya the first version
- */
- #ifndef APPLICATIONS_VKLINK_H_
- #define APPLICATIONS_VKLINK_H_
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- #include <stdbool.h>
- #include <stdint.h>
- #define VKLINK_MSG_HEAD 0XFE /* vklink 消息帧头 */
- #define VKLINK_MSG_PAYLOAD_MAX_LEN 255 /* 消息 buffer 最大字节长度 */
- /*-------------------------- vklink 消息结构体 -----------------*/
- typedef enum
- {
- VKLINK_RX_HEAD = 0,
- VKLINK_RX_PAYLOAD_LEN,
- VKLINK_RX_SEQ,
- VKLINK_RX_SYSID,
- VKLINK_RX_COMPID,
- VKLINK_RX_MSGID,
- VKLINK_RX_PAYLOAD,
- VKLINK_RX_CHECK_LOW,
- VKLINK_RX_CHECK_HIGH,
- } VKlink_Msg_Rx_Stage;
- typedef struct
- {
- /* 传输消息数据结构 */
- uint8_t head;
- uint8_t payload_len;
- uint8_t seq;
- uint8_t sysid;
- uint8_t compid;
- uint8_t msgid;
- uint8_t payload[VKLINK_MSG_PAYLOAD_MAX_LEN];
- uint16_t crc16_check;
- /* 消息接收阶段 */
- VKlink_Msg_Rx_Stage rx_stage;
- /* payload 段接收索引 */
- uint16_t payload_rx_index;
- } VKlink_Msg_Type;
- int VKlink_ParseChar(VKlink_Msg_Type *msg, uint8_t data);
- int vklink_msg_payload_put_data(VKlink_Msg_Type *msg, const void *pdata,
- uint8_t len);
- uint32_t VKlink_MsgTxFormat(const VKlink_Msg_Type *msg, uint8_t *pTxBuf);
- #ifdef __cplusplus
- }
- #endif
- #endif /* APPLICATIONS_VKLINK_H_ */
|