Code Monkey home page Code Monkey logo

iotkit-embedded's Introduction

用户手册

官网

C-SDK 简介

设备厂商在设备上集成 C-SDK 后, 可以将设备安全的接入到阿里云IoT物联网平台, 从而使设备可以被阿里云IoT物联网平台进行管理

设备需要支持TCP/IP协议栈或串口通信, 以及C99标准的C库才能集成SDK, zigbee/433/KNX这样的非IP设备需要通过网关设备接入到阿里云IoT物联网平台, 网关设备需要集成C-SDK

快速开始

用户可以通过快速的体验C-SDK感受如何将设备连接到阿里云物联网平台, 并如何将设备的数据发送到平台/以及如何从物联网平台接收数据

移植说明

C-SDK与OS/硬件平台无关, 全部部分用C编写, 它定义了HAL层来对接与硬件相关的功能, 因此在使用C-SDK时用户需要去实现相关的HAL函数

目前C-SDK已提供了在Linux/Windows上HAL的参考实现, 同时对于一些常见的OS或者模组也进行了适配, 可以访问此处查看如何在相应平台上进行SDK的编译与集成

iotkit-embedded's People

Contributors

caveguy avatar huaianrenhnu avatar shinyshy avatar xicaichen-hangzhou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iotkit-embedded's Issues

如何获取云端的PRODUCT_KEY等三元组

Hello, 云端建好的PRODUCT_KEY DEVICE_SECRET DEVICE_NAME, 设备端有什么简单办法可以获取到,然后直接订阅topic = "/"PRODUCT_KEY"/"DEVICE_NAME"/get"? 谢谢

visual c++ 和 keil5(MDK-ARM)均无法编译通过

visual c++ (visual studio 2013 update5)和 keil5(MDK-ARM Pro v5.23)均无法编译通过,无法跨平台移植。显示 lite-list.h 这个文件中 list_for_each_entry_safe 语法错误,(猜测这个文件居然是从linux内核代码拷贝过来的!? )。

http模块不能正常解析带Transfer-Encoding: chunked的responese

不知道你们的http模块是否是通用模块,当回包带有Transfer-Encoding: chunked,代码中会进入判断if (client_data->response_content_len == -1 && client_data->is_chunked == false),按照期望应该进入if (client_data->is_chunked && client_data->retrieve_len <= 0)这里才正常的吧?

error: MQTT read error

Hi,

I used IoT-SDK on other platform, and the device connected to the net by WiFi,
and I used the example mqtt-example, but I got the following error after connecting to the iot controler.

[inf] utils_network_ssl_read(236): ssl recv error: code = -30848, err_str = 'SSL - The peer notified us that '
[dbg] iotx_mc_read_packet(746): mqtt read error, rc=-2
[dbg] iotx_mc_cycle(1214): readPacket error,result = -1
[err] iotx_mc_keepalive(1798): network is disconnected!
event_handle|060 :: MQTT disconnect.
[inf] utils_network_ssl_disconnect(297): ssl_disconnect
[err] iotx_mc_publish(1420): mqtt client state is error,state = 4
mqtt_client|232 :: error occur when publish
[err] iotx_mc_unsubscribe(1386): mqtt client state is error,state = 4
[inf] iotx_mc_release(2100): mqtt release!

I want to know if it's the problem of WiFi or other reasons, thank you!

[BUG] 剪裁版本的 mbedtls 库缓冲区溢出问题

在使用中发现当前的裁剪版本的 mbedtls 库当调用 mbedtls_ssl_write 发送一个较大的buffer内容时会导致应用“segmentation fault",我的测试是尝试通过 IOT_MQTT_Publish 函数发送最多256KB的JSON字符串,但是实际长度较大时就崩溃了。
经过一番深入调查,发现官方社区已经存在该问题报告并已经解决:
Mbed-TLS/mbedtls#707
请根据以上链接内容对该BUG修复一下。

ota模块下载过程中为什么一直要httpclient_send_request?

在ota_mqtt-example.c中

