文档

Linux SDK

更新时间:

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

工作原理

Linux SDK

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_portmodule_at_baudrate,详细内容,请参见《云鹰智能卡开发参考手册(linux版)》。

  • 本页导读 (1)