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

📄 prlimplparam.c

📁 104规约linux
💻 C
📖 第 1 页 / 共 2 页
字号:
    Data->UPrmry=LineParam.TransformerVlt.Primary;
    Data->UScndry=LineParam.TransformerVlt.Secondary;
    Data->IPrmry=LineParam.TransformerCrrn.Primary;
    Data->IScndry=LineParam.TransformerCrrn.Secondary;
    Data->UTransformerRt=LineParam.TransformerVlt.Rate;
    Data->ITransformerRt=LineParam.TransformerCrrn.Rate;
    Data->PrmryCnnctnTyp=LineParam.TransformerCrrn.ConnectionType;
    Data->ScndryCnnctnTyp=LineParam.TransformerVlt.ConnectionType; 
    PrlFrame->UserData.DataLen = sizeof(struct Transformer_LCD);
    return PRL_EXECUTE_OK;
}

int SetTransformer(TPrlFrame *PrlFrame, void *Param1, void *Param2)
{
    TLineParam LineParam;
    struct Transformer_LCD *Data =  (struct Transformer_LCD *)PrlFrame->UserData.Data;
    int LineID = Data->LnNm+1;
    if(LineID > MAX_LINE_NUM)
    {
        return PRL_INVALID_LINE_ID;
    }
    
    GetBackupLineParam(LineID, &LineParam);
    LineParam.TransformerVlt.LineID=LineID;
    LineParam.TransformerVlt.Primary=Data->UPrmry;
    LineParam.TransformerVlt.Secondary=Data->UScndry;
    LineParam.TransformerVlt.Rate=Data->UTransformerRt;
    LineParam.TransformerVlt.ConnectionType = Data->ScndryCnnctnTyp;
    LineParam.TransformerCrrn.LineID=LineID;
    LineParam.TransformerCrrn.Primary=Data->IPrmry;
    LineParam.TransformerCrrn.Secondary=Data->IScndry;
    LineParam.TransformerCrrn.Rate=Data->ITransformerRt;
    LineParam.TransformerCrrn.ConnectionType = Data->PrmryCnnctnTyp;
    SetBackupLineParam(LineID, &LineParam);
    if (SaveLineParam() != B_TRUE)
    {
        return PRL_EXECUTE_FAILED;
    }
    SetIsParamModified(B_TRUE);
    return PRL_EXECUTE_OK;
}

int GetDatetime(TPrlFrame *PrlFrame, void *Param1, void *Param2)
{
    TimeYS TimeNow;
    struct TimeDate_LCD *Data = (struct TimeDate_LCD *)PrlFrame->UserData.Data;
    GetTimeYS(&TimeNow);
    Data->Year=TimeNow.Year;
    Data->Month=TimeNow.Month;
    Data->Day=TimeNow.Day;
    Data->Hour=TimeNow.Hour;
    Data->Minute=TimeNow.Minute;
    Data->Second=TimeNow.Second;
    PrlFrame->UserData.DataLen = sizeof(struct TimeDate_LCD);
    return PRL_EXECUTE_OK;
}
#define PC
     
BSTATUS interSetDatetime(TimeYS TimeNew)
{
    struct tm TM;
    struct timeval valTemp;
    struct timezone zoneTemp;
    time_t temp;

    if(TimeNew.Year < 1970 || TimeNew.Year > 2037)
  	{
  	    return B_FALSE;
  	}
#ifdef PC  
    TM.tm_year=TimeNew.Year-1900;//从1900年开始计数
#else
    TM.tm_year=TimeNew.Year-1970;//从1970年开始计数,ARM_linux适合
#endif
    TM.tm_mon=TimeNew.Month-1;//范围0~11
    TM.tm_mday=TimeNew.Day;
    TM.tm_hour=TimeNew.Hour;
    TM.tm_min=TimeNew.Minute;
    TM.tm_sec=TimeNew.Second;
    temp=mktime(&TM);
    valTemp.tv_sec=(long)temp;
    valTemp.tv_usec=0;
    zoneTemp.tz_minuteswest=0;//暂时用格林尼治时区
    zoneTemp.tz_dsttime=0;
    if(settimeofday(&valTemp,&zoneTemp)==0)
    {  
        system("hwclock -w");
        return B_TRUE;
    }
    else
    {
        return B_FALSE;
    }
}

