⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prlimplgethisdata.c

📁 104规约linux
💻 C
📖 第 1 页 / 共 3 页
字号:
//******************************************************************
//
//       文件名称:PrlImplGetHisData.c
//       文件内容:104协议项--基本电量数据获取实现文件
//   结构定义规则:见文档《变量定义规范》
//         创建者:
//       创建时间:2007-8-1
//******************************************************************

//*************************头文件包含区*****************************
#include "DefPrl.h"
#include "DefDispData.h"
#include "ShareMemDebugOut.h"
#include "ShareMemOp.h"
#include "PrlFuncDeclare.h"
//******************************************************************

#define FILL_TIME(obj, src) FillTime(&obj, &src)

//长期电压变动(电压偏差)
int PrlGetLngTmVltVrtn(TPrlFrame *PrlFrame, void *Param1, void *Param2)
{
    unsigned int LineID = PrlFrame->UserData.DeviceAddress.ThreadID+1;
    TLineParam LineParam;
    TLineDataStatis *LineDataStatis = (TLineDataStatis *)Param1;
    struct LngTmVrtn_LCD *Data = (struct LngTmVrtn_LCD *)PrlFrame->UserData.Data;
    TimeYS curtime;

    GetMainLineParam(LineID, &LineParam);
    GetTimeYS(&curtime);

    strncpy(Data->Name, LineParam.LineDspSet.LineName,  STR_LINE_NAME_LEN);
    
    Data->Stat = (unsigned int)Param2;
    if(LineParam.MonitorType.UConnectionType == CT_V)
    {
        Data->LineFlag=1;
    }
    else
    { 
        Data->LineFlag=0;
    }

    Data->UnDvtn_A=LineDataStatis->AvgVlt.VltDvtn.AN;
    Data->UnDvtn_B=LineDataStatis->AvgVlt.VltDvtn.BN;
    Data->UnDvtn_C=LineDataStatis->AvgVlt.VltDvtn.CN;

    Data->PstvUnDvtnExtrm_A=LineDataStatis->ExtrVltRes.VltPstvDvtnExtr.MxAN;
    FILL_TIME(Data->PstvUnDvtn_A_T, LineDataStatis->ExtrVltRes.VltPstvDvtnExtr.MxTmAN);
    Data->PstvUnDvtnExtrm_B=LineDataStatis->ExtrVltRes.VltPstvDvtnExtr.MxBN;
    FILL_TIME(Data->PstvUnDvtn_B_T, LineDataStatis->ExtrVltRes.VltPstvDvtnExtr.MxTmBN);
    Data->PstvUnDvtnExtrm_C=LineDataStatis->ExtrVltRes.VltPstvDvtnExtr.MxCN;
    FILL_TIME(Data->PstvUnDvtn_C_T, LineDataStatis->ExtrVltRes.VltPstvDvtnExtr.MxTmCN);
    Data->NgtvUnDvtnExtrm_A=LineDataStatis->ExtrVltRes.VltNgtvDvtnExtr.MxAN;
    FILL_TIME(Data->NgtvUnDvtn_A_T,LineDataStatis->ExtrVltRes.VltNgtvDvtnExtr.MxTmAN);
    Data->NgtvUnDvtnExtrm_B=LineDataStatis->ExtrVltRes.VltNgtvDvtnExtr.MxBN;
    FILL_TIME(Data->NgtvUnDvtn_B_T,LineDataStatis->ExtrVltRes.VltNgtvDvtnExtr.MxTmBN);
    Data->NgtvUnDvtnExtrm_C=LineDataStatis->ExtrVltRes.VltNgtvDvtnExtr.MxCN;
    FILL_TIME(Data->NgtvUnDvtn_C_T,LineDataStatis->ExtrVltRes.VltNgtvDvtnExtr.MxTmCN);
    Data->UnQlfctnRt_A=LineDataStatis->QlfcRtVlt.PhsVltRmsQlfcRt.QtAN;
    Data->UnQlfctnRt_B=LineDataStatis->QlfcRtVlt.PhsVltRmsQlfcRt.QtBN;
    Data->UnQlfctnRt_C=LineDataStatis->QlfcRtVlt.PhsVltRmsQlfcRt.QtCN;
    Data->OvrUnRt_A=LineDataStatis->QlfcRtVlt.PhsVltRmsQlfcRt.UpAN;
    Data->OvrUnRt_B=LineDataStatis->QlfcRtVlt.PhsVltRmsQlfcRt.UpBN;
    Data->OvrUnRt_C=LineDataStatis->QlfcRtVlt.PhsVltRmsQlfcRt.UpCN;
    Data->UdrUnRt_A=LineDataStatis->QlfcRtVlt.PhsVltRmsQlfcRt.DwnAN;    
    Data->UdrUnRt_B=LineDataStatis->QlfcRtVlt.PhsVltRmsQlfcRt.DwnBN;
    Data->UdrUnRt_C=LineDataStatis->QlfcRtVlt.PhsVltRmsQlfcRt.DwnCN;    

    if(CheckTimeMatch(Data->Stat, LineDataStatis->TimeStatis, curtime) == 0)
    {
        Data->UnDvtn_A=0;
        Data->UnDvtn_B=0;
        Data->UnDvtn_C=0;

        Data->PstvUnDvtnExtrm_A=0;
        memset(&Data->PstvUnDvtn_A_T, 0, sizeof(Time_s));
        Data->PstvUnDvtnExtrm_B=0;
        memset(&Data->PstvUnDvtn_B_T, 0, sizeof(Time_s));
        Data->PstvUnDvtnExtrm_C=0;
        memset(&Data->PstvUnDvtn_C_T, 0, sizeof(Time_s));
        Data->NgtvUnDvtnExtrm_A=0;
        memset(&Data->NgtvUnDvtn_A_T, 0, sizeof(Time_s));
        Data->NgtvUnDvtnExtrm_B=0;
        memset(&Data->NgtvUnDvtn_B_T, 0, sizeof(Time_s));
        Data->NgtvUnDvtnExtrm_C=0;
        memset(&Data->NgtvUnDvtn_C_T, 0, sizeof(Time_s));
        Data->UnQlfctnRt_A=0;
        Data->UnQlfctnRt_B=0;
        Data->UnQlfctnRt_C=0;    
        Data->OvrUnRt_A=0;
        Data->OvrUnRt_B=0;
        Data->OvrUnRt_C=0;
        Data->UdrUnRt_A=0;        
        Data->UdrUnRt_B=0;
        Data->UdrUnRt_C=0;    
    }
    PrlFrame->UserData.DataLen = sizeof(struct LngTmVrtn_LCD);
    return PRL_EXECUTE_OK;
}

