#ifndef APP_SLAVE_QUEUE_UART_H_
#define APP_SLAVE_QUEUE_UART_H_

#include "pDebug.h"
#include "FreeRTOS.h"
#include "queue.h"
#include "uart_dev.h"

/* 存入队列中的数据格式 */
typedef struct _slaveQueueUartSendInfo{
    uint32_t length;    //数据长度
    uint8_t *data;      //数据
} slaveQueueUartSendInfo;
#define slaveQueueUartSendInfoSize sizeof(slaveQueueUartSendInfo)

extern QueueHandle_t J1_485_Queue;
extern QueueHandle_t J3_485_Queue;
extern QueueHandle_t J5_485_Queue;
extern QueueHandle_t J7_485_Queue;
extern QueueHandle_t J8_485_Queue;
extern QueueHandle_t J9_485_Queue;
extern QueueHandle_t mcu_uart_Queue;

uint8_t slaveUartInterruptSend(device_handle device, uint8_t *data, uint16_t len);

void slaveUartSendInit(void);

void J1QueueSend(void);
void J3QueueSend(void);
void J5QueueSend(void);
void J7QueueSend(void);
void J8QueueSend(void);
void J9QueueSend(void);
void slaveMcuQueueSend(void);

void binarySemaphoreFreeMemory(void);

void J1_485_IN_TXE(void);
void J3_485_IN_TXE(void);
void J5_485_IN_TXE(void);
void J7_485_IN_TXE(void);
void J8_485_IN_TXE(void);
void J9_485_IN_TXE(void);
void slaveMcu_uart_IN_TXE(void);

#endif