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#ifdef __cplusplus
14extern "C" {
15#endif
16
17
18/* 蜂窝设备基本的IOCTL命令 */
19
20typedef INT_T CELL_IOCTRL_CMD;
21
22// 设置类命令起始值
23#define CELL_IOCTL_CMD_SET_START 0
24
25//打开AP LOG输出
26#define CELL_IOCTL_SET_TRACE_ON 1
27//关闭AP LOG输出
28#define CELL_IOCTL_SET_TRACE_OFF 2
29//电源键关机功能使能
30#define CELL_IOCTL_SET_POWEKEY_ENABLE_POWEROFF 3
31//电源键关机功能禁止
32#define CELL_IOCTL_SET_POWEKEY_DISABLE_POWEROFF 4
33//关闭UART的AT命令服务
34#define CELL_IOCTL_SET_ATUART_OFF 5
35//打开UART的AT命令服务
36#define CELL_IOCTL_SET_ATUART_ON 6
37//获取RSSI dBm值
38#define CELL_IOCTL_GET_RSSIDBM 7
39
40//获取当前蜂窝设备所在的网络类型
41#define CELL_IOCTL_GET_NET_TYPE 8
42
43/*
44获取当前蜂窝设备的参考信号质量,参考AT+CSQ
45<rssi>:
46 0 113 dBm or less
47 1 111 dBm
48 2. . . 30 109. . . 53 dBm
49 31 51 dBm or greater
50 99 not known or not detectable
51*/
52#define CELL_IOCTL_GET_RSSI 9
53
54// 设置短信内容格式
55#define CELL_IOCTL_SET_SMS_CHAR 10
56
57
58// 串口自检,一般用于涂鸦产测方案
59#define CELL_IOCTL_SET_UART_SELFTEST 0x100
60// TF卡自检,一般用于涂鸦产测方案
61#define CELL_IOCTL_SET_TFCARD_SELFTEST 0x101
62// ADC自检,一般用于涂鸦产测方案
63#define CELL_IOCTL_SET_ADC_SELFTEST 0x102
64// 麦克风喇叭自检,一般用于涂鸦产测方案
65#define CELL_IOCTL_SET_MIC_SELFTEST 0x103
66
67// 获取信息类命令起始值
68#define CELL_IOCTL_CMD_GET_START 0x400
69
70// 获取系统的Epoch 时间,单位秒
71#define CELL_IOCTL_GET_EPOCH_TIME 0x401
72// 获取本次系统上电后的累计时间,单位ms
73#define CELL_IOCTL_GET_UP_TIME 0x402
74// 获取本次系统上电后的累计时间,单位us
75#define CELL_IOCTL_GET_UP_TIME_US 0x403
76
77
78#define CELL_IOCTL_CMD_USR_START 0x1000
79
80
84typedef enum
85{
86 TKL_NO_SIM, /*< 无SIM卡 */
87 TKL_SIM_READY, /*< SIM已识别 */
89
90typedef enum{
91 TUYA_TSIM_TYPE, /* 物理卡 */
92 TUYA_VSIM_TYPE, /* 虚拟卡 */
93}TUYA_SIM_TYPE_E;
94
95typedef enum {
96 DOUBLE_SIM_DOUBLE_CHANNEL = 1,
97 DOUBLE_SIM_SINGLE_CHANNEL = 2,
98 SINGLE_SIM_SINGLE_CHANNEL = 4,
99}TKL_CELLULAR_ABILITY_E;
100
101typedef enum
102{
103 TUYA_CELL_NET_TYPE_UNKNOWN = -1,
104 TUYA_CELL_NET_TYPE_GSM = 1,
105 TUYA_CELL_NET_TYPE_LTE,
106}TUYA_CELLULAR_RAT_E;
107
108#define NEIGHBOUR_NUM 4
109typedef struct {
110 UINT16_T lac; //LAC
111 INT16_T rx_pwr;
112 UINT_T cellid; //20bits(eNodeID)+8bits(Cellid)
114
115typedef struct
116{
117 UCHAR_T mcc[3];
118 UCHAR_T mnc[3];
119 TKL_CELL_INFO_T main;
120 TKL_CELL_INFO_T neighbour[NEIGHBOUR_NUM];
122
123typedef struct {
124 INT_T fd;
125 CHAR_T name[32+1];
127 UINT8_T sim_id;
128 TUYA_SIM_TYPE_E sim_type;
130
135typedef VOID (*TKL_SIM_NOTIFY)(TKL_SIM_STATE_E status);
136
137
138OPERATE_RET tkl_cellular_base_init(TKL_CELL_INIT_PARAM_T *param);
139
145OPERATE_RET tkl_cellular_base_get_ability(TKL_CELLULAR_ABILITY_E *ability);
146
152OPERATE_RET tkl_cellular_base_switch_sim(UINT8_T sim_id);
153
161
170OPERATE_RET tkl_cellular_base_enable_sim_hotplug(UINT8_T sim_id, BOOL_T enable);
171
178OPERATE_RET tkl_cellular_base_sim_get_status(UINT8_T sim_id, UCHAR_T *state);
179
188OPERATE_RET tkl_cellular_base_get_cfun_mode(UINT8_T simd_id,PINT_T cfun);
189
200OPERATE_RET tkl_cellular_base_set_cfun_mode(UINT8_T simd_id,INT_T cfun);
201
211OPERATE_RET tkl_cellular_base_get_imsi(UINT8_T sim_id,CHAR_T imsi[15 + 1]);
212
219OPERATE_RET tkl_cellular_base_get_iccid (UINT8_T sim_id,CHAR_T iccid[20 + 1]);
226OPERATE_RET tkl_cellular_base_get_imei (UINT8_T sim_id,CHAR_T imei[15 + 1]);
227
235OPERATE_RET tkl_cellular_base_set_imei (UINT8_T sim_id,CHAR_T imei[15 + 1]);
236
244OPERATE_RET tkl_cellular_base_get_rsrp(UINT8_T sim_id,INT_T *rsrp);
245
254OPERATE_RET tkl_cellular_base_get_sinr(UINT8_T sim_id,INT_T *sinr,INT_T *bit_error);
255
265OPERATE_RET tkl_cellular_base_get_lbs(UINT8_T sim_id,TKL_LBS_INFO_T *lbs,BOOL_T neighbour,INT_T timeout);
266
274
275
284OPERATE_RET tkl_cellular_base_enable_sim_detect(UINT8_T simid, BOOL_T enable);
285
293
294
303OPERATE_RET tkl_cellular_base_ioctl(INT_T cmd,VOID* argv);
304
305#ifdef __cplusplus
306}
307#endif
308
309#endif
Definition: tkl_cellular_base.h:109
Definition: tkl_cellular_base.h:123
Definition: tkl_cellular_base.h:116
uart config
Definition: tuya_cloud_types.h:972
OPERATE_RET tkl_cellular_base_get_sinr(UINT8_T sim_id, INT_T *sinr, INT_T *bit_error)
获取蜂窝设备SIM卡所在通道的信号噪声比及误码率
VOID(* TKL_SIM_NOTIFY)(TKL_SIM_STATE_E status)
sim卡状态变化通知函数原型
Definition: tkl_cellular_base.h:135
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的基站信息)
TKL_SIM_STATE_E
sim卡状态定义
Definition: tkl_cellular_base.h:85
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卡中的国际移动用户识别码
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)
蜂窝基础的通用控制功能,一般作为平台提供一些特殊的能力接口
Common process - adapter the uart api