//长期频率变动(频率偏差)
int PrlGetLngTmFrqVrtn(TPrlFrame *PrlFrame, void *Param1, void *Param2)
{
    unsigned int LineID = PrlFrame->UserData.DeviceAddress.ThreadID+1;
    TLineParam LineParam;
    TLineDataStatis *LineDataStatis = (TLineDataStatis *)Param1;
    struct LngTmFrqVrtn_LCD *Data = (struct LngTmFrqVrtn_LCD *)PrlFrame->UserData.Data;
    TimeYS curtime;
    
    Data->Stat = (unsigned int)Param2;
    GetMainLineParam(LineID, &LineParam);
    GetTimeYS(&curtime);

    strncpy(Data->Name, LineParam.LineDspSet.LineName, STR_LINE_NAME_LEN);

    if(LineParam.MonitorType.UConnectionType == CT_V)
    {
        Data->LineFlag=1;
    }
    else
    {
        Data->LineFlag=0;
    }
    
    Data->FrqDvtn_A = LineDataStatis->AvgVlt.FrqDvtn.AN;
    Data->FrqDvtn_B = LineDataStatis->AvgVlt.FrqDvtn.BN;
    Data->FrqDvtn_C = LineDataStatis->AvgVlt.FrqDvtn.CN;
    Data->HghFrqDvtnExtrm_A = LineDataStatis->ExtrVltRes.FrqPstvDvtnExtr.MxAN;
    FILL_TIME(Data->HghFrqDvtn_A_T, LineDataStatis->ExtrVltRes.FrqPstvDvtnExtr.MxTmAN);
    Data->HghFrqDvtnExtrm_B = LineDataStatis->ExtrVltRes.FrqPstvDvtnExtr.MxBN;
    FILL_TIME(Data->HghFrqDvtn_B_T, LineDataStatis->ExtrVltRes.FrqPstvDvtnExtr.MxTmBN);
    Data->HghFrqDvtnExtrm_C = LineDataStatis->ExtrVltRes.FrqPstvDvtnExtr.MxCN;
    FILL_TIME(Data->HghFrqDvtn_C_T, LineDataStatis->ExtrVltRes.FrqPstvDvtnExtr.MxTmCN);
    Data->LwFrqDvtnExtrm_A = LineDataStatis->ExtrVltRes.FrqNgtvDvtnExtr.MxAN;
    FILL_TIME(Data->LwFrqDvtn_A_T, LineDataStatis->ExtrVltRes.FrqNgtvDvtnExtr.MxTmAN);
    Data->LwFrqDvtnExtrm_B = LineDataStatis->ExtrVltRes.FrqNgtvDvtnExtr.MxBN;
    FILL_TIME(Data->LwFrqDvtn_B_T, LineDataStatis->ExtrVltRes.FrqNgtvDvtnExtr.MxTmBN);
    Data->LwFrqDvtnExtrm_C = LineDataStatis->ExtrVltRes.FrqNgtvDvtnExtr.MxCN;
    FILL_TIME(Data->LwFrqDvtn_C_T, LineDataStatis->ExtrVltRes.FrqNgtvDvtnExtr.MxTmCN);
    Data->FrqQlfctnRt_A = LineDataStatis->QlfcRtVlt.FrqQlfcRt.QtAN;
    Data->FrqQlfctnRt_B = LineDataStatis->QlfcRtVlt.FrqQlfcRt.QtBN;    
    Data->FrqQlfctnRt_C = LineDataStatis->QlfcRtVlt.FrqQlfcRt.QtCN;
    Data->HghFrqTm_A = LineDataStatis->QlfcRtVlt.FrqQlfcRt.UpAN;    
    Data->HghFrqTm_B = LineDataStatis->QlfcRtVlt.FrqQlfcRt.UpBN;
    Data->HghFrqTm_C = LineDataStatis->QlfcRtVlt.FrqQlfcRt.UpCN;
    Data->LwFrqTm_A = LineDataStatis->QlfcRtVlt.FrqQlfcRt.DwnAN;
    Data->LwFrqTm_B = LineDataStatis->QlfcRtVlt.FrqQlfcRt.DwnBN;
    Data->LwFrqTm_C = LineDataStatis->QlfcRtVlt.FrqQlfcRt.DwnCN;
    
    if(CheckTimeMatch(Data->Stat, LineDataStatis->TimeStatis, curtime) == 0)
    {
        Data->FrqDvtn_A = 0;
        Data->FrqDvtn_B = 0;
        Data->FrqDvtn_C = 0;
        Data->HghFrqDvtnExtrm_A = 0;
        memset(&Data->HghFrqDvtn_A_T, 0, sizeof(Time_s));
        Data->HghFrqDvtnExtrm_B = 0;
        memset(&Data->HghFrqDvtn_B_T, 0, sizeof(Time_s));
        Data->HghFrqDvtnExtrm_C = 0;
        memset(&Data->HghFrqDvtn_C_T, 0, sizeof(Time_s));
        Data->LwFrqDvtnExtrm_A = 0;
        memset(&Data->LwFrqDvtn_A_T, 0, sizeof(Time_s));
        Data->LwFrqDvtnExtrm_B = 0;
        memset(&Data->LwFrqDvtn_B_T, 0, sizeof(Time_s));
        Data->LwFrqDvtnExtrm_C = 0;
        memset(&Data->LwFrqDvtn_C_T, 0, sizeof(Time_s));
        Data->FrqQlfctnRt_A = 0;
        Data->FrqQlfctnRt_B = 0;    
        Data->FrqQlfctnRt_C = 0;
        Data->HghFrqTm_A = 0;    
        Data->HghFrqTm_B = 0;
        Data->HghFrqTm_C = 0;
        Data->LwFrqTm_A = 0;
        Data->LwFrqTm_B = 0;
        Data->LwFrqTm_C = 0;
    }
    
    PrlFrame->UserData.DataLen = sizeof(struct LngTmFrqVrtn_LCD);
    return PRL_EXECUTE_OK;

}

