TuyaOS
tkl_subg_rf.h
1#ifndef _TKL_SUBG_RF_H_
2#define _TKL_SUBG_RF_H_
3#include <stddef.h>
4#include <stdint.h>
5#include "tuya_cloud_types.h"
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
14typedef enum
15{
16 SUBG_RF_STATE_IDLE = 0,
17 SUBG_RF_STATE_TX,
18 SUBG_RF_STATE_TX_ING,
19 SUBG_RF_STATE_RX,
20 SUBG_RF_STATE_RX_ING,
21} SUBG_RF_STATE_E;
22
27typedef enum
28{
29 SUBG_RF_PACK_DYNAMIC = 0, //Dynamic length type, mainly for TY_SMESH protocol
30 SUBG_RF_PACK_DYNAMIC_WAKEUP, //Dynamic length type with long preamble
31 SUBG_RF_PACK_FIXED, //Fixed length type, mainly for RF remote control protocol
32 SUBG_RF_PACK_CARRIRE, //carrier mode
33} SUBG_RF_PACK_TYPE_E;
34
38typedef enum
39{
40 SUBG_RF_CB_EVENT_TX_DONE = 0, //Packet sending complete interrupt event
41 SUBG_RF_CB_EVENT_ERROR, //RF Chip Abnormal Events
42} SUBG_RF_CALLBACK_EVENT_E;
43
47typedef enum
48{
49 SUBG_RF_RX_FULL = 0, //RF full window receive mode
50 SUBG_RF_RX_DUTYCYCLE, //RF Low Power Duty Cycle Receive Mode
51 SUBG_RF_IDLE, //RF idle state
52 SUBG_RF_SLEEP_UNIVERSAL, //RF Universal Sleep Mode
53 SUBG_RF_SLEEP_DETECT_RSSI, //Sleep Detection Over-the-Air RSSI Threshold Wake Mode for RF Low Power Modes
54} SUBG_RF_WORK_STATE_E;
55
56
57typedef VOID_T (*SUBG_RF_REVIECE)(UINT8_T *rx_buf, UINT8_T buf_len,CHAR_T rx_rssi);
58typedef VOID_T (*SUBG_RF_EVENT)(SUBG_RF_CALLBACK_EVENT_E cb_event);
59
60
67OPERATE_RET tkl_subg_rf_init(UINT32_T cfg_type);
68
75OPERATE_RET tkl_subg_rf_reinit( VOID_T );
76
84SUBG_RF_STATE_E tkl_subg_rf_get_state( VOID_T );
85
94OPERATE_RET tkl_subg_send(UINT8_T *tx_buf, UINT8_T buf_len,SUBG_RF_PACK_TYPE_E pack_type );
95
103OPERATE_RET tkl_subg_rf_goto_state(SUBG_RF_WORK_STATE_E state);
104
112SCHAR_T tkl_subg_rf_rssi_get( VOID_T );
113
121OPERATE_RET tkl_subg_rf_set_radio_power(INT8_T radio_power_dbm);
122
130INT8_T tkl_subg_rf_get_radio_power( VOID_T );
131
139VOID_T tkl_subg_rf_set_channel(UINT8_T channel);
140
148UINT8_T tkl_subg_rf_get_channel( VOID_T );
149
156VOID_T tkl_subg_rf_rx_register(SUBG_RF_REVIECE fun_cb);
157
164VOID_T tkl_subg_rf_tx_register(SUBG_RF_EVENT fun_cb);
165
166
174VOID_T tkl_subg_rf_set_frequency_deviation(INT16_T temperature);
175
176#ifdef __cplusplus
177}
178#endif
179
180#endif