do {

    len = IOT_OTA_FetchYield(h_ota, buf_ota, OTA_BUF_LEN, 1);
    if (len > 0) {
        if (1 != fwrite(buf_ota, len, 1, fp)) {
            EXAMPLE_TRACE("write data to file failed");
            rc = -1;
            break;
        }
    }

    /* get OTA information */
    IOT_OTA_Ioctl(h_ota, IOT_OTAG_FETCHED_SIZE, &size_downloaded, 4);
    IOT_OTA_Ioctl(h_ota, IOT_OTAG_FILE_SIZE, &size_file, 4);
    IOT_OTA_Ioctl(h_ota, IOT_OTAG_MD5SUM, md5sum, 33);
    IOT_OTA_Ioctl(h_ota, IOT_OTAG_VERSION, version, 128);

    last_percent = percent;
    percent = (size_downloaded * 100) / size_file;
    if (percent - last_percent > 0) {
        IOT_OTA_ReportProgress(h_ota, percent, NULL);
        IOT_OTA_ReportProgress(h_ota, percent, "hello");
    }
    IOT_MQTT_Yield(pclient, 100);
} while (!IOT_OTA_IsFetchFinish(h_ota));

为什么IOT_OTA_FetchYield要内部要一直调用ofc_Fetch->httpclient_common->httpclient_send_request,这样一个http/https请求要一直写数据,是不是很影响设备的性能,特备是性能受限的设备?

建议SDK在设备连接认证阶段允许上报自定义的设备属性

最近在套件的管理控制台里发现了每个设备都有一个默认的设备属性(坐标),而且还允许添加自定义属性,这个功能很有用,但是一查后发现只提供服务端API接口, 设备端SDK尚未发现支持该功能。

如果给设备SDK加上此功能允许每次设备连接时附带一些自定义的属性键值对才会更实用。
比如可以上报当前使用的GPRS/4G模块、SIM卡、运营商等相关信息。

2.10版本代码没有发布吗?

看到官网上显示SDK在2018/03/31发布了2.10版本的release,文件名是RELEASED_V2_10_20180331.zip,但是没有下载链接,这里的代码release版本还是2.03。什么时候更新一下代码?

不能进入订阅回调函数

在君正x1000 平台中跑Linux 系统,然后使用这个套件。同时我订阅3个,但是每次只能一个使用。如果我管其中两个(随意两个),剩下的都可以进入回调函数。但是如果三都开,就两个有问题。但是在event_handle函数中有提示topic message arrived but without any related handle。说明有接收到,但是没有进入回调函数。这是什么原因呢

feedback warning

Hi,

I found there is a samll questions in the code /src/packages/LITE-utils/json_parser.c#L218 ,

the structure JSON_NV was defined with five numbers, but on the line218, it was initlized with only four numbers as follows:
JSON_NV stNV = { 0, 0, 0, 0 };

So, it was an warning when I transplant the code

I hope this feedback will be considered.

fetch 固件时出错

当执行IOT_OTA_FetchYield时出现出错,请问是什么原因
当前IOT_OTA_IsFetching为true

[inf] _ssl_client_init(175): Loading the CA root certificate ...
cert. version     : 3
serial number     : 04:00:00:00:00:01:15:4B:5A:C3:94
issuer name       : C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
subject name      : C=BE, O=GlobalSign nv-sa, OU=Root CA, CN=GlobalSign Root CA
issued  on        : 1998-09-01 12:00:00
expires on        : 2028-01-28 12:00:00
signed using      : RSA with SHA1
RSA key size      : 2048 bits
basic constraints : CA=true
key usage         : Key Cert Sign, CRL Sign
[inf] _ssl_parse_crt(142): crt content:451
[inf] _ssl_client_init(185):  ok (0 skipped)
[inf] TLSConnectNetwork(360): Connecting to /iotx-ota.oss-cn-shanghai.aliyuncs.com/443...
[inf] TLSConnectNetwork(367):  ok
[inf] TLSConnectNetwork(372):   . Setting up the SSL/TLS structure...
[inf] TLSConnectNetwork(383):  ok
[inf] TLSConnectNetwork(420): Performing the SSL/TLS handshake...
[inf] TLSConnectNetwork(424): failed  ! mbedtls_ssl_handshake returned -0x7200

mqtt sample project failed

SSL/TLS handshaking fails when running mqtt sample project in linux (productkey, devicename and secret are installed correctly), see logs:

Log.txt

请问杭州节点的SDK移植用于其他节点的吗?什么时候出MDK编译环境

请问杭州节点的SDK移植可以用于其他节点的吗,中间需要修改哪部分,之前移植过杭州节点,现在要使用上海节点的,发现SDK大变样了?期待出MDK或者IAR编译环境的示例,毕竟设备端使用单片机的可能性要大,单片机上不可能跑Linux,不知道官方怎么考虑的,感觉物联网这部分像换了一批人在维护似的,和之前变化太大?

杭州设备端点和华东2设备端点有什么区别?

这两个设备端点的给的移植代码也不一样,连接方式也不一样,这个两个有什么区别呢,如何让用户快速移植呢?目前移植的华东2的SDK到keil 报出缺少头文件,函数定义的局部变量的位置很多不是在函数内顶部,这个在keil报错!

建议给输出的日志加上日期和时间信息

目前的日志输出都没有包含时间戳信息,当诊断问题的时候根本就无法通过输出的日志推测发生的时间。建议考虑在每条日志输出的开头添加上相应的日期和时间信息。谢谢!

Invalid Env

when i run 'make' command on macpro,output some error :
Invalid Env
make: *** [final-out] Error 1

ubuntu14.04

inf] _network_ssl_read(450): ssl recv error: code = -30848, err_str = 'SSL - The peer notified us that '
[dbg] iotx_mc_read_packet(746): mqtt read error, rc=-2
[err] iotx_mc_wait_CONNACK(1195): readPacket error,result = -1
[inf] _network_ssl_disconnect(513): ssl_disconnect
[err] iotx_mc_connect(2024): wait connect ACK timeout, or receive a ACK indicating error!
[inf] HAL_SSL_Destroy(529): handle is NULL
[inf] iotx_mc_disconnect(2125): mqtt disconnect!
[inf] iotx_mc_release(2171): mqtt release!
mqtt_client|207 :: MQTT construct failed

阿里云mqtt在mingw32编译错误

Hi, default 2.03 SDK is ok in ubuntu, but will always fail in my mingw32.exe when building.
how to fix it? thanks

HAL_OS_linux.o <= HAL_OS_linux.c
makefile
os/ubuntu/HAL_OS_linux.c:27:23: 致命错误:sys/prctl.h:No such file or directory
#include <sys/prctl.h>
^
编译中断。
make[2]: *** [/home/kkk/esp/iotx-sdk-c/build-rules/_rules-flat.mk:82:os/ubuntu/HAL_OS_linux.o] 错误 1
make[1]: *** [/home/kkk/esp/iotx-sdk-c/build-rules/_rules-submods.mk:115:src/platform] 错误 2
make: *** [/home/kkk/esp/iotx-sdk-c/build-rules/_rules-submods.mk:5:sub-mods] 错误 2

ros 未定义的引用

下面是输出的log