int SetDatetime(TPrlFrame *PrlFrame, void *Param1, void *Param2)
{
    TimeYS TimeNew;
    struct TimeDate_LCD *Data = (struct TimeDate_LCD *)PrlFrame->UserData.Data;
    BSTATUS RetVal;
    int WaitTime = 0;

    TimeNew.Year=Data->Year;
    TimeNew.Month=Data->Month;
    TimeNew.Day=Data->Day;
    TimeNew.Hour=Data->Hour;
    TimeNew.Minute=Data->Minute;
    TimeNew.Second=Data->Second;
    DebugOutMsg(IX_M_NQS, 0, "Modify Datetime to %4d-%2d-%2d %2d:%2d:%2d"
        , TimeNew.Year, TimeNew.Month, TimeNew.Day, TimeNew.Hour, TimeNew.Second);
    if(TimeNew.Year < 1970 || TimeNew.Year > 2037) return 0x0;
    SetmodifyTimeCtl(PS_REQUEST);
    while(1)
    {
        if(GetModifyTimeCtl() == PS_RESPONDOK)
        {
            RetVal = interSetDatetime(TimeNew);
            SetmodifyTimeCtl(PS_FINISH);
            if(RetVal == B_TRUE)
            {
                return PRL_EXECUTE_OK;
            }
            else
            {
                return PRL_EXECUTE_FAILED;
            }
        }
        usleep(100000);
        if((WaitTime++) > 30)
        {
            break;;
        }
    }
    return PRL_EXECUTE_FAILED;
}

