Station B: https://space.bilibili.com/309103931
China Mobile 4G module-ML302 column: https://blog.csdn.net/qq_33259323/category_10453372.html
China Mobile 4G Module-ML302 Collection: https://www.bilibili.com/read/readlist/rl328642
1. China Mobile 4G module-ML302-OpenCpu development-(firmware compilation and burning)
https://blog.csdn.net/qq_33259323/article/details/108586847
https://www.bilibili.com/read/cv7876504
2. China Mobile 4G module-ML302-OpenCpu development-(MQTT connects to Alibaba Cloud)
https://blog.csdn.net/qq_33259323/article/details/108638945
https://www.bilibili.com/read/cv7876527
2.1 China Mobile 4G module-ML302-OpenCpu development-(MQTT connection to Alibaba Cloud-subscribe topic)
https://blog.csdn.net/qq_33259323/article/details/108960540
https://www.bilibili.com/read/cv7879954
2.2 China Mobile 4G module-ML302-OpenCpu development-(MQTT connection to Alibaba Cloud-receiving and sending data)
https://blog.csdn.net/qq_33259323/article/details/108964810
https://www.bilibili.com/read/cv7886836
2.3 China Mobile 4G Module-ML302-OpenCpu Development-(MQTT connects to Alibaba Cloud-RRPC communication)
https://blog.csdn.net/qq_33259323/article/details/108965071
https://www.bilibili.com/read/cv7888259
3. China Mobile 4G module-ML302-OpenCpu development-serial port development
https://blog.csdn.net/qq_33259323/article/details/108974888
https://www.bilibili.com/read/cv7888865
4. China Mobile 4G module-ML302-OpenCpu development-51 MCU serial port to I2C
https://blog.csdn.net/qq_33259323/article/details/109020642
https://www.bilibili.com/read/cv7922942
5. China Mobile 4G module-ML302-OpenCpu development-MCP23017 input/output
https://blog.csdn.net/qq_33259323/article/details/109109136
https://www.bilibili.com/read/cv7969395
7. Mid-shift 4G module-ML302-OpenCpu development-PCF8591 measurement voltage
https://blog.csdn.net/qq_33259323/article/details/109109266
https://www.bilibili.com/read/cv7969365
8. China Mobile 4G module-ML302-OpenCpu development-GPIO
https://blog.csdn.net/qq_33259323/article/details/108960947
https://www.bilibili.com/read/cv7877192
9. China Mobile 4G Module-ML302-OpenCpu Development-ADC
https://blog.csdn.net/qq_33259323/article/details/109020864
https://www.bilibili.com/read/cv7922958
10. China Mobile 4G Module-ML302-OpenCpu Development-CJSON
https://blog.csdn.net/qq_33259323/article/details/109020898
https://www.bilibili.com/read/cv7923020
11. China Mobile 4G Module-ML302-OpenCpu Development-HTTP
https://blog.csdn.net/qq_33259323/article/details/109020904
https://www.bilibili.com/read/cv7923054
China Mobile 4G Module-ML302-OpenCpu Development-CJSON
JSON to string
cJSON *root=NULL;
cJSON *sub_js=NULL;
char *out=NULL;
root = cJSON_CreateObject();
cJSON_AddStringToObject(root, "version", "V1.1.0");
cJSON_AddStringToObject(root, "imei", "1xxxxxxxxxxxxxxxx");
cJSON_AddItemToObject(root, "data", sub_js = cJSON_CreateObject());
cJSON_AddNumberToObject(sub_js, "status", 1);
cJSON_AddTrueToObject(sub_js, "material");
cJSON_AddTrueToObject(sub_js, "power_on");
cJSON_AddNumberToObject(sub_js, "qty", 123);
cJSON_AddStringToObject(root, "dt", "2020-01-07T05:15:52");
out=cJSON_Print(root);
cJSON_Delete(root);
cm_printf("[CJSON]:\n");
cm_printf("%s\n",out);
cJSON_free(out);
String to JSON
char * json = "{ \"json\" : { \"id\":1, \"nodeId\":11, \"deviceId\":111, \"deviceName\":\"aaa\", \"ieee\":\"01212\", \"ep\":\"1111\", \"type\":\"bbb\" }}";
char * json1 = "{\"id\":1, \"nodeId\":11, \"deviceId\":111, \"deviceName\":\"aaa\"}";
cJSON * root;
cJSON * format;
int value_int;
char * value_string;
root = cJSON_Parse(json);
format = cJSON_GetObjectItem(root,"json");
value_int = cJSON_GetObjectItem(format,"nodeId")->valueint;
value_string = cJSON_GetObjectItem(format,"ieee")->valuestring;
cm_printf( "%d\n", value_int );
cm_printf( "%s\n", value_string );
cJSON_Delete(root);
root = cJSON_Parse(json1);
value_int = cJSON_GetObjectItem(root,"id")->valueint;
value_string = cJSON_GetObjectItem(root,"deviceName")->valuestring;
cm_printf( "%d\n", value_int );
cm_printf( "%s\n", value_string );
cJSON_Delete(root);