/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘_ssl_parse_crt’中:
(.text+0x101):对‘mbedtls_x509_crt_info’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Read’中:
(.text+0x242):对‘mbedtls_ssl_conf_read_timeout’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Read’中:
(.text+0x26b):对‘mbedtls_ssl_read’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Read’中:
(.text+0x2c5):对‘mbedtls_strerror’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Read’中:
(.text+0x35b):对‘mbedtls_strerror’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Write’中:
(.text+0x43d):对‘mbedtls_ssl_write’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Write’中:
(.text+0x4a4):对‘mbedtls_strerror’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Destroy’中:
(.text+0x571):对‘mbedtls_ssl_close_notify’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Destroy’中:
(.text+0x584):对‘mbedtls_net_free’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Destroy’中:
(.text+0x597):对‘mbedtls_x509_crt_free’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Destroy’中:
(.text+0x5eb):对‘mbedtls_x509_crt_free’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Destroy’中:
(.text+0x5fe):对‘mbedtls_pk_free’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Destroy’中:
(.text+0x60d):对‘mbedtls_ssl_free’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Destroy’中:
(.text+0x620):对‘mbedtls_ssl_config_free’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0x730):对‘mbedtls_debug_set_threshold’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0x743):对‘mbedtls_net_init’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0x752):对‘mbedtls_ssl_init’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0x761):对‘mbedtls_ssl_config_init’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0x770):对‘mbedtls_x509_crt_init’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0x7c5):对‘mbedtls_x509_crt_parse’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0x8a0):对‘mbedtls_x509_crt_init’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0x8b3):对‘mbedtls_pk_init’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0xba3):对‘mbedtls_ssl_config_defaults’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0xbfe):对‘mbedtls_ssl_conf_max_version’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0xc17):对‘mbedtls_ssl_conf_min_version’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0xc60):对‘mbedtls_ssl_conf_authmode’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0xc7a):对‘mbedtls_ssl_conf_authmode’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0xc8e):对‘mbedtls_ssl_conf_ca_chain’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0xca6):对‘mbedtls_ssl_conf_own_cert’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0xcfe):对‘mbedtls_ssl_conf_rng’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0xd14):对‘mbedtls_ssl_conf_dbg’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0xd26):对‘mbedtls_ssl_setup’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0xd7a):对‘mbedtls_ssl_set_hostname’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0xd85):对‘mbedtls_net_recv_timeout’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0xd8a):对‘mbedtls_net_recv’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0xd8f):对‘mbedtls_net_send’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0xd9e):对‘mbedtls_ssl_set_bio’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0xddd):对‘mbedtls_ssl_handshake’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0xea4):对‘mbedtls_ssl_get_verify_result’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0x103d):对‘mbedtls_x509_crt_free’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0x104d):对‘mbedtls_x509_crt_free’未定义的引用
/home/hosea/3.Projects/ros/x/src/path-planning/map-transfer/lib/libiot_platform.a(HAL_TLS_mbedtls.o):在函数‘HAL_SSL_Establish’中:
(.text+0x106d):对‘mbedtls_free’未定义的引用
CMakeFiles/map-transfer.dir/src/map-transfer.cpp.o:在函数‘MapTransfer::mqtt_client_secure()’中:
map-transfer.cpp:(.text+0x1745):对‘IOT_SetupConnInfoSecure’未定义的引用
map-transfer.cpp:(.text+0x1892):对‘IOT_MQTT_ConstructSecure’未定义的引用
collect2: error: ld returned 1 exit status
path-planning/map-transfer/CMakeFiles/map-transfer.dir/build.make:182: recipe for target '/home/hosea/3.Projects/ros/x/devel/lib/map-transfer/map-transfer' failed
make[2]: *** [/home/hosea/3.Projects/ros/x/devel/lib/map-transfer/map-transfer] Error 1
CMakeFiles/Makefile2:3053: recipe for target 'path-planning/map-transfer/CMakeFiles/map-transfer.dir/all' failed
make[1]: *** [path-planning/map-transfer/CMakeFiles/map-transfer.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed

移植SDK到Keil

将下载下来的代码移植到Keil,报出缺少头文件,还有局部变量定义位置错误的信息,这些怎么处理啊,就没有一个完整的工程吗?

MQTT memory leaks

Hi,

When I connected to the IoT-controler by mqtt, it works will when the net is good, but if the net is interrupt, there will be memory leaks.

I found the reasons is:

When the net is interrupt, IOT_MQTT_Publish will fail and set the client state to IOTX_MC_STATE_DISCONNECTED, so when the main program break to IOT_MQTT_Destroy and go into the iotx_mc_release and iotx_mc_disconnect, because the state is IOTX_MC_STATE_DISCONNECTED, so it thinks the Internet is not connected at all in iotx_mc_check_state_normal, so it return SUCCESS_RETURN in iotx_mc_disconnect,and doesn't free tls resources.

I think the SDK should not confuse "no networking" and "net interrupt".

Thank you!

[Auth/http] while receiving http response timeout,the socket won't be released

utils_http.c --Ln: 369
if (ret > 0) {
p_read_len = ret;
} else if (ret == 0) {
/
timeout */
return FAIL_RETURN; //Return 0, the httpclient_close(client) won't be executed.
} else if (-1 == ret) {
log_info("Connection closed.");
return ERROR_HTTP_CONN;
} else {
log_err("Connection error (recv returned %d)", ret);
return ERROR_HTTP_CONN;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.