TuyaOS
tkl_subg_rf.h
1#ifndef _TKL_SUBG_RF_H_
2#define _TKL_SUBG_RF_H_
3#include "tuya_cloud_types.h"
4
5#ifdef __cplusplus
6extern "C" {
7#endif
8
12typedef enum
13{
14 SUBG_RF_STATE_IDLE = 0,
15 SUBG_RF_STATE_TX,
16 SUBG_RF_STATE_TX_ING,
17 SUBG_RF_STATE_RX,
18 SUBG_RF_STATE_RX_ING,
19} SUBG_RF_STATE_E;
20
25typedef enum
26{
27 SUBG_RF_PACK_DYNAMIC = 0, //Dynamic length type, mainly for TY_SMESH protocol
28 SUBG_RF_PACK_DYNAMIC_WAKEUP, //Dynamic length type with long preamble
29 SUBG_RF_PACK_FIXED, //Fixed length type, mainly for RF remote control protocol
30 SUBG_RF_PACK_CARRIRE, //carrier mode
31} SUBG_RF_PACK_TYPE_E;
32
36typedef enum
37{
38 SUBG_RF_CB_EVENT_TX_DONE = 0, //Packet sending complete interrupt event
39 SUBG_RF_CB_EVENT_ERROR, //RF Chip Abnormal Events
40} SUBG_RF_CALLBACK_EVENT_E;
41
45typedef enum
46{
47 SUBG_RF_RX_FULL = 0, //RF full window receive mode
48 SUBG_RF_RX_DUTYCYCLE, //RF Low Power Duty Cycle Receive Mode
49 SUBG_RF_IDLE, //RF idle state
50 SUBG_RF_SLEEP_UNIVERSAL, //RF Universal Sleep Mode
51 SUBG_RF_SLEEP_DETECT_RSSI, //Sleep Detection Over-the-Air RSSI Threshold Wake Mode for RF Low Power Modes
52} SUBG_RF_WORK_STATE_E;
53
54
55typedef VOID_T (*SUBG_RF_REVIECE)(UINT8_T *rx_buf, UINT8_T buf_len,CHAR_T rx_rssi);
56typedef VOID_T (*SUBG_RF_EVENT)(SUBG_RF_CALLBACK_EVENT_E cb_event);
57
58
65OPERATE_RET tkl_subg_rf_init(UINT32_T cfg_type);
66
73OPERATE_RET tkl_subg_rf_reinit( VOID_T );
74
82SUBG_RF_STATE_E tkl_subg_rf_get_state( VOID_T );
83
92OPERATE_RET tkl_subg_send(UINT8_T *tx_buf, UINT8_T buf_len,SUBG_RF_PACK_TYPE_E pack_type );
93
101OPERATE_RET tkl_subg_rf_goto_state(SUBG_RF_WORK_STATE_E state);
102
110SCHAR_T tkl_subg_rf_rssi_get( VOID_T );
111
119OPERATE_RET tkl_subg_rf_set_radio_power(INT8_T radio_power_dbm);
120
128INT8_T tkl_subg_rf_get_radio_power( VOID_T );
129
137VOID_T tkl_subg_rf_set_channel(UINT8_T channel);
138
146UINT8_T tkl_subg_rf_get_channel( VOID_T );
147
154VOID_T tkl_subg_rf_rx_register(SUBG_RF_REVIECE fun_cb);
155
162VOID_T tkl_subg_rf_tx_register(SUBG_RF_EVENT fun_cb);
163
164
172VOID_T tkl_subg_rf_set_frequency_deviation(INT16_T temperature);
173
174#ifdef __cplusplus
175}
176#endif
177
178#endif