/*****************************************************************************
Copyright: 2013-2018, MIAO XUN TECH. Co., Ltd.
File name:ps_mcp_set.c
Description: 上报模块
Author: 周涛
Version: 0.0.01
Date: 2024-9-30
History:
*****************************************************************************/

#include "includes.h"

// 上报响应成功处理函数
//  pbyData:  接收到得数据,wLen:  数据长度,bySouruce:  数据来源
uint8 ps_up_mcp_report_resp_ok(uint8 *pbyData, uint8 bySouruce, uint16 wLen)
{
    uint8 byFlag = 0;                // 返回标志
    uint8 abyLtv[UDP_MCP_A_LTV_LEN]; // ltv数组
    int16 wCommand = 0;              // 监控命令
    PS_HEAD_T *pstHead = (PS_HEAD_T *)pbyData;
    LTV_T *pstLtv = (LTV_T *)(pbyData + sizeof(PS_HEAD_T));
    uint16 currentLen = sizeof(PS_HEAD_T); // 当前初始长度

    // 遍历消息，组织设置数据
    while (currentLen < (wLen - 3))
    {
        currentLen += pstLtv->wLen;
        wCommand = pstLtv->wTag;
        SYS_MEMCPY(abyLtv, pstLtv, pstLtv->wLen); // 将数据拷贝到临时数组中

        // 上报
        if (0x0200 <= wCommand && 0x02FF >= wCommand)
        {
            // 应答成功
            oam_report_resp_ok(wCommand, abyLtv);
        }

        SYS_MEMCPY(pstLtv, abyLtv, pstLtv->wLen); // 将数据拷贝到临时数组中

        if (currentLen < (wLen - 3))
        {
            pstLtv = (LTV_T *)(pbyData + currentLen); // 指针后移一个对象的长度
        }
    }

    return 0;
}