//总谐波电压数值表
int PrlGetTtlHarUn(TPrlFrame *PrlFrame, void *Param1, void *Param2)
{
    unsigned int LineID = PrlFrame->UserData.DeviceAddress.ThreadID+1;
    TLineParam LineParam;
    TLineDataStatis *LineDataStatis = (TLineDataStatis *)Param1;
    struct TtlHarUn_LCD *Data = (struct TtlHarUn_LCD *)PrlFrame->UserData.Data;
    TimeYS curtime;
    
    Data->Stat = (unsigned int)Param2;
    GetMainLineParam(LineID, &LineParam);
    GetTimeYS(&curtime);

    strncpy(Data->Name, LineParam.LineDspSet.LineName, STR_LINE_NAME_LEN);

    if(LineParam.MonitorType.UConnectionType == CT_V)
    {
        Data->LineFlag=1;
    }
    else
    {
        Data->LineFlag=0;
    }
        
    Data->TtlHarUnEffctv_A=LineDataStatis->AvgVlt.TtlHrmnVltCnt.AN;
    Data->TtlHarUnEffctv_B=LineDataStatis->AvgVlt.TtlHrmnVltCnt.BN;
    Data->TtlHarUnEffctv_C=LineDataStatis->AvgVlt.TtlHrmnVltCnt.CN;
        
    Data->MxTtlHarUnEffctv_A=LineDataStatis->ExtrVltRes.TtlHrmnVltCntExtr.MxAN;
    FILL_TIME(Data->MxTtlHarUnEffctv_A_T,LineDataStatis->ExtrVltRes.TtlHrmnVltCntExtr.MxTmAN);
    Data->MxTtlHarUnEffctv_B=LineDataStatis->ExtrVltRes.TtlHrmnVltCntExtr.MxBN;
    FILL_TIME(Data->MxTtlHarUnEffctv_B_T,LineDataStatis->ExtrVltRes.TtlHrmnVltCntExtr.MxTmBN);
    Data->MxTtlHarUnEffctv_C=LineDataStatis->ExtrVltRes.TtlHrmnVltCntExtr.MxCN;
    FILL_TIME(Data->MxTtlHarUnEffctv_C_T,LineDataStatis->ExtrVltRes.TtlHrmnVltCntExtr.MxTmCN);
        
    Data->MnTtlHarUnEffctv_A=LineDataStatis->ExtrVltRes.TtlHrmnVltCntExtr.MnAN;
    FILL_TIME(Data->MnTtlHarUnEffctv_A_T,LineDataStatis->ExtrVltRes.TtlHrmnVltCntExtr.MnTmAN);
    Data->MnTtlHarUnEffctv_B=LineDataStatis->ExtrVltRes.TtlHrmnVltCntExtr.MnBN;
    FILL_TIME(Data->MnTtlHarUnEffctv_B_T,LineDataStatis->ExtrVltRes.TtlHrmnVltCntExtr.MnTmBN);
    Data->MnTtlHarUnEffctv_C=LineDataStatis->ExtrVltRes.TtlHrmnVltCntExtr.MnCN;
    FILL_TIME(Data->MnTtlHarUnEffctv_C_T,LineDataStatis->ExtrVltRes.TtlHrmnVltCntExtr.MnTmCN);
        
    Data->AvTtlUnDstrtnRt_A=LineDataStatis->AvgVlt.TtlHrmnVltDstRt.AN;
    Data->MxTtlUnDstrtnRt_A=LineDataStatis->ExtrVltRes.TtlHrmnVltDstRtExtr.MxAN;
    Data->MnTtlUnDstrtnRt_A=LineDataStatis->ExtrVltRes.TtlHrmnVltDstRtExtr.MnAN;
    Data->AvTtlUnDstrtnRt_B=LineDataStatis->AvgVlt.TtlHrmnVltDstRt.BN;
    Data->MxTtlUnDstrtnRt_B=LineDataStatis->ExtrVltRes.TtlHrmnVltDstRtExtr.MxBN;
    Data->MnTtlUnDstrtnRt_B=LineDataStatis->ExtrVltRes.TtlHrmnVltDstRtExtr.MnBN;
    Data->AvTtlUnDstrtnRt_C=LineDataStatis->AvgVlt.TtlHrmnVltDstRt.CN;
    Data->MxTtlUnDstrtnRt_C=LineDataStatis->ExtrVltRes.TtlHrmnVltDstRtExtr.MxCN;
    Data->MnTtlUnDstrtnRt_C=LineDataStatis->ExtrVltRes.TtlHrmnVltDstRtExtr.MnCN;
    Data->TtlUnDstrtnRt_A=LineDataStatis->QlfcRtVlt.TtlVltDstRtQlfcRt.QtAN;
    Data->TtlUnDstrtnRt_B=LineDataStatis->QlfcRtVlt.TtlVltDstRtQlfcRt.QtBN;
    Data->TtlUnDstrtnRt_C=LineDataStatis->QlfcRtVlt.TtlVltDstRtQlfcRt.QtCN;

    if(CheckTimeMatch(Data->Stat, LineDataStatis->TimeStatis, curtime) == 0)
    {
        Data->TtlHarUnEffctv_A=0;
        Data->TtlHarUnEffctv_B=0;
        Data->TtlHarUnEffctv_C=0;
        
        Data->MxTtlHarUnEffctv_A=0;
        memset(&Data->MxTtlHarUnEffctv_A_T, 0, sizeof(Time_s));
        Data->MxTtlHarUnEffctv_B=0;
        memset(&Data->MxTtlHarUnEffctv_B_T, 0, sizeof(Time_s));
        Data->MxTtlHarUnEffctv_C=0;
        memset(&Data->MxTtlHarUnEffctv_C_T, 0, sizeof(Time_s));
        
        Data->MnTtlHarUnEffctv_A=0;
        memset(&Data->MnTtlHarUnEffctv_A_T, 0, sizeof(Time_s));
        Data->MnTtlHarUnEffctv_B=0;
        memset(&Data->MnTtlHarUnEffctv_B_T, 0, sizeof(Time_s));
        Data->MnTtlHarUnEffctv_C=0;
        memset(&Data->MnTtlHarUnEffctv_C_T, 0, sizeof(Time_s));
        
        Data->AvTtlUnDstrtnRt_A=0;
        Data->MxTtlUnDstrtnRt_A=0;
        Data->MnTtlUnDstrtnRt_A=0;
        Data->AvTtlUnDstrtnRt_B=0;
        Data->MxTtlUnDstrtnRt_B=0;
        Data->MnTtlUnDstrtnRt_B=0;
        Data->AvTtlUnDstrtnRt_C=0;
        Data->MxTtlUnDstrtnRt_C=0;
        Data->MnTtlUnDstrtnRt_C=0;
        Data->TtlUnDstrtnRt_A=0;
        Data->TtlUnDstrtnRt_B=0;
        Data->TtlUnDstrtnRt_C=0;
    }
    
    PrlFrame->UserData.DataLen = sizeof(struct TtlHarUn_LCD);
    return PRL_EXECUTE_OK;
}

