Page 2 of 2

Re: 上报透传数据

Posted: 2023年 Mar 8日 14:05
by yingtao_33

1.从错误码可以看出 你这个属于入参错误。错误码的定义在tuya_error_code.h

企业微信截图_16782552132455.png

2.根据你提供的代码截图也可看得出,raw型dp上报接口框起来的入参应该是指针,目前是值传。

企业微信截图_16782549965060.png
企业微信截图_16782550977025.png

3.tuya_upload_alloc_space / tuya_upload_dp_enum_frame /tuya_upload_delete_space 这三个接口不是SDK提供的,是应用上自己封装的,仅用于obj类型的dp 组合上报。raw型dp上报无需调用。


Re: 上报透传数据

Posted: 2023年 Mar 8日 19:30
by 愚者千虑必有一得
Joy 2023年 Mar 8日 09:57

raw类型,这个要怎么修改呢

不用这么复杂,构造数据准备好,直接调用dev_report_dp_raw_sync接口上报,成功就把data给释放掉。失败的话做一下异常处理。推荐使用我们最新的tuyaos版本,你需要的这些都有例程。

Code: Select all

/**
 * @brief Output the received raw type data and reply to the cloud
 *
 * @param[in] raw_dp: received raw type data
 *
 * @return none
 */
VOID dp_raw_process(TY_RECV_RAW_DP_S *raw_dp)
{
    OPERATE_RET rt = OPRT_OK;

    TAL_PR_NOTICE("raw dp id: %s", raw_dp->dpid);

    for (int i=0; i<raw_dp->len; i++) {
        TAL_PR_DEBUG("0x%02x ", raw_dp->data[i]);
    }
    memcpy(light.power_memory, raw_dp->data, 12);
    TUYA_CALL_ERR_LOG(dev_report_dp_raw_sync(raw_dp->cid, raw_dp->dpid, raw_dp->data, raw_dp->len, 0));

    return;
}