Linux SDK
本文介绍通过Linux SDK实现产品AT指令封装和HAL层功能的方法。
工作原理

SDK提供三种方式通过模组与智能卡进行数据交互:
自实现HAL层函数:适用于无AT通道,或者部分功能无对应AT指令的场景。
自建AT通道:适用于AT通道无法并发的场景。
JSON文件配置串口:适用于有Linux系统,且串口多程序复用无影响的场景。
方式一:自实现HAL层函数
简单步骤介绍如下:
说明
设置HAL层函数过程,详细请参见SDK Demo中ali_smartcard_low_layer_api_test.c
文件。
步骤一:实现相应函数
具体操作,请参见aliyun_iot_smartcard_export_low_layer.h
中的ali_mn_hal_cb_t
及Demo中ali_smartcard_low_layer_api_test.c
。
static int module_hal_init(void)
{}
static int module_hal_deinit(void)
{}
static int module_hal_get_rssi(int32_t *rssi)
{}
static int module_hal_get_iccid(char *iccid, uint8_t len)
{}
......
步骤二:设置回调
static ali_mn_hal_cb_t linux_hal_cb = {
.hal_init = module_hal_init,
.hal_deinit = module_hal_deinit,
.hal_get_rssi = module_hal_get_rssi,
.hal_get_iccid = module_hal_get_iccid,
.hal_get_imsi = module_hal_get_imsi,
.hal_get_imei = module_hal_get_imei,
.hal_get_cgmm = module_hal_get_cgmm,
.hal_get_cgmr = module_hal_get_cgmr,
.hal_get_reg_stat = module_hal_get_reg_stat,
.hal_get_act = module_hal_get_act,
.hal_reset_module = module_hal_reset_module,
.hal_cpbs = module_hal_cpbs,
.hal_cscs = module_hal_cscs,
.hal_cpbr = module_hal_cpbr,
.hal_cpbw = module_hal_cpbw,
.hal_send_at = module_hal_send_at
};
步骤三:注册回调
aliyun_iot_smartcard_init(&linux_hal_cb);
方式二:自建AT通道
创建一个AT通道函数,SDK通过此通道发送AT指令及接收返回信息。
设置AT通道的简单步骤如下:
说明
详细过程,请参见SDK Demo中ali_smartcard_send_at_test.c
文件。
步骤一:AT通道实现函数
static int module_hal_send_at(const char *at_cmd, const char *final_rsp, char *str_resp, int resp_len, long timeout_ms)
{
/*AT通道实现*/
}
步骤二:在linux_hal_cb中注册AT通道函数
static ali_mn_hal_cb_t linux_hal_cb = {
.hal_send_at = module_hal_send_at,
};
步骤三:注册linux_hal_cb使能AT通道
aliyun_iot_smartcard_init(&linux_hal_cb);
方式三:JSON文件配置串口
通过在JSON文件中配置串口,SDK通过串口发送AT指令到模组,与模组进行数据交互。具体请参考Demo中mn_main.c
文件。
说明
JSON文件为aliyun_iot_smartcard_parse_configs
中的config_file
。参数为module_at_port、module_at_baudrate,详细内容,请参见《云鹰智能卡开发参考手册(linux版)》。