1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- #ifndef _DLT645_H
- #define _DLT645_H
- #include "stm32f2xx.h"
- #include <stdint.h>
- #include "FreeRTOS.h"
- #include "task.h"
- #define DL645_MAX_READ_LEN 200
- #define DL645_MAX_WRITE_LEN 50
- #define DLT645_DEFAULT_RESPONSE_TIMEOUT 500
- #define MAX_DEVICE_NAME_LEN 10
- #define dlt_malloc malloc
- #define dlt_free free
- #define gettick() ( xTaskGetTickCount() )
- typedef struct dlt645
- {
- uint8_t addr[6];
- uint8_t debug;
- int (*write)(struct dlt645 *ctx, uint8_t *buf, uint16_t len);
- int (*read) (struct dlt645 *ctx, uint8_t *msg, uint16_t len);
- void *port_data;
- } dlt645_t;
- typedef enum
- {
- DLT645_2007 = 1,
- DLT645_1997
- } dlt645_protocal;
- #define DLT_RXSIZE 200
- #define DLT645_USART USART_485
- #define DLT645_CTRL_GPIO USART_485_DE_GPIO_PORT
- #define DLT645_CTRL_PIN USART_485_DE_PIN
- typedef struct
- {
- uint8_t dlt645_Tx;
- uint32_t timeout;
- uint8_t rxBuf[DLT_RXSIZE];
- uint8_t done;
- uint8_t index;
- } dlt645_port_t;
- extern dlt645_port_t dlt645_port;
- extern void dlt645_set_addr(dlt645_t *ctx, uint8_t *addr);
- extern int dlt645_set_debug(dlt645_t *ctx, int flag);
- extern int dlt645_read_data(dlt645_t *ctx, uint32_t code, uint8_t *read_data, dlt645_protocal protocal);
- extern uint32_t dec_to_bcd(uint32_t val);
- extern int str_to_bcd(char *str, uint8_t *bcd_store_address, uint16_t bcd_len);
- extern void dlt645_init(uint32_t timeout);
- extern void dlt_callback(UART_HandleTypeDef *husart);
- #endif
|