inwudriver-weibo/app/mrs/sta/mrs_sta_usr_tx.h

68 lines
1.6 KiB
C
Raw Permalink Normal View History

/*
* Copyright (c) CompanyNameMagicTag 2019-2020. All rights reserved.
* Description: MRS sta uart sending list.
*/
#ifndef __MRS_STA_USR_TX_H__
#define __MRS_STA_USR_TX_H__
#include "mrs_config.h"
#include "mrs_msg.h"
#if defined(PRODUCT_CFG_PRODUCT_TYPE_STA)
#ifdef __cplusplus
extern "C" {
#endif
#define MRS_USR_TX_MAX_RETRY 0
/* Low to High */
enum {
TX_ITEM_PRI_0 = 0,
TX_ITEM_PRI_1,
TX_ITEM_PRI_2,
TX_ITEM_PRI_INVALID
};
typedef struct {
td_u16 id;
td_u16 seq;
td_u8 protocol;
td_u8 timeout;
td_u8 addr[MRS_METER_ADDR_LEN];
} mrs_sta_usr_frame_head;
typedef struct mrs_usr_tx_item {
EXT_LIST link;
mrs_sta_usr_frame_head frame_head;
td_u8 no_resp;
td_u8 priority;
td_u8 retry;
td_u8 usr_id;
td_u16 rsv;
td_u16 data_len;
td_u8 data[0];
} mrs_usr_tx_item;
td_u32 mrs_sta_usr_tx_queue_init(td_void);
td_bool mrs_sta_usr_tx(mrs_usr_tx_item *item);
td_void mrs_sta_usr_tx_handle(td_void);
td_void mrs_sta_usr_tx_unlock(td_void);
mrs_usr_tx_item *mrs_sta_usr_get_tx_item(td_void);
td_void mrs_usr_tx_dequeue(td_void);
/* PLC */
td_u32 mrs_sta_usr_xr_plc_tx(mrs_usr_tx_item *item, td_pbyte data, td_u16 data_len);
td_u32 mrs_sta_usr_pr_plc_tx(mrs_usr_tx_item *item, td_pbyte data, td_u16 data_len);
td_u32 mrs_sta_usr_ciu_plc_tx(mrs_usr_tx_item *item, td_pbyte data, td_u16 data_len);
td_bool mrs_sta_usr_plc_filter(mrs_sta_usr_frame_head *head);
#ifdef __cplusplus
}
#endif
#endif /* defined(PRODUCT_CFG_PRODUCT_TYPE_STA) */
#endif /* __MRS_STA_USR_TX_H__ */