Page 1 of 1

关于tuyaos_wf_bk7231n_elp-tuyaos_wf_bk7231n_elp_plug的http请求问题

Posted: 2023年 Sep 18日 18:41
by dav1d

我有一个业务需求,需要在电量上传逻辑中增加http请求,我留意到example_http 并学习,写出demo。
我的问题如下
1.我在src文件中新建myHttp.C,我需要判断设备联网是否联网才调用http请求吗,我注意到app_elec_led.c中216行app_elec_net_led_mode_set函数有进行网络判断,如需要判断联网,我是否能参考这个app_elec_net_led_mode_set函数编写判断设备联网逻辑?或者有更便捷方式,可以帮助我?
2.当我编写完需求后,我如何进去烧录,我手头上有一个完整插座产品,我撬开后能直接烧录验证程序吗?还是能通过云服务进行OTA烧录测试,因为我未修改OTA功能,我认为是可以进行ota烧录验证?

#include "tuya_cloud_types.h"
#include "iot_httpc.h"
#include "ty_cJSON.h"

#include "tal_log.h"
#include "tal_system.h"

#define API "https://app.zendure.tech/factory/auth/token"
#define API_VERSION "1.0"//作用是?

/**

  • @brief http task
    *

  • @param[in] param:Task parameters

  • @return none
    */
    VOID myHttp(INT_T argc, CHAR_T argv[])
    {
    OPERATE_RET rt = OPRT_OK;
    CHAR_T post_data[] ={"{\"token\": \"x6dd123\"}"}
    ty_cJSON
    result = NULL;
    char *print_data = NULL;

    TUYA_CALL_ERR_LOG(iot_httpc_common_post_simple(API, API_VERSION, post_data, NULL, &result));
    if (NULL == result) {
    TAL_PR_DEBUG("result is NULL");
    return;
    }

    print_data = ty_cJSON_PrintUnformatted(result);
    if (NULL != print_data) {
    TAL_PR_NOTICE("print_data: %s", print_data);
    ty_cJSON_FreeBuffer(print_data);
    print_data = NULL;
    }

    ty_cJSON_Delete(result);
    result = NULL;

    return;
    }


Re: 关于tuyaos_wf_bk7231n_elp-tuyaos_wf_bk7231n_elp_plug的http请求问题

Posted: 2023年 Sep 19日 10:47
by yangjie

问题一:

你可以看下 apps/tuyaos_wf_bk7231n_elp-tuyaos_wf_bk7231n_elp_plug/application_components/app_elec_energy_statistics/src/app_elec_energy_monitor.c 文件中的 __upload_energy_data() 函数中的 91 行有对网络状态的判断,你可以参考一下。相关代码如下:

Code: Select all

    TUYA_CALL_ERR_RETURN(get_wf_gw_nw_status(&cur_nw_stat));
    if (STAT_CLOUD_CONN != cur_nw_stat) {
        TAL_PR_ERR("mqtt not connect, not upload energy");
        return OPRT_COM_ERROR;
    }

Re: 关于tuyaos_wf_bk7231n_elp-tuyaos_wf_bk7231n_elp_plug的http请求问题

Posted: 2023年 Sep 19日 10:50
by yangjie

问题二:
建议你通过烧录器直接连接到设备进行烧录