|
发表于 2020-4-13 14:07:43
|
显示全部楼层
void onenet_task(void *param)
{
mqtt_client* client = (mqtt_client *)param;
unsigned int val;
//use string //
// unsigned char dup = 0;
// unsigned short packedid = 0;
// int qos = 0;
// unsigned char retain = 0;
int payloadlen=0;
unsigned short json_len;
char tjson[] = "{\"datastreams\":[{\"id\":\"power_current\",\"datapoints\":[{\"value\":%d}]},{\"id\":\"power_voli\",\"datapoints\":[{\"value\":%d}]},{\"id\":\"location\",\"datapoints\":[{\"value\":{\"lon\":118.78032,\"lat\":32.046055}}]}]}";//ce shi dian liu and dianya //
char t_json[256];
char *payload;
int n=0;
// end of use string //
while(1)
{
/**
* Replace this *val* with real captured value by your sensor,
* Here, we just use a rand number which ranges form 15 to 35.
*/
val = os_random() % 20 + 15;
n=val;
memset(t_json, 0, sizeof(t_json));
sprintf(t_json, tjson, (n+1),(n));//temp, humi location //
json_len = strlen(t_json) / sizeof(char);
// send byte to onenet //
// char buf[128];
// memset(buf, 0, sizeof(buf));
// sprintf(&buf[3], "{\"%s\":%d}", ONENET_DATA_STREAM, val);
// unsigned short len = strlen(&buf[3]);
// buf[0] = data_type_simple_json_without_time;
// buf[1] = len >> 8;
// buf[2] = len & 0xFF;
// mqtt_publish(client, "$dp", buf, len + 3, 0, 0);
// for (int i = 0 ; i < len + 3; i ++){
// printf("0x%02x ", buf[i]);
// }
// printf(", len:%d\n", len+3);
sprintf(topic_group, "$%s", "dp");
printf("\r\njson string is = %s", t_json);
printf("\r\njson_len:%d\n", json_len+3);
printf("\r\nonenet opentopic = %s", topic_group);
// topicString.cstring = topic_group;
// dup = 0;
// qos = 1;//1
// retain = 0;//1
// packedid = 1;
//sprintf(payload, tjson);// string //
//payloadlen = strlen(payload);
payloadlen = json_len + 1 + 2 ;//1byte type; 2bytes lenth oneNet need //
payload = (char *)malloc(payloadlen);
printf("\r\nmemery = %d", esp_get_free_heap_size());
if (payload == NULL)
{
printf("\r\nno memery = %s", "no memery");
return;
}
memset(payload, 0, payloadlen);
payload[0] = '\x01'; // type //
payload[1] = (json_len & 0xFF00) >> 8; // length //
payload[2] = json_len & 0xFF;
memcpy(payload + 3, t_json, json_len); // json //
// mqtt_publish(client, topic_group, (char*)payload, payloadlen, 0, 0);
ESP_LOGI(TAG,"onenet_task line 140\n");
fflush(stdout);
user_send(payload,payloadlen);
free(payload);
gpio_set_level(BLINK_GPIO, 0);
vTaskDelay((unsigned long long)ONENET_PUB_INTERVAL* 1000 / portTICK_RATE_MS);//500 tai kuai //
gpio_set_level(BLINK_GPIO, 1);
vTaskDelay((unsigned long long)ONENET_PUB_INTERVAL* 1000 / portTICK_RATE_MS);
}
} |
|