TuyaOS
tkl_cellular_base.h
浏览该文件的文档.
1
8#ifndef __TKL_CELLULAR_BASE_H__
9#define __TKL_CELLULAR_BASE_H__
10#include <stdint.h>
11#include "tuya_cloud_types.h"
12#include "tkl_uart.h"
13#include "tkl_cellular_mds.h"
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18
19/* 蜂窝设备基本的IOCTL命令 */
20
21typedef INT_T CELL_IOCTRL_CMD;
22
23// 设置类命令起始值
24#define CELL_IOCTL_CMD_SET_START 0
25
26//打开AP LOG输出
27#define CELL_IOCTL_SET_TRACE_ON 1
28//关闭AP LOG输出
29#define CELL_IOCTL_SET_TRACE_OFF 2
30//电源键关机功能使能
31#define CELL_IOCTL_SET_POWEKEY_ENABLE_POWEROFF 3
32//电源键关机功能禁止
33#define CELL_IOCTL_SET_POWEKEY_DISABLE_POWEROFF 4
34//关闭UART的AT命令服务
35#define CELL_IOCTL_SET_ATUART_OFF 5
36//打开UART的AT命令服务
37#define CELL_IOCTL_SET_ATUART_ON 6
38//获取RSSI dBm值
39#define CELL_IOCTL_GET_RSSIDBM 7
40
41//获取当前蜂窝设备所在的网络类型
42#define CELL_IOCTL_GET_NET_TYPE 8
43
44/*
45获取当前蜂窝设备的参考信号质量,参考AT+CSQ
46<rssi>:
47 0 113 dBm or less
48 1 111 dBm
49 2. . . 30 109. . . 53 dBm
50 31 51 dBm or greater
51 99 not known or not detectable
52*/
53#define CELL_IOCTL_GET_RSSI 9
54
55// 设置短信内容格式
56#define CELL_IOCTL_SET_SMS_CHAR 10
57
58// 设置蜂窝拨号IP类型(IPV4,IPV6,IPV4V6)
59#define CELL_IOCTL_SET_PDP_TYPE 11
60
61// 串口自检,一般用于涂鸦产测方案
62#define CELL_IOCTL_SET_UART_SELFTEST 0x100
63// TF卡自检,一般用于涂鸦产测方案
64#define CELL_IOCTL_SET_TFCARD_SELFTEST 0x101
65// ADC自检,一般用于涂鸦产测方案
66#define CELL_IOCTL_SET_ADC_SELFTEST 0x102
67// 麦克风喇叭自检,一般用于涂鸦产测方案
68#define CELL_IOCTL_SET_MIC_SELFTEST 0x103
69
70// 获取信息类命令起始值
71#define CELL_IOCTL_CMD_GET_START 0x400
72
73// 获取系统的Epoch 时间,单位秒
74#define CELL_IOCTL_GET_EPOCH_TIME 0x401
75// 获取本次系统上电后的累计时间,单位ms
76#define CELL_IOCTL_GET_UP_TIME 0x402
77// 获取本次系统上电后的累计时间,单位us
78#define CELL_IOCTL_GET_UP_TIME_US 0x403
79
80// 获取底层蜂窝数据上下行统计
81#define CELL_IOCTL_GET_DATA_STATICS 0x404
82
83// USB设备控制
84
85#define TUYA_CELL_USB_DEV_MODE_E INT_T
86
87enum {
88 USB_DEV_MODE_CHARGE_ONLY = 0,
89 USB_DEV_MODE_ROM_SERIAL = 1,
90 USB_DEV_MODE_8SERIALS =2,
91 USB_DEV_MODE_RNDIS= 3,
92 USB_DEV_MODE_ECM = 5,
93};
94typedef struct{
95 BOOL_T get_contrl; //TRUE get,false set
96 BOOL_T enable; //TRUE enable,false disable
97 TUYA_CELL_USB_DEV_MODE_E usb_mode;
99
100#define CELL_IOCTL_USB_CTRL 0x405
101
102#define CELL_IOCTL_SET_REGISTION_HOOK 0x406 //设置一个蜂窝网络注册状态的回调函数到底层
103
104#define CELL_IOCTL_GET_LOCAL_TIME 0x407 //根据基站同步的时间,获取蜂窝的设备的本地时间
105
106
107
108#define CELL_IOCTL_INIT_VIRTUAL_AT 0X408 //启动虚拟AT
109
110#define CELL_IOCTL_SEND_VIRTUAL_AT_CMD 0x409 //发送虚拟AT命令
111
112
113#define CELL_IOCTL_SET_GENERAL_HOOK 0X410 //设置到蜂窝设备中,通用的回调函数
114
115#define CELL_IOCTL_GET_TIMEZONE 0x411 //根据基站同步的时间,获取时区信息
116
117#define CELL_IOCTL_SET_RRC_RELEASE_TIME 0x412 //设置RRC connect切换到idle的延迟时间
118
119#define CELL_IOCTL_GET_RRC_RELEASE_TIME 0x413 //获取RRC connect切换到idle的延迟时间
120
121#define CELL_IOCTL_GET_SN 0x414 //获取蜂窝SN号
122
123#define CELL_IOCTL_SET_SN 0x415 //设置蜂窝SN号
124
125#define CELL_IOCTL_GET_SYSFWKEY 0x416 //获取基础固件的FW key
126
127#define CELL_IOCTL_MODULE_NAME 0x417 //获取模组型号
128
129#define CELL_IOCTL_CMD_USR_START 0x1000
130
131
135typedef enum
136{
137 TKL_NO_SIM, /*< 无SIM卡 */
138 TKL_SIM_READY, /*< SIM已识别 */
139 TKL_SIM_INIT, /*< SIM卡初始化中>*/
140 TKL_SIM_WAIT_PIN,
141 TKL_SIM_WAIT_PUK,
143
144typedef enum{
145 TUYA_TSIM_TYPE, /* 物理卡 */
146 TUYA_VSIM_TYPE, /* 虚拟卡 */
147}TUYA_SIM_TYPE_E;
148
149typedef enum {
150 DOUBLE_SIM_DOUBLE_CHANNEL = 1,
151 DOUBLE_SIM_SINGLE_CHANNEL = 2,
152 SINGLE_SIM_SINGLE_CHANNEL = 4,
153}TKL_CELLULAR_ABILITY_E;
154
155typedef enum
156{
157 TUYA_CELL_NET_TYPE_UNKNOWN = -1,
158 TUYA_CELL_NET_TYPE_GSM = 1,
159 TUYA_CELL_NET_TYPE_LTE,
160 TUYA_CELL_NET_TYPE_3G,
161 TUYA_CELL_NET_TYPE_CATM, //CATM1
162 TUYA_CELL_NET_TYPE_NB,
163}TUYA_CELLULAR_RAT_E;
164
165#define NEIGHBOUR_NUM 4
166typedef struct {
167 UINT16_T lac; //LAC
168 INT16_T rx_pwr;
169 UINT_T cellid; //20bits(eNodeID)+8bits(Cellid)
171
172typedef struct
173{
174 UCHAR_T mcc[3];
175 UCHAR_T mnc[3];
176 TKL_CELL_INFO_T main;
177 TKL_CELL_INFO_T neighbour[NEIGHBOUR_NUM];
179
180typedef struct {
181 INT_T fd;
182 CHAR_T name[32+1];
184 UINT8_T sim_id;
185 TUYA_SIM_TYPE_E sim_type;
187
188typedef struct{
189 INT_T cid;
190 UINT32_T rx_count;
191 UINT32_T tx_count;
193
194
195typedef INT_T CELL_GENERAL_MSGID;
196
197#define CELL_GENERAL_MSGID_RTC_SYNC 1
198#define CELL_GENERAL_MSGID_RSSI_UPDATE 2
199
200typedef struct{
201 CELL_GENERAL_MSGID id;
202 VOID *pdata;
203 INT_T data_len;
205
211
212
213
219typedef VOID (*TKL_VIRTAT_RESP)(CHAR_T *resp,INT_T len);
220
225typedef VOID (*TKL_SIM_NOTIFY)(TKL_SIM_STATE_E status);
226
227
228OPERATE_RET tkl_cellular_base_init(TKL_CELL_INIT_PARAM_T *param);
229
230
236typedef VOID (*TKL_REGISTION_NOTIFY)(UINT8_T sim_id,TUYA_CELLULAR_MDS_STATUS_E st);
237
238
244OPERATE_RET tkl_cellular_base_get_ability(TKL_CELLULAR_ABILITY_E *ability);
245
251OPERATE_RET tkl_cellular_base_switch_sim(UINT8_T sim_id);
252
260
269OPERATE_RET tkl_cellular_base_enable_sim_hotplug(UINT8_T sim_id, BOOL_T enable);
270
277OPERATE_RET tkl_cellular_base_sim_get_status(UINT8_T sim_id, UCHAR_T *state);
278
287OPERATE_RET tkl_cellular_base_get_cfun_mode(UINT8_T simd_id,PINT_T cfun);
288
299OPERATE_RET tkl_cellular_base_set_cfun_mode(UINT8_T simd_id,INT_T cfun);
300
310OPERATE_RET tkl_cellular_base_get_imsi(UINT8_T sim_id,CHAR_T imsi[15 + 1]);
311
318OPERATE_RET tkl_cellular_base_get_iccid (UINT8_T sim_id,CHAR_T iccid[20 + 1]);
325OPERATE_RET tkl_cellular_base_get_imei (UINT8_T sim_id,CHAR_T imei[15 + 1]);
326
334OPERATE_RET tkl_cellular_base_set_imei (UINT8_T sim_id,CHAR_T imei[15 + 1]);
335
343OPERATE_RET tkl_cellular_base_get_rsrp(UINT8_T sim_id,INT_T *rsrp);
344
353OPERATE_RET tkl_cellular_base_get_sinr(UINT8_T sim_id,INT_T *sinr,INT_T *bit_error);
354
364OPERATE_RET tkl_cellular_base_get_lbs(UINT8_T sim_id,TKL_LBS_INFO_T *lbs,BOOL_T neighbour,INT_T timeout);
365
373
374
383OPERATE_RET tkl_cellular_base_enable_sim_detect(UINT8_T simid, BOOL_T enable);
384
392
393
402OPERATE_RET tkl_cellular_base_ioctl(INT_T cmd,VOID* argv);
403
404#ifdef __cplusplus
405}
406#endif
407
408#endif
Definition: tkl_cellular_base.h:188
Definition: tkl_cellular_base.h:200
Definition: tkl_cellular_base.h:166
Definition: tkl_cellular_base.h:180
Definition: tkl_cellular_base.h:173
Definition: tkl_cellular_base.h:94
uart config
Definition: tuya_cloud_types.h:1175
OPERATE_RET tkl_cellular_base_get_sinr(UINT8_T sim_id, INT_T *sinr, INT_T *bit_error)
获取蜂窝设备SIM卡所在通道的信号噪声比及误码率
VOID(* TKL_VIRTAT_RESP)(CHAR_T *resp, INT_T len)
虚拟AT接收应答回调函数
Definition: tkl_cellular_base.h:219
VOID(* TKL_SIM_NOTIFY)(TKL_SIM_STATE_E status)
sim卡状态变化通知函数原型
Definition: tkl_cellular_base.h:225
OPERATE_RET tkl_cellular_base_get_rsrp(UINT8_T sim_id, INT_T *rsrp)
获取SIM卡所在通道蜂窝设备的信号接收功率——单位dbm
OPERATE_RET tkl_cellular_base_enable_sim_hotplug(UINT8_T sim_id, BOOL_T enable)
使能或禁止sim卡热拔插
OPERATE_RET tkl_cellular_base_sim_get_status(UINT8_T sim_id, UCHAR_T *state)
获取SIM卡的状态
BOOL_T tkl_cellular_base_rf_calibrated(VOID_T)
获取当前设备的射频校准状态
OPERATE_RET tkl_cellular_base_switch_sim(UINT8_T sim_id)
切换当前使能的SIM卡。
OPERATE_RET tkl_cellular_base_get_lbs(UINT8_T sim_id, TKL_LBS_INFO_T *lbs, BOOL_T neighbour, INT_T timeout)
SIM卡所在通道LBS的基站信息)
VOID(* TKL_REGISTION_NOTIFY)(UINT8_T sim_id, TUYA_CELLULAR_MDS_STATUS_E st)
蜂窝网络注册状态变化通知函数原型,该接口是为了svc_netmgr适配
Definition: tkl_cellular_base.h:236
TKL_SIM_STATE_E
sim卡状态定义
Definition: tkl_cellular_base.h:136
OPERATE_RET tkl_cellular_base_get_ability(TKL_CELLULAR_ABILITY_E *ability)
获取当前设备的通讯能力
OPERATE_RET tkl_cellular_base_enable_sim_detect(UINT8_T simid, BOOL_T enable)
使能或禁止sim卡gpio检测
OPERATE_RET tkl_cellular_base_set_cfun_mode(UINT8_T simd_id, INT_T cfun)
设置蜂窝设备的通信功能模式
OPERATE_RET tkl_cellular_base_get_iccid(UINT8_T sim_id, CHAR_T iccid[20+1])
获取SIM卡的ICCID
OPERATE_RET tkl_cellular_base_get_cfun_mode(UINT8_T simd_id, PINT_T cfun)
获取蜂窝设备当前的通信功能设置
OPERATE_RET tkl_cellular_base_register_sim_state_notify(UINT8_T simd_id, TKL_SIM_NOTIFY fun)
注册SIM状态变化通知函数
OPERATE_RET tkl_cellular_base_set_imei(UINT8_T sim_id, CHAR_T imei[15+1])
设置设备的IMEI号
INT8_T tkl_cellular_base_get_default_simid(VOID)
获取默认的SIM ID
OPERATE_RET tkl_cellular_base_get_imsi(UINT8_T sim_id, CHAR_T imsi[15+1])
获取SIM卡中的国际移动用户识别码
VOID(* TKL_GENERAL_CALLBACK)(TKL_CELL_GENERAL_INFO_T *param)
定义通用蜂窝回调通用
Definition: tkl_cellular_base.h:210
OPERATE_RET tkl_cellular_base_get_imei(UINT8_T sim_id, CHAR_T imei[15+1])
获取SIM卡所在通道设备的IMEI号
OPERATE_RET tkl_cellular_base_ioctl(INT_T cmd, VOID *argv)
蜂窝基础的通用控制功能,一般作为平台提供一些特殊的能力接口
蜂窝模组数据API实现接口。
TUYA_CELLULAR_MDS_STATUS_E
蜂窝移动数据鉴权状态
Definition: tkl_cellular_mds.h:30
Common process - adapter the uart api