//总谐波电流数值表
int PrlGetTtlHarIn(TPrlFrame *PrlFrame, void *Param1, void *Param2)
{
    unsigned int LineID = PrlFrame->UserData.DeviceAddress.ThreadID+1;
    TLineParam LineParam;
    TLineDataStatis *LineDataStatis = (TLineDataStatis *)Param1;
    struct TtlHarIn_LCD *Data = (struct TtlHarIn_LCD *)PrlFrame->UserData.Data;
    TimeYS curtime;
    
    Data->Stat = (unsigned int)Param2;
    GetMainLineParam(LineID, &LineParam);
    GetTimeYS(&curtime);

    strncpy(Data->Name, LineParam.LineDspSet.LineName, STR_LINE_NAME_LEN);

    if(LineParam.MonitorType.UConnectionType == CT_V)
    {
        Data->LineFlag=1;
    }
    else
    {
        Data->LineFlag=0;
    }
            
    Data->TtlHarInEffctv_A = LineDataStatis->AvgCrrn.TtlHrmnCrrnCnt.AN;
    Data->TtlHarInEffctv_B = LineDataStatis->AvgCrrn.TtlHrmnCrrnCnt.BN;
    Data->TtlHarInEffctv_C = LineDataStatis->AvgCrrn.TtlHrmnCrrnCnt.CN;
        
    Data->MxTtlHarInEffctv_A = LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnCntExtr.MxAN;
    FILL_TIME(Data->MxTtlHarInEffctv_A_T,LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnCntExtr.MxTmAN);
    Data->MxTtlHarInEffctv_B=LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnCntExtr.MxBN;
    FILL_TIME(Data->MxTtlHarInEffctv_B_T,LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnCntExtr.MxTmBN);
    Data->MxTtlHarInEffctv_C=LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnCntExtr.MxCN;
    FILL_TIME(Data->MxTtlHarInEffctv_C_T,LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnCntExtr.MxTmCN);

    Data->MnTtlHarInEffctv_A=LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnCntExtr.MnAN;
    FILL_TIME(Data->MnTtlHarInEffctv_A_T,LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnCntExtr.MnTmAN);
    Data->MnTtlHarInEffctv_B=LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnCntExtr.MnBN;
    FILL_TIME(Data->MnTtlHarInEffctv_B_T,LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnCntExtr.MnTmBN);
    Data->MnTtlHarInEffctv_C=LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnCntExtr.MnCN;
    FILL_TIME(Data->MnTtlHarInEffctv_C_T,LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnCntExtr.MnTmCN);
        
    Data->AvTtlInDstrtnRt_A=LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnDstRtExtr.AvgAN;
    Data->MxTtlInDstrtnRt_A=LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnDstRtExtr.MxAN;
    Data->MnTtlInDstrtnRt_A=LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnDstRtExtr.MnAN;
    Data->AvTtlInDstrtnRt_B=LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnDstRtExtr.AvgBN;
    Data->MxTtlInDstrtnRt_B=LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnDstRtExtr.MxBN;
    Data->MnTtlInDstrtnRt_B=LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnDstRtExtr.MnBN;
    Data->AvTtlInDstrtnRt_C=LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnDstRtExtr.AvgCN;
    Data->MxTtlInDstrtnRt_C=LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnDstRtExtr.MxCN;
    Data->MnTtlInDstrtnRt_C=LineDataStatis->ExtrCrrnRes.TtlHrmnCrrnDstRtExtr.MnCN;
    Data->TtlInDstrtnRt_A=LineDataStatis->QlfcRtCrrn.TtlHrmnCrrnDstRtQlfcRt.QtAN;
    Data->TtlInDstrtnRt_B=LineDataStatis->QlfcRtCrrn.TtlHrmnCrrnDstRtQlfcRt.QtBN;
    Data->TtlInDstrtnRt_C=LineDataStatis->QlfcRtCrrn.TtlHrmnCrrnDstRtQlfcRt.QtCN;

    if(CheckTimeMatch(Data->Stat, LineDataStatis->TimeStatis, curtime) == 0)
    {
        Data->TtlHarInEffctv_A = LineDataStatis->AvgCrrn.TtlHrmnCrrnCnt.AN;
        Data->TtlHarInEffctv_B = LineDataStatis->AvgCrrn.TtlHrmnCrrnCnt.BN;
        Data->TtlHarInEffctv_C = LineDataStatis->AvgCrrn.TtlHrmnCrrnCnt.CN;
        
        Data->MxTtlHarInEffctv_A = 0;
        memset(&Data->MxTtlHarInEffctv_A_T, 0, sizeof(Time_s));
        Data->MxTtlHarInEffctv_B=0;
        memset(&Data->MxTtlHarInEffctv_B_T, 0, sizeof(Time_s));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -