目录
四元组(实际用三个)
product_key,用于生成url
device_name,一般为mac
device_secret
product_secret,一般用不到
flash中需要保存的信息
flash存储的信息包含
1)设备信息:四元组
2)mqtt连云的服务器信息:mqtt_url、region_id、
3)wifi信息:ssid、password。
调试过程总结
1、一键配网可以传过来region_id吗?
一键配网不传region_id,是在code中指定的。是在GOT IP时设定了region_id和mqtt_url并写入到flash中。
2、int _mqtt_connect(uint32_t timeout)
1)获取三元组。如果flash中有就不需要要动态注册,没有的话就通过动态注册获取
Link Kit SDK用户编程接口
参考:Linkkit用户手册
Alink协议相关API
IOT_Linkkit_Open //创建新的device id
IOT_Linkkit_Connect //device 连 aliyun
IOT_Linkkit_Yield //接收云消息,并分发给用户callback
IOT_Linkkit_Close //关闭云连接,并释放本地资源
IOT_Linkkit_TriggerEvent
IOT_Linkkit_Report //上报消息到云POST
IOT_Linkkit_Query //请求消息到云GET
IOT_RegisterCallback //注册cb
IOT_Ioctl
Event列表详解
ITE_CONNECT_SUCC
ITE_DISCONNECTED
ITE_RAWDATA_ARRIVED
ITE_SERVICE_REQUEST
ITE_PROPERTY_SET
ITE_PROPERTY_GET
ITE_REPORT_REPLY
ITE_TRIGGER_EVENT_REPLY
ITE_TIMESTAMP_REPLY
ITE_TOPOLIST_REPLY
ITE_PERMIT_JOIN
ITE_INITIALIZE_COMPLETED
ITE_FOTA
ITE_COTA
基础API
IOT_OpenLog //打开log
IOT_CloseLog //关闭log
IOT_SetLogLevel //设置log等级
IOT_DumpMemoryStats //打印mem使用情况
IOT_SetupConnInfo //通过设备信息获取连云参数
IOT_Ioctl
MQTT相关API
IOT_MQTT_Construct
IOT_MQTT_Destroy
IOT_MQTT_Yield
IOT_MQTT_CheckStateNormal
IOT_MQTT_Subscribe
IOT_MQTT_Subscribe_Sync
IOT_MQTT_Unsubscribe
IOT_MQTT_Publish
IOT_MQTT_Publish_Simple
CoAP上云相关API
IOT_CoAP_Init //初始化CoAP client(轻量化UDP client)
IOT_CoAP_Deinit //释放资源
IOT_CoAP_DeviceNameAuth //向服务器进行设备名认证
IOT_CoAP_Yield //处理来自服务器的消息
IOT_CoAP_SendMessage //发送消息
IOT_CoAP_GetMessagePayload //获取CoAP消息的payload
IOT_CoAP_GetMessageCode //获取CoAP消息的payload_code
HTTP上云相关API
IOT_HTTP_Init
IOT_HTTP_DeInit
IOT_HTTP_DeviceNameAuth
IOT_HTTP_SendMessage
IOT_HTTP_Disconnect
OTA固件下载相关API
IOT_OTA_Init
IOT_OTA_Deinit
IOT_OTA_ReportVersion
IOT_OTA_ReportProgress
IOT_OTA_IsFetching
IOT_OTA_IsFetchFinish
IOT_OTA_FetchYield
IOT_OTA_Ioctl
IOT_OTA_GetLastError
HTTP2流式传输相关API
IOT_HTTP2_Connect
IOT_HTTP2_Stream_Open
IOT_HTTP2_Stream_Send
IOT_HTTP2_Stream_Query
IOT_HTTP2_Stream_Close
IOT_HTTP2_Stream_UploadFile
IOT_HTTP2_Disconnect
WIFI配网绑定相关API
awss_start
awss_stop
awss_config_press
awss_dev_ap_start
awss_dev_ap_stop
awss_report_cloud
awss_report_reset
iotx_event_regist_cb
基础功能相关HAL(需要自己适配)
HAL_Free
HAL_GetChipID
HAL_GetDeviceID
HAL_GetDeviceName
HAL_GetDeviceSecret
HAL_GetFirmwareVersion
HAL_GetModuleID
HAL_GetPartnerID
HAL_GetProductKey
HAL_GetProductSecret
HAL_GetTimeStr
HAL_Kv_Del
HAL_Kv_Erase_All
HAL_Kv_Get
HAL_Kv_Set
HAL_Malloc
HAL_Printf
HAL_Random
HAL_Reboot
HAL_SetDeviceName
HAL_SetDeviceSecret
HAL_SetProductKey
HAL_SetProductSecret
HAL_SleepMs
HAL_Snprintf
HAL_Srandom
HAL_Timer_Create
HAL_Timer_Delete
HAL_Timer_Start
HAL_Timer_Stop
HAL_UptimeMs
HAL_UTC_Get
HAL_UTC_Set
HAL_Vsnprintf
多线程相关HAL
HAL_MutexCreate
HAL_MutexDestroy
HAL_MutexLock
HAL_MutexUnlock
HAL_SemaphoreCreate
HAL_SemaphoreDestroy
HAL_SemaphorePost
HAL_SemaphoreWait
HAL_ThreadCreate
HAL_ThreadDelete
HAL_ThreadDetach
OTA固件升级相关HAL
HAL_Firmware_Persistence_Start
HAL_Firmware_Persistence_Stop
HAL_Firmware_Persistence_Write
HTTP2流式传输相关HAL
HAL_SSL_Destroy
HAL_SSL_Establish
HAL_SSL_Read
HAL_SSL_Write
HAL_TCP_Destroy
HAL_TCP_Establish
HAL_TCP_Read
HAL_TCP_Write
HAL_Fopen
HAL_Fread
HAL_Fwrite
HAL_Fseek
HAL_Ftell
HAL_Fclose
WiFi配网相关HAL
HAL_Aes128_Cbc_Decrypt
HAL_Aes128_Cbc_Encrypt
HAL_Aes128_Cfb_Decrypt
HAL_Aes128_Cfb_Encrypt
HAL_Aes128_Destroy
HAL_Aes128_Init
HAL_Awss_Close_Monitor
HAL_Awss_Connect_Ap
HAL_Awss_Get_Channelscan_Interval_Ms
HAL_Awss_Get_Connect_Default_Ssid_Timeout_Interval_Ms
HAL_Awss_Get_Timeout_Interval_Ms
HAL_Awss_Open_Monitor
HAL_Awss_Switch_Channel
HAL_RF433_Get_Rssi_Dbm
HAL_Sys_Net_Is_Ready
HAL_Wifi_Enable_Mgmt_Frame_Filter
HAL_Wifi_Get_Ap_Info
HAL_Wifi_Get_IP
HAL_Wifi_Get_Mac
HAL_Wifi_Low_Power
HAL_Wifi_Scan
HAL_Wifi_Send_80211_Raw_Frame
HAL_Awss_Open_Ap
HAL_Awss_Close_Ap
消息类型
typedef enum {
ITM_MSG_POST_PROPERTY, // post property value to cloud
ITM_MSG_DEVICEINFO_UPDATE, // post device info update message to cloud
ITM_MSG_DEVICEINFO_DELETE, // post device info delete message to cloud
ITM_MSG_POST_RAW_DATA, // post raw data to cloud
ITM_MSG_LOGIN, // only for slave device, send login request to cloud
ITM_MSG_LOGOUT, // only for slave device, send logout request to cloud
ITM_MSG_BATCH_LOGIN, // only for slave device, send login request to cloud
ITM_MSG_BATCH_LOGOUT, //only for slave device, send logout request to cloud
ITM_MSG_DELETE_TOPO, //only for slave device, send delete topo request to cloud
ITM_MSG_CONNECT_SUBDEV, // connect subdev use new way
ITM_MSG_QUERY_TIMESTAMP, //query ntp time from cloud
ITM_MSG_QUERY_TOPOLIST, //only for master device, query topo list
ITM_MSG_SUBDEV_RESET, //only for master device, request reset subdev
ITM_MSG_QUERY_SUBDEV_ID, //only for master device, qurey subdev device id
ITM_MSG_QUERY_FOTA_DATA, //only for master device, qurey firmware ota data
ITM_MSG_QUERY_COTA_DATA, //only for master device, qurey config ota data
ITM_MSG_REQUEST_COTA, //only for master device, request config ota data from cloud
ITM_MSG_REQUEST_FOTA_IMAGE, //only for master device, request fota image from cloud
ITM_MSG_EVENT_NOTIFY_REPLY, //reply event notify to cloud
#ifdef DM_UNIFIED_SERVICE_POST
ITM_MSG_UNIFIED_SERVICE_POST, //post data to cloud and this this unify method
#endif
IOTX_LINKKIT_MSG_MAX
} iotx_linkkit_msg_type_t;