Gizwits 机智云

机智云使用简单,很适合快速搭建应用,SDK中集成了机智云协议,使用几个简单的API即可快速接入

更多详细介绍可以前往机智云官网

例程:demo/gizwits

1. 枚举类型

Gizwits_Action_t

action 编号

typedef enum{
    GIZWITS_FIXED_LENGTH_ACTION_CONTROL               =  0x01 ,
    GIZWITS_FIXED_LENGTH_ACTION_READ_STATUS           =  0x02 ,
    GIZWITS_FIXED_LENGTH_ACTION_READ_STATUS_ACK       =  0x03 ,
    GIZWITS_FIXED_LENGTH_ACTION_REPORT_STATUS       =  0x04 ,
    GIZWITS_FIXED_LENGTH_ACTION_TRANS_RECV           =  0x05 ,
    GIZWITS_FIXED_LENGTH_ACTION_TRANS_SEND           =  0x06 ,
    GIZWITS_FIXED_LENGTH_ACTION_PUSH_OTA           =  0xfe ,

    GIZWITS_VARIABLE_LENGTH_ACTION_CONTROL             = 0x11 ,
    GIZWITS_VARIABLE_LENGTH_ACTION_READ_STATUS         = 0x12 ,
    GIZWITS_VARIABLE_LENGTH_ACTION_READ_STATUS_ACK     = 0x13 ,
    GIZWITS_VARIABLE_LENGTH_ACTION_REPORT_STATUS     = 0x14 ,
    GIZWITS_VARIABLE_LENGTH_ACTION_TRANS_RECV         = 0x15 ,
    GIZWITS_VARIABLE_LENGTH_ACTION_TRANS_SEND         = 0x16 ,
    GIZWITS_VARIABLE_LENGTH_ACTION_PUSH_OTA             = 0xfe ,

    GIZWITS_ACTION_MAX
}Gizwits_Action_t;

2. 结构体类型

2.1. Gizwits_Config_t

Gizwits配置,必须配置IMEIpkpk_secretalive,pk和pk secret可以在机智云控制面板中创建的应用中找到

typedef struct 
{
    char       imei[32];
    char       did[32];
    char       passcode[16];
    char       pk[48];
    char       pk_secret[48];
    char       hard_version[16];
    char       soft_version[16];
    uint16_t   alive;
}Gizwits_Config_t;

2.2. Gizwits_t

机智云对象

typedef struct{
    Gizwits_Config_t* config;
    void*    cloud;
    char*    otaUrl;
}Gizwits_t;

3. 功能函数

3.1. OnReceivedOnePacket_Callback_t

typedef void (*OnReceivedOnePacket_Callback_t)(Gizwits_t* gizwits, Gizwits_Action_t action,uint8_t* data, int len);
功能

数据接收回调函数

参数
  • gizwits: 机智云对象
  • action: 动作
  • data: 数据
  • len: 数据长度
返回值

3.2. GIZWITS_GetConfig

 bool GIZWITS_GetConfig(Gizwits_Config_t* config, const char* path);
功能

获取机智云配置

参数
  • config: 机智云配置
  • path: 配置文件存放路径,比如"/gizwits_config.conf"
返回值
  • 是否成功地从文件读取到配置

3.3. GIZWITS_Connect

int GIZWITS_Connect(Gizwits_t* gizwits, Gizwits_Config_t* config, const char* configPath);
功能

连接机智云,如果配置对象中的did值为空,则会先注册机智云再登录,需要注意的是,每次重新注册,用户绑定的设备将会自动解绑,即如果设备重新注册,就算之前已经绑定了这个设备的用户也需要重新扫码绑定

参数
  • gizwits: 机智云对象
  • config: 机智云配置
  • configPath: 机智云配置文件路径,用于注册成功后保存did等信息
返回值
  • 是否成功连接到机智云,成功则返回0,否则返回错误代码

3.4. GIZWITS_Send

int GIZWITS_Send(Gizwits_t* gizwits, Gizwits_Action_t action, uint8_t* data, int len);
功能

推送数据到机智云

参数
  • gizwits: 机智云对象
  • action: 动作
  • data: 需要发送的数据
  • len: 需要发送的数据的长度
返回值
  • 是否成功发送数据到机智云,成功则返回0,否则返回错误代码

3.5. GIZWITS_DoReceive

int GIZWITS_DoReceive(Gizwits_t* gizwits, OnReceivedOnePacket_Callback_t onOnePacket);
功能

处理来自机智云的消息,在socket接收到数据时调用

参数
  • gizwits: 机智云对象
  • onOnePacket: 数据回调函数
返回值
  • 返回接收到的原始数据的长度,否则返回错误代码

3.6. GIZWITS_Ping

bool GIZWITS_Ping(Gizwits_t* gizwits);
功能

发送心跳包到机智云,在连接到机智云的配置信息中配置了alive时长,在这段时间内必须调用这个函数给机智云发送心跳包,否则会被服务器判定为已经掉线并强制断开连接

参数
  • gizwits: 机智云对象
返回值
  • 发送心跳包是否成功

3.7. GIZWITS_GetSocket

int GIZWITS_GetSocket(Gizwits_t* gizwits);
功能

获取连接到机智云的socket描述符

参数
  • gizwits: 机智云对象
返回值
  • socket描述符,大于零

3.8. GIZWITS_Close

bool GIZWITS_Close(Gizwits_t* gizwits);
功能

关闭连接

参数
  • gizwits: 机智云对象
返回值
  • 关闭机智云连接是否正常

results matching ""

    No results matching ""