int PrlGetSelfCheck(TPrlFrame *PrlFrame, void *Param1, void *Param2)
{
    struct SelfCheck_LCD *Data = (struct SelfCheck_LCD *)PrlFrame->UserData.Data;
    unsigned int LineID = PrlFrame->UserData.DeviceAddress.ThreadID+1;
    unsigned int idx;
    TDeviceStatus buf;
    unsigned int loopnum, i;
    unsigned int dspmark;
    TLineParam MainLineParam;
    TGlobalParam MainGlobalParam;
    
    idx = PrlFrame->UserData.DeviceAddress.ThreadID;
    if(LineID > MAX_LINE_NUM)
    {
        return PRL_INVALID_LINE_ID;
    }    

    SetNeedCheckSpaceHD(OP_START);
    loopnum = 0;
    while(1)
    {
        if(GetNeedCheckSpaceHD() == OP_FINISH)
        {
            break;
        }
        loopnum ++;
        if(loopnum > 10)
        {
            break;
        }
    }

    GetMainGlobalParam(&MainGlobalParam);
    GetWholeDeviceStatus(&buf);
    for(i=0;i<MainGlobalParam.LineCount;i++)
    {
        GetMainLineParam(i+1, &MainLineParam);
        if(MainLineParam.LineDspSet.DSP1 == idx)
        {
            dspmark = DSPMARK_1;
        }
        else if(MainLineParam.LineDspSet.DSP2 == idx)
        {
            dspmark = DSPMARK_2;
        }
        else
        {
            continue;
        }
        Data->CodeSystem_DSP = (buf.LineStatus[i].IsInsOK[dspmark] == B_TRUE)? 1:0;
        Data->InterRAM_DSP=(buf.LineStatus[i].IsIRamOK[dspmark] == B_TRUE)? 1:0;
        Data->Timer_DSP=(buf.LineStatus[i].IsTimerOK[dspmark] == B_TRUE)? 1:0;
        Data->interrupt_DSP =(buf.LineStatus[i].IsIntOK[dspmark] == B_TRUE)?1:0;
        Data->Flash_DSP=(buf.LineStatus[i].IsFlashOK[dspmark] == B_TRUE)?1:0;
        Data->ExterRAM_DSP=(buf.LineStatus[i].IsORamOK[dspmark] == B_TRUE)?1:0;
        Data->ADCheck_DSP=(buf.LineStatus[i].IsADOK[dspmark]== B_TRUE)?1:0;
        if(dspmark == DSPMARK_2)
        {
            if(MainLineParam.LineDspSet.Port1 > 0)
            {
                Data->PTStatus_DSP[0]=(buf.LineStatus[i].IsPTAOK[DSPMARK_1]== B_TRUE)?1:0;
                Data->PTStatus_DSP[1]=(buf.LineStatus[i].IsPTBOK[DSPMARK_1]== B_TRUE)?1:0;
                Data->PTStatus_DSP[2]=(buf.LineStatus[i].IsPTCOK[DSPMARK_1]== B_TRUE)?1:0;
                Data->CTStatus_DSP[0]=(buf.LineStatus[i].IsCTAOK[DSPMARK_1]== B_TRUE)?1:0;
                Data->CTStatus_DSP[1]=(buf.LineStatus[i].IsCTBOK[DSPMARK_1]== B_TRUE)?1:0;
                Data->CTStatus_DSP[2]=(buf.LineStatus[i].IsCTCOK[DSPMARK_1]== B_TRUE)?1:0;
            }
            else if(buf.LineStatus[i].IsInsOK[dspmark] == B_TRUE && 
                buf.LineStatus[i].IsIRamOK[dspmark] == B_TRUE &&
                buf.LineStatus[i].IsTimerOK[dspmark] == B_TRUE &&
                buf.LineStatus[i].IsIntOK[dspmark] == B_TRUE &&
                buf.LineStatus[i].IsFlashOK[dspmark] == B_TRUE &&
                buf.LineStatus[i].IsORamOK[dspmark] == B_TRUE &&
                buf.LineStatus[i].IsADOK[dspmark]== B_TRUE)
            {
                Data->PTStatus_DSP[0]=1;
                Data->PTStatus_DSP[1]=1;
                Data->PTStatus_DSP[2]=1;
                Data->CTStatus_DSP[0]=1;
                Data->CTStatus_DSP[1]=1;
                Data->CTStatus_DSP[2]=1;
            }
            else
            {
                Data->PTStatus_DSP[0]=0;
                Data->PTStatus_DSP[1]=0;
                Data->PTStatus_DSP[2]=0;
                Data->CTStatus_DSP[0]=0;
                Data->CTStatus_DSP[1]=0;
                Data->CTStatus_DSP[2]=0;
            }
        }
        else
        {
            Data->PTStatus_DSP[0]=(buf.LineStatus[i].IsPTAOK[DSPMARK_1]== B_TRUE)?1:0;
            Data->PTStatus_DSP[1]=(buf.LineStatus[i].IsPTBOK[DSPMARK_1]== B_TRUE)?1:0;
            Data->PTStatus_DSP[2]=(buf.LineStatus[i].IsPTCOK[DSPMARK_1]== B_TRUE)?1:0;
            Data->CTStatus_DSP[0]=(buf.LineStatus[i].IsCTAOK[DSPMARK_1]== B_TRUE)?1:0;
            Data->CTStatus_DSP[1]=(buf.LineStatus[i].IsCTBOK[DSPMARK_1]== B_TRUE)?1:0;
            Data->CTStatus_DSP[2]=(buf.LineStatus[i].IsCTCOK[DSPMARK_1]== B_TRUE)?1:0;
        }
        break;
    }
    if(i == MainGlobalParam.LineCount)
    {
        Data->CodeSystem_DSP = 0;
        Data->InterRAM_DSP=0;
        Data->Timer_DSP=0;
        Data->interrupt_DSP =0;
        Data->Flash_DSP=0;
        Data->ExterRAM_DSP=0;
        Data->ADCheck_DSP=0;
        Data->PTStatus_DSP[0]=0;
        Data->PTStatus_DSP[1]=0;
        Data->PTStatus_DSP[2]=0;
        Data->CTStatus_DSP[0]=0;
        Data->CTStatus_DSP[1]=0;
        Data->CTStatus_DSP[2]=0;
    }
    Data->DataFlash_MCU = (buf.SysStatus.IsDFlashOK == B_TRUE)?1:0;
    Data->Ide_MCU =buf.SysStatus.FreeHdbSize;
    Data->LiunxFs_MCU = (buf.SysStatus.IsFSOK == B_TRUE)?1:0;
    Data->RamFree_MCU = buf.SysStatus.FreeMemSize;
    Data->System_MCU = (buf.SysStatus.IsSysOK== B_TRUE)?1:0;
    Data->Status_NET = (buf.SysStatus.IsNetLinkOK== B_TRUE)?1:0;
    
    PrlFrame->UserData.DataLen = sizeof(struct SelfCheck_LCD);
    return PRL_EXECUTE_OK;

}


int GetEventFilter(TPrlFrame *PrlFrame, void *Param1, void *Param2)
{
     
    BSTATUS *Data=(BSTATUS *)PrlFrame->UserData.Data;
    GetGlobalParam(GPT_EVENT_FILTER, Data);
    PrlFrame->UserData.DataLen = sizeof(BSTATUS)*EVENT_TYPE_COUNT_ALL;
    return PRL_EXECUTE_OK;
}

int SetEventFilter(TPrlFrame *PrlFrame, void *Param1, void *Param2)
{ 
    BSTATUS *Data=(BSTATUS *)PrlFrame->UserData.Data;
    SetGlobalParam(GPT_EVENT_FILTER, Data);
    if (SaveSysParam() != B_TRUE)
    {
        return PRL_EXECUTE_FAILED;
    }
    SetIsParamModified(B_TRUE);
    return PRL_EXECUTE_OK;
}


int GetFaultFilter(TPrlFrame *PrlFrame, void *Param1, void *Param2)
{
     
    BSTATUS *Data=(BSTATUS *)PrlFrame->UserData.Data;
    GetGlobalParam(GPT_FAULT_FILTER, Data);
    PrlFrame->UserData.DataLen = sizeof(BSTATUS)*FAULT_TYPE_COUNT;
    return PRL_EXECUTE_OK;
}

int SetFaultFilter(TPrlFrame *PrlFrame, void *Param1, void *Param2)
{ 
    BSTATUS *Data=(BSTATUS *)PrlFrame->UserData.Data;
    SetGlobalParam(GPT_FAULT_FILTER, Data);
    if (SaveSysParam() != B_TRUE)
    {
        return PRL_EXECUTE_FAILED;
    }
    SetIsParamModified(B_TRUE);
    return PRL_EXECUTE_OK;
}



int GetRecParamTE(TPrlFrame *PrlFrame, void *Param1, void *Param2)
{
    TRecWavParamTEvent *Data = (TRecWavParamTEvent *)PrlFrame->UserData.Data;
    GetGlobalParam(GPT_REC_WAV_PARAM_TE, Data);
    PrlFrame->UserData.DataLen = sizeof(TRecWavParamTEvent);
    return PRL_EXECUTE_OK;
    
}

int SetRecParamTE(TPrlFrame *PrlFrame, void *Param1, void *Param2)
{
    TRecWavParamTEvent *Data=(TRecWavParamTEvent *)PrlFrame->UserData.Data;
    SetGlobalParam(GPT_REC_WAV_PARAM_TE, Data);
    if (SaveSysParam() != B_TRUE)
    {
        return PRL_EXECUTE_FAILED;
    }
    SetIsParamModified(B_TRUE);
    return PRL_EXECUTE_OK;
}



int GetNetworkSetting(TPrlFrame *PrlFrame, void *Param1, void *Param2)
{
    struct NetworkSetting_LCD *Data = (struct NetworkSetting_LCD *)PrlFrame->UserData.Data;
    GetGlobalParam(GPT_MONITOR_ID, &Data->MonitorID);
    PrlFrame->UserData.DataLen = sizeof(struct NetworkSetting_LCD);
    return PRL_EXECUTE_OK;
}


int SetNetworkSetting(TPrlFrame *PrlFrame, void *Param1, void *Param2)
{
    struct NetworkSetting_LCD *Data = (struct NetworkSetting_LCD *)PrlFrame->UserData.Data;
    SetGlobalParam(GPT_MONITOR_ID, &Data->MonitorID);
    if (SaveSysParam() != B_TRUE)
    {
        return PRL_EXECUTE_FAILED;
    }
    SetIsParamModified(B_TRUE);
    return PRL_EXECUTE_OK;
}

⌨️ 快捷键说明

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