68 lines
1.6 KiB
C
68 lines
1.6 KiB
C
/*
|
|
* 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__ */
|
|
|