Слияние кода завершено, страница обновится автоматически
/**
* \file kv_main.c
* \brief
* \version 0.1
* \date 2022-10-29
* \author notrynohigh (notrynohigh@outlook.com)
*
* Copyright (c) 2020 by notrynohigh. All Rights Reserved.
*/
#include <time.h>
#include "../port.h"
#include "b_os.h"
int httpfd = -1;
void ntp_test()
{
bUTC_DateTime_t tm;
bUTC_t now_utc = bUTC_GetTime();
bUTC2Struct(&tm, now_utc, 8);
b_log("%d-%02d-%02d %02d:%02d:%02d %02d\r\n", tm.year, tm.month, tm.day, tm.hour, tm.minute,
tm.second, tm.week);
b_log_w(":::::%d\r\n", bGetFreeSize());
if (now_utc > 1711855508)
{
bHttpRequest(httpfd, B_HTTP_GET,
"http://restapi.amap.com/v3/weather/"
"weatherInfo?city=440300&key=2ecb62606e0682a50cae3ade6b30c3b1",
NULL, NULL);
}
}
void HttpCb(bHttpEvent_t event, void *param, void *arg)
{
if (event == B_HTTP_EVENT_RECV_DATA)
{
bHttpRecvData_t *dat = (bHttpRecvData_t *)param;
if (dat->pdat != NULL && dat->len > 0)
{
b_log("%s", dat->pdat);
char *pstr = strstr(dat->pdat, "\r\n\r\n");
if (pstr != NULL)
{
cJSON *root = cJSON_Parse(pstr);
if (root)
{
cJSON *lives = cJSON_GetObjectItem(root, "lives");
if (lives != NULL && lives->type == cJSON_Array)
{
lives = cJSON_GetArrayItem(lives, 0);
cJSON *weather = cJSON_GetObjectItem(lives, "weather");
cJSON *temperature = cJSON_GetObjectItem(lives, "temperature");
cJSON *humidity = cJSON_GetObjectItem(lives, "humidity");
b_log("\r\n\r\nweather: %s\r\n", weather->valuestring);
b_log("\r\ntemperature:%s℃\r\n", temperature->valuestring);
b_log("\r\nhumidity:%s%%\r\n", humidity->valuestring);
}
cJSON_Delete(root);
}
}
}
if (dat)
{
if (dat->release)
{
dat->release(dat->pdat);
}
}
}
}
void bMallocFailedHook()
{
b_log_e("=========================\r\n");
}
int main()
{
port_init();
bInit();
bTcpipSrvInit();
bSntpStart(60 * 60);
httpfd = bHttpInit(HttpCb, NULL);
while (1)
{
bExec();
BOS_PERIODIC_TASK(ntp_test, 1000 * 10);
}
return 0;
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )