예제 #1
0
void CConfigMsgLogDlg::EnablingAdvSettings(BOOL bEnable)
{
    SLOGINFO sLogStruct;
    GetLoggingBlock(m_nLogIndexSel, sLogStruct);

    if(sLogStruct.m_sLogAdvStngs.m_bIsLogOnSize == TRUE)
    {
        GetDlgItem(IDC_EDIT_FILE_SIZE)->EnableWindow(bEnable);
    }
    else
    {
        GetDlgItem(IDC_EDIT_FILE_SIZE)->EnableWindow(!bEnable);
    }

    if(sLogStruct.m_sLogAdvStngs.m_bIsLogOnTime  == BST_CHECKED)
    {
        GetDlgItem(IDC_EDIT_HOURS)->EnableWindow(bEnable);
        GetDlgItem(IDC_EDIT_MINUTES)->EnableWindow(bEnable);
    }
    else
    {
        GetDlgItem(IDC_EDIT_HOURS)->EnableWindow(!bEnable);
        GetDlgItem(IDC_EDIT_MINUTES)->EnableWindow(!bEnable);
    }
    EnablingMaxNumEdit();
}
void CFrameProcessor_Common::vUpdateLoggingFlag(void)
{
    BYTE* pbCurrFlag = m_bEditingON ? &m_bLogFlagTmp : &m_bExprnFlag_Log;

    CLEAR_EXPR_FLAG(*pbCurrFlag);

    USHORT ushLogBlocks = GetLoggingBlockCount();

    for (USHORT i = 0; i < ushLogBlocks; i++)
    {
        SLOGINFO sLogInfo;
        GetLoggingBlock(i, sLogInfo);
        if (sLogInfo.m_bEnabled == FALSE)
        {
            continue;
        }

        BYTE* pbResFlag = sLogInfo.m_bResetAbsTimeStamp ? &m_bLogFlagTmp : &m_bExprnFlag_Log;

        switch (sLogInfo.m_eLogTimerMode)
        {
            case TIME_MODE_ABSOLUTE:
                SET_TM_ABS(*pbCurrFlag);
                SET_TM_ABS_RES(*pbResFlag);
                break;

            case TIME_MODE_RELATIVE:
                SET_TM_REL(*pbCurrFlag);
                break;

            case TIME_MODE_SYSTEM:
                SET_TM_SYS(*pbCurrFlag);
                break;
        }

        switch (sLogInfo.m_eNumFormat)
        {
            case HEXADECIMAL:
                SET_NUM_HEX(*pbCurrFlag);
                break;

            case DEC:
                SET_NUM_DEC(*pbCurrFlag);
                break;
        }
    }
}
예제 #3
0
void CConfigMsgLogDlg::OnBnClickedCbtnLogFilePath(void)
{
    USES_CONVERSION;

    CString omStrLogFile = "";
    (GetDlgItem(IDC_EDIT_LOGFILEPATH))->GetWindowText(omStrLogFile);

    // Show File Selection Dialog to select Log File
    CFileDialog omFileDlg(FALSE, BUSMASTER_LOG_FILE_EXTENSION, omStrLogFile,
                          OFN_HIDEREADONLY | OFN_PATHMUSTEXIST |
                          OFN_EXTENSIONDIFFERENT | OFN_OVERWRITEPROMPT,
                          BUSMASTER_LOG_FILTER, nullptr);
    // Set the caption
    omFileDlg.m_ofn.lpstrTitle = _(BUSMASTER_LOG_SELECTION_TITLE);

    const int nSize = _MAX_PATH  * _MAX_PATH;  //Total 260 Files
    char* szTempBuf = new char[nSize];
    memset(szTempBuf, 0, sizeof(char) * nSize);
    omFileDlg.m_ofn.lpstrFile = szTempBuf;
    omFileDlg.m_ofn.nMaxFile = nSize - 1;
    // Show File open dialog
    if (omFileDlg.DoModal() == IDOK)
    {
        omStrLogFile = omFileDlg.GetPathName();
        for (USHORT i = 0; i < GetLoggingBlockCount(); i++)
        {
            SLOGINFO sLogObject;
            GetLoggingBlock(i, sLogObject);
            if (_tcsicmp(sLogObject.m_sLogFileName, omStrLogFile.GetBuffer(MAX_PATH)) == 0)
            {
                CString omBuf;
                omBuf.Format(_(BUSMASTER_LOG_ALREADYEXISTS), omStrLogFile);
                MessageBox(omBuf, "BUSMASTER", MB_OK | MB_ICONINFORMATION);
                return;
            }
        }
        (GetDlgItem(IDC_EDIT_LOGFILEPATH))->SetWindowText(omStrLogFile);
        m_omListLogFiles.SetItemText(m_nLogIndexSel, 0, omStrLogFile);
        vUpdate_Datastore_From_GUI((USHORT) m_nLogIndexSel, IDC_EDIT_LOGFILEPATH);
        vResetAdvLogParameters();
        vAddSuffixToLogFileName(SUFFIX_DEFAULT);
    }

    delete[]szTempBuf;

}
예제 #4
0
BOOL CConfigMsgLogDlg::FoundInLogList(CString omFullPath, CString omFileName)
{
    BOOL Found = FALSE;
    USHORT TotalLogBlocks = GetLoggingBlockCount();

    for (USHORT i = 0; (i < TotalLogBlocks) && (Found == FALSE); i++)
    {
        SLOGINFO sLogObjTmp; // Iterate through the logging list in the
        GetLoggingBlock(i, sLogObjTmp); // datastore
        CString omCurrLogFile = sLogObjTmp.m_sLogFileName; // and retrieve
        // the log file name
        // Subject to its content type (whether bare log file name or the
        // full path), the comparison will be carried out.
        CString omCompareStr = (omCurrLogFile.Find(_T("\\")) != -1) ?
                               omFullPath : omFileName;
        Found = (omCurrLogFile.CompareNoCase(omCompareStr) == 0);
    }

    return Found;
}
예제 #5
0
void CConfigMsgLogDlg::OnBnClickedCbtnLogFilePath(void)
{
    USES_CONVERSION;
    CString omStrLogFile = "";
    (GetDlgItem(IDC_EDIT_LOGFILEPATH))->GetWindowText(omStrLogFile);
    // Show File Selection Dialog to select Log File
    CFileDialog omFileDlg(FALSE, BUSMASTER_LOG_FILE_EXTENSION, omStrLogFile,
                          OFN_HIDEREADONLY | OFN_PATHMUSTEXIST |
                          OFN_EXTENSIONDIFFERENT | OFN_OVERWRITEPROMPT,
                          BUSMASTER_LOG_FILTER, NULL);
    // Set the caption
    omFileDlg.m_ofn.lpstrTitle = BUSMASTER_LOG_SELECTION_TITLE;

    // Show File open dialog
    if (omFileDlg.DoModal() == IDOK)
    {
        omStrLogFile = omFileDlg.GetPathName();

        for (USHORT i = 0; i < GetLoggingBlockCount(); i++)
        {
            SLOGINFO sLogObject;
            GetLoggingBlock(i, sLogObject);

            if (_tcsicmp(sLogObject.m_sLogFileName, omStrLogFile.GetBuffer(MAX_PATH)) == 0)
            {
                CString omBuf;
                omBuf.Format(BUSMASTER_LOG_ALREADYEXISTS, omStrLogFile);
                AfxMessageBox(omBuf, MB_OK | MB_ICONINFORMATION);
                return;
            }
        }

        (GetDlgItem(IDC_EDIT_LOGFILEPATH))->SetWindowText(omStrLogFile);
        m_omListLogFiles.SetItemText(m_nLogIndexSel, 0, omStrLogFile);
        vUpdate_Datastore_From_GUI((USHORT) m_nLogIndexSel, IDC_EDIT_LOGFILEPATH);
    }
}
예제 #6
0
BOOL CConfigMsgLogDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    m_ChkbEnableLogOnConnect.SetCheck(m_bLogOnConnect == TRUE? BST_CHECKED : BST_UNCHECKED);
    m_odStartMsgID.vSetConfigData(IDC_EDIT_STARTMSGID);
    m_odStopMsgID.vSetConfigData(IDC_EDIT_STOPMSGID);
    m_odStartMsgID.vSetBase(BASE_HEXADECIMAL);
    m_odStopMsgID.vSetBase(BASE_HEXADECIMAL);
    m_odStartMsgID.vSetSigned(false);
    m_odStopMsgID.vSetSigned(false);

    vCreateFileList();
    InitialiseWindow();

    USHORT LogBlocks = GetLoggingBlockCount();
    if (LogBlocks > 0)
    {
        for (USHORT i = 0; i < LogBlocks; i++)
        {
            SLOGINFO sLogObject;
            HANDLE hFind;
            WIN32_FIND_DATA FindData;
            CStdioFile omStdiofile;

            GetLoggingBlock(i, sLogObject);

            // check for valid log file
            CString strTempLog = sLogObject.m_sLogFileName;

            hFind = FindFirstFile(strTempLog, &FindData);

            if(hFind == INVALID_HANDLE_VALUE )//file not found
            {
                DWORD dError = GetLastError();
                if(dError == ERROR_FILE_NOT_FOUND)//file not found
                {
                    BOOL bFileOpen = omStdiofile.Open(strTempLog,
                                                      CFile::modeCreate | CFile::modeWrite | CFile::typeBinary);

                    if(bFileOpen == TRUE)///file created, add in the list
                    {
                        omStdiofile.Close();
                        AddNewItem_GUI(sLogObject, i);
                    }
                    else //not a valid file
                    {
                        RemoveLoggingBlock(i--); //remove the old log data
                        LogBlocks = GetLoggingBlockCount(); //refresh the log count
                    }
                }
                else //not a valid filepath / file folder is removed
                {
                    RemoveLoggingBlock(i--); //remove the old log data
                    LogBlocks = GetLoggingBlockCount(); //refresh the log count
                }
            }
            else ///file found add in the list
            {
                AddNewItem_GUI(sLogObject, i);
            }

        }
        m_nLogIndexSel = 0;
        if(m_omListLogFiles.GetItemCount() > 0 )//check for log files exists
        {
            m_omListLogFiles.SetItemState(m_nLogIndexSel,
                                          LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
        }
        else
        {
            vEnableDisableControls(FALSE);//disable controls if no log files exists
        }
    }
    else
    {
        vEnableDisableControls(FALSE);
    }

    SetWindowText(m_strCurrWndText);

    if (m_bLogON)
    {
        vEnableDisableControls(FALSE);

        if(m_omListLogFiles.GetItemCount()>0)
        {
            vUpdate_GUI_From_Datastore(0);
        }

        GetDlgItem(IDC_CBTN_ADDLOG)->EnableWindow(FALSE);
        GetDlgItem(IDC_CHECK_RESET_TIMESTAMP)->EnableWindow(FALSE);
        GetDlgItem(IDC_EDIT_NO_OF_FILES)->EnableWindow(FALSE);
        GetWindowText(m_strCurrWndText);
        m_strCurrWndText+=_(" - Read Only as Logging is ON");
        SetWindowText(m_strCurrWndText);

        // If Logging is on
        GetDlgItem(IDOK)->EnableWindow(FALSE);

        m_unDispUpdateTimerId = SetTimer(600, 600, nullptr);
    }
    else
    {
        // If Logging is on
        GetDlgItem(IDOK)->EnableWindow(TRUE);
    }

    // Hide or show the Filters button in the dialog based on the protocol

    GetDlgItem(IDC_LOG_FILTER)->ShowWindow(SW_SHOWNORMAL);

    /*if (J1939 == m_eCurrBus)
    {
        GetDlgItem(IDC_LOG_FILTER)->ShowWindow(0);
    }*/

    return TRUE;
}
예제 #7
0
void CConfigMsgLogDlg::vUpdate_Datastore_From_GUI(USHORT ushIndex, int CtrlID)
{
    if (m_bEditingON == FALSE)
    {
        return;
    }

    SLOGINFO sLogStruct;
    GetLoggingBlock(ushIndex, sLogStruct);
    sLogStruct.m_sLogAdvStngs.m_nConnectionCount = -1;
    switch (CtrlID)
    {
        case IDC_RBTN_DECIMAL:
        {
            sLogStruct.m_eNumFormat = DEC;
        }
        break;
        case IDC_RBTN_HEX:
        {
            sLogStruct.m_eNumFormat = HEXADECIMAL;
        }
        break;
        case IDC_RBTN_APPEND:
        {
            sLogStruct.m_eFileMode = APPEND_MODE;
        }
        break;
        case IDC_RBTN_OVERWRITE:
        {
            sLogStruct.m_eFileMode = OVERWRITE_MODE;
        }
        break;
        case IDC_CHECK_RESET_TIMESTAMP:
        {
            if(m_ChkbResetTimeStamp.GetCheck())
            {
                sLogStruct.m_bResetAbsTimeStamp = TRUE;
            }
            else
            {
                sLogStruct.m_bResetAbsTimeStamp = FALSE;
            }
        }
        break;
        case IDC_COMB_TIMEMODE:
        {
            switch (m_omComboTimeMode.GetCurSel())
            {
                case TIME_ABS_INDEX:
                    sLogStruct.m_eLogTimerMode = TIME_MODE_ABSOLUTE;
                    m_ChkbResetTimeStamp.EnableWindow(1);
                    break;

                case TIME_REL_INDEX:
                    sLogStruct.m_eLogTimerMode = TIME_MODE_RELATIVE;
                    m_ChkbResetTimeStamp.EnableWindow(0);
                    break;

                case TIME_SYS_INDEX:
                default:
                    sLogStruct.m_eLogTimerMode = TIME_MODE_SYSTEM;
                    m_ChkbResetTimeStamp.EnableWindow(0);
                    break;
            }
        }
        break;
        case IDC_COMB_CHANNEL:
        {
            sLogStruct.m_ChannelSelected = m_omComboChannel.GetCurSel();
            if (sLogStruct.m_ChannelSelected == 0)  // First one denotes ALL
            {
                sLogStruct.m_ChannelSelected = CAN_CHANNEL_ALL;
            }
        }
        break;
        case IDC_EDIT_STARTMSGID:
        {
            sLogStruct.m_sLogTrigger.m_unStartID = (UINT) m_odStartMsgID.lGetValue();
        }
        break;
        case IDC_EDIT_STOPMSGID:
        {
            sLogStruct.m_sLogTrigger.m_unStopID = (UINT) m_odStopMsgID.lGetValue();
        }
        break;
        case IDC_CHKB_STARTTRIGGER:
        case IDC_CHKB_STOPTRIGGER:
        {
            sLogStruct.m_sLogTrigger = GetLogTriggerFromGUI();
        }
        break;
        case IDC_LOGBLOCK_LST:
        {
            sLogStruct.m_bEnabled = (m_omListLogFiles.GetCheck(ushIndex) == TRUE);
        }
        break;
        case IDC_EDIT_LOGFILEPATH:
        {
            int MaxCount = sizeof(sLogStruct.m_sLogFileName) / sizeof(char);
            (GetDlgItem(IDC_EDIT_LOGFILEPATH))->GetWindowText(
                sLogStruct.m_sLogFileName, MaxCount);
        }
        break;
        case IDC_CHKB_ON_TRANSMISSION:
        {
            if(m_ChkLogOnMeasurement.GetCheck() == BST_CHECKED)
            {
                sLogStruct.m_sLogAdvStngs.m_bIsLogOnMesurement = TRUE;
            }
            else if(m_ChkLogOnMeasurement.GetCheck() == BST_UNCHECKED)
            {
                sLogStruct.m_sLogAdvStngs.m_bIsLogOnMesurement = FALSE;
            }
        }
        break;
        case IDC_CHKB_LOG_FILE_SIZE:
        {
            if(m_ChkLogOnSize.GetCheck() == BST_CHECKED)
            {
                sLogStruct.m_sLogAdvStngs.m_bIsLogOnSize = TRUE;
            }
            else if(m_ChkLogOnSize.GetCheck() == BST_UNCHECKED)
            {
                sLogStruct.m_sLogAdvStngs.m_bIsLogOnSize = FALSE;
            }
        }
        break;
        case IDC_CHKB_LOG_ON_TIME:
        {
            if(m_ChkLogOnTime.GetCheck() == BST_CHECKED)
            {
                sLogStruct.m_sLogAdvStngs.m_bIsLogOnTime = TRUE;
            }
            else if(m_ChkLogOnTime.GetCheck() == BST_UNCHECKED)
            {
                sLogStruct.m_sLogAdvStngs.m_bIsLogOnTime = FALSE;
            }
        }
        break;
        case IDC_EDIT_FILE_SIZE:
        {
            CString strSize = "";

            GetDlgItem(IDC_EDIT_FILE_SIZE)->GetWindowText(strSize);

            sLogStruct.m_sLogAdvStngs.m_omSizeInMB = strSize;
        }
        break;
        case IDC_EDIT_HOURS:
        {
            CString strHrs = "";

            GetDlgItem(IDC_EDIT_HOURS)->GetWindowText(strHrs);

            sLogStruct.m_sLogAdvStngs.m_omLogTimeHrs = strHrs;

        }
        break;
        case IDC_EDIT_MINUTES:
        {
            CString strMins = "";

            GetDlgItem(IDC_EDIT_MINUTES)->GetWindowText(strMins);

            sLogStruct.m_sLogAdvStngs.m_omLogTimeMins = strMins;

        }
        break;
        case IDC_EDIT_NO_OF_FILES:
        {
            CString strNoOfFiles = "";

            GetDlgItem(IDC_EDIT_NO_OF_FILES)->GetWindowText(strNoOfFiles);

            sLogStruct.m_sLogAdvStngs.m_omMaxNoOfLogFiles = strNoOfFiles;
        }
        break;
        case IDC_EDIT_LOG_COMMENT:
        {
            CString strLogComment = "";
            GetDlgItem(IDC_EDIT_LOG_COMMENT)->GetWindowText(strLogComment);
            sLogStruct.m_sLogAdvStngs.m_omLogComment = strLogComment;
        }
        break;
    }

    sLogStruct.m_bIsUpdated = TRUE;
    SetLoggingBlock(ushIndex, sLogStruct);
}
예제 #8
0
void CConfigMsgLogDlg::vUpdate_GUI_From_Datastore(USHORT usIndex)
{
    SLOGINFO sLogStruct;
    SLOGTRIGGER& sTrigger = sLogStruct.m_sLogTrigger;

    if (GetLoggingBlock(usIndex, sLogStruct) == S_OK)
    {
        vEnableDisableControls(!m_bLogON);
        EnablingAdvSettings(!m_bLogON);
    }
    else
    {
        vEnableDisableControls(FALSE);
        EnablingAdvSettings(FALSE);
        return;
    }

    m_omListLogFiles.SetCheck(usIndex, sLogStruct.m_bEnabled);
    (GetDlgItem(IDC_EDIT_LOGFILEPATH))->SetWindowText(sLogStruct.m_sLogFileName);
    SetGUIFromTimeMode(sLogStruct.m_eLogTimerMode);
    SetGUIFromChannel(sLogStruct.m_ChannelSelected);

    int CheckBox = (DEC == sLogStruct.m_eNumFormat) ? IDC_RBTN_DECIMAL : IDC_RBTN_HEX;
    CheckRadioButton(IDC_RBTN_DECIMAL, IDC_RBTN_HEX, CheckBox);

    CheckBox = (APPEND_MODE == sLogStruct.m_eFileMode) ? IDC_RBTN_APPEND : IDC_RBTN_OVERWRITE;
    CheckRadioButton(IDC_RBTN_APPEND, IDC_RBTN_OVERWRITE, CheckBox);

    if(sLogStruct.m_eLogTimerMode  == TIME_MODE_ABSOLUTE)
    {
        m_ChkbResetTimeStamp.EnableWindow(1);
    }
    else
    {
        m_ChkbResetTimeStamp.EnableWindow(0);
    }

    if(sLogStruct.m_bResetAbsTimeStamp == TRUE)
    {
        m_ChkbResetTimeStamp.SetCheck(1);
    }
    else
    {
        m_ChkbResetTimeStamp.SetCheck(0);
    }

    if (sTrigger.m_unTriggerType != NONE)
    {
        if (sTrigger.m_unTriggerType == BOTH) // Start and stop trigger edit
        {
            // control
            CheckDlgButton(IDC_CHKB_STARTTRIGGER, BST_CHECKED);
            CheckDlgButton(IDC_CHKB_STOPTRIGGER, BST_CHECKED);
            m_odStartMsgID.vSetValue((__int64) sTrigger.m_unStartID);
            m_odStopMsgID.vSetValue((__int64) sTrigger.m_unStopID);
        }
        else
        {
            if (sTrigger.m_unTriggerType == START) // Start trigger edit control
            {
                CheckDlgButton(IDC_CHKB_STARTTRIGGER, BST_CHECKED);
                m_odStartMsgID.vSetValue((__int64) sTrigger.m_unStartID);
            }
            else
            {
                vUpdateControl(IDC_CHKB_STARTTRIGGER, CHECKBOX, CActionFlag::ENABLE_CTRL);
                vUpdateControl(IDC_EDIT_STARTMSGID, EDITCTRL, CActionFlag::CLEAR_CTRL);
            }
            if (sTrigger.m_unTriggerType == STOP) // Stop trigger edit control
            {
                CheckDlgButton(IDC_CHKB_STOPTRIGGER, BST_CHECKED);
                m_odStopMsgID.vSetValue((__int64) sTrigger.m_unStopID);
            }
            else
            {
                vUpdateControl(IDC_CHKB_STOPTRIGGER, CHECKBOX, CActionFlag::ENABLE_CTRL);
                vUpdateControl(IDC_EDIT_STOPMSGID, EDITCTRL, CActionFlag::CLEAR_CTRL);
            }
        }
    }
    else
    {
        // Start trigger check box control: clear
        CheckDlgButton(IDC_CHKB_STARTTRIGGER, BST_UNCHECKED);
        // Stop trigger check box control: clear
        CheckDlgButton(IDC_CHKB_STOPTRIGGER, BST_UNCHECKED);
        // Start trigger edit control: clear and disable
        vEnableDisableControl(IDC_EDIT_STARTMSGID, EDITCTRL, FALSE);
        // Stop trigger edit control: clear and disable
        vEnableDisableControl(IDC_EDIT_STOPMSGID, EDITCTRL, FALSE);
    }
    // Retaining Advanced Settings
    if(sLogStruct.m_sLogAdvStngs.m_bIsLogOnMesurement == TRUE)
    {
        CheckDlgButton(IDC_CHKB_ON_TRANSMISSION, BST_CHECKED);
    }
    else
    {
        CheckDlgButton(IDC_CHKB_ON_TRANSMISSION, BST_UNCHECKED);
    }

    if(sLogStruct.m_sLogAdvStngs.m_bIsLogOnSize == TRUE)
    {
        CheckDlgButton(IDC_CHKB_LOG_FILE_SIZE, BST_CHECKED);
    }
    else
    {
        CheckDlgButton(IDC_CHKB_LOG_FILE_SIZE, BST_UNCHECKED);
    }

    if(sLogStruct.m_sLogAdvStngs.m_bIsLogOnTime == TRUE)
    {
        CheckDlgButton(IDC_CHKB_LOG_ON_TIME, BST_CHECKED);
    }
    else
    {
        CheckDlgButton(IDC_CHKB_LOG_ON_TIME, BST_UNCHECKED);
    }
    EnablingMaxNumEdit();
    GetDlgItem(IDC_EDIT_FILE_SIZE)->SetWindowText(sLogStruct.m_sLogAdvStngs.m_omSizeInMB);
    GetDlgItem(IDC_EDIT_HOURS)->SetWindowText(sLogStruct.m_sLogAdvStngs.m_omLogTimeHrs);
    GetDlgItem(IDC_EDIT_MINUTES)->SetWindowText(sLogStruct.m_sLogAdvStngs.m_omLogTimeMins);
    GetDlgItem(IDC_EDIT_NO_OF_FILES)->SetWindowText(sLogStruct.m_sLogAdvStngs.m_omMaxNoOfLogFiles);
    GetDlgItem(IDC_EDIT_LOG_COMMENT)->SetWindowText(sLogStruct.m_sLogAdvStngs.m_omLogComment);//arun
}
예제 #9
0
BOOL CConfigMsgLogDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    m_ChkbEnableLogOnConnect.SetCheck(m_bLogOnConnect == TRUE? BST_CHECKED : BST_UNCHECKED);
    m_odStartMsgID.vSetConfigData(IDC_EDIT_STARTMSGID);
    m_odStopMsgID.vSetConfigData(IDC_EDIT_STOPMSGID);
    m_odStartMsgID.vSetBase(BASE_HEXADECIMAL);
    m_odStopMsgID.vSetBase(BASE_HEXADECIMAL);
    m_odStartMsgID.vSetSigned(false);
    m_odStopMsgID.vSetSigned(false);

    vCreateFileList();
    //Load channel combo box
    m_omComboChannel.ResetContent();
    if (NULL != GetICANDIL())
    {
        LPARAM lParam = 0;
        if (S_OK == GetICANDIL()->DILC_GetControllerParams(lParam, NULL, NUMBER_HW))
        {
            m_unChannelCount = (UINT)lParam;
        }
    }

    m_omComboChannel.InsertString(0, _("ALL"));
    for (UINT i = 1; i <= m_unChannelCount; i++)
    {
        CString omChannel;
        omChannel.Format("%d", i);
        m_omComboChannel.InsertString(i, omChannel.GetBuffer(MAX_PATH));
    }
    m_omComboChannel.SetCurSel(0);

    USHORT LogBlocks = GetLoggingBlockCount();
    if (LogBlocks > 0)
    {
        for (USHORT i = 0; i < LogBlocks; i++)
        {
            SLOGINFO sLogObject;
            HANDLE hFind;
            WIN32_FIND_DATA FindData;
            CStdioFile omStdiofile;

            GetLoggingBlock(i, sLogObject);

            // check for valid log file
            CString strTempLog = sLogObject.m_sLogFileName;

            hFind = FindFirstFile(strTempLog, &FindData);

            if(hFind == INVALID_HANDLE_VALUE )//file not found
            {
                DWORD dError = GetLastError();
                if(dError == ERROR_FILE_NOT_FOUND)//file not found
                {
                    BOOL bFileOpen = omStdiofile.Open(strTempLog,
                                                      CFile::modeCreate | CFile::modeWrite | CFile::typeBinary);

                    if(bFileOpen == TRUE)///file created, add in the list
                    {
                        omStdiofile.Close();
                        AddNewItem_GUI(sLogObject, i);
                    }
                    else //not a valid file
                    {
                        RemoveLoggingBlock(i--); //remove the old log data
                        LogBlocks = GetLoggingBlockCount(); //refresh the log count
                    }
                }
                else //not a valid filepath / file folder is removed
                {
                    RemoveLoggingBlock(i--); //remove the old log data
                    LogBlocks = GetLoggingBlockCount(); //refresh the log count
                }
            }
            else ///file found add in the list
            {
                AddNewItem_GUI(sLogObject, i);
            }

        }
        m_nLogIndexSel = 0;
        if(m_omListLogFiles.GetItemCount() > 0 )//check for log files exists
        {
            m_omListLogFiles.SetItemState(m_nLogIndexSel,
                                          LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
        }
        else
        {
            vEnableDisableControls(FALSE);//disable controls if no log files exists
        }
    }
    else
    {
        vEnableDisableControls(FALSE);
    }

    SetWindowText(m_strCurrWndText);

    if (m_bLogON)
    {
        vEnableDisableControls(FALSE);

        if(m_omListLogFiles.GetItemCount()>0)
        {
            vUpdate_GUI_From_Datastore(0);
        }

        GetDlgItem(IDC_CBTN_ADDLOG)->EnableWindow(FALSE);
        GetDlgItem(IDC_CHECK_RESET_TIMESTAMP)->EnableWindow(FALSE);
        GetWindowText(m_strCurrWndText);
        m_strCurrWndText+=_(" - Read Only as Logging is ON");
        //SetWindowText(m_strCurrWndText);
        // PTV [1.6.4]
        // If Logging is on
        GetDlgItem(IDOK)->EnableWindow(FALSE);
        // PTV [1.6.4]
        SetWindowText("");
        m_unDispUpdateTimerId = SetTimer(600, 600, NULL);
    }
    else
    {
        // PTV [1.6.4]
        // If Logging is on
        GetDlgItem(IDOK)->EnableWindow(TRUE);

        // PTV [1.6.4]
    }

    // Hide or show the Filters button in the dialog based on the protocol
    if (CAN == m_eCurrBus)
    {
        GetDlgItem(IDC_LOG_FILTER)->ShowWindow(1);
    }
    else if (J1939 == m_eCurrBus)
    {
        GetDlgItem(IDC_LOG_FILTER)->ShowWindow(0);
    }

    return TRUE;
}
예제 #10
0
void CConfigMsgLogDlg::vUpdate_Datastore_From_GUI(USHORT ushIndex, int CtrlID)
{
    if (m_bEditingON == FALSE)
    {
        return;
    }

    SLOGINFO sLogStruct;
    GetLoggingBlock(ushIndex, sLogStruct);

    switch (CtrlID)
    {
        case IDC_RBTN_DECIMAL:
        {
            sLogStruct.m_eNumFormat = DEC;
        }
        break;
        case IDC_RBTN_HEX:
        {
            sLogStruct.m_eNumFormat = HEXADECIMAL;
        }
        break;
        case IDC_RBTN_APPEND:
        {
            sLogStruct.m_eFileMode = APPEND_MODE;
        }
        break;
        case IDC_RBTN_OVERWRITE:
        {
            sLogStruct.m_eFileMode = OVERWRITE_MODE;
        }
        break;
        case IDC_CHECK_RESET_TIMESTAMP:
        {
            if(m_ChkbResetTimeStamp.GetCheck())
            {
                sLogStruct.m_bResetAbsTimeStamp = TRUE;
            }
            else
            {
                sLogStruct.m_bResetAbsTimeStamp = FALSE;
            }
        }
        break;
        case IDC_COMB_TIMEMODE:
        {
            switch (m_omComboTimeMode.GetCurSel())
            {
                case TIME_ABS_INDEX:
                    sLogStruct.m_eLogTimerMode = TIME_MODE_ABSOLUTE;
                    m_ChkbResetTimeStamp.EnableWindow(1);
                    break;

                case TIME_REL_INDEX:
                    sLogStruct.m_eLogTimerMode = TIME_MODE_RELATIVE;
                    m_ChkbResetTimeStamp.EnableWindow(0);
                    break;

                case TIME_SYS_INDEX:
                default:
                    sLogStruct.m_eLogTimerMode = TIME_MODE_SYSTEM;
                    m_ChkbResetTimeStamp.EnableWindow(0);
                    break;
            }
        }
        break;
        case IDC_COMB_CHANNEL:
        {
            sLogStruct.m_ChannelSelected = m_omComboChannel.GetCurSel();
            if (sLogStruct.m_ChannelSelected == 0)  // First one denotes ALL
            {
                sLogStruct.m_ChannelSelected = CAN_CHANNEL_ALL;
            }
        }
        break;
        case IDC_EDIT_STARTMSGID:
        {
            sLogStruct.m_sLogTrigger.m_unStartID = (UINT) m_odStartMsgID.lGetValue();
        }
        break;
        case IDC_EDIT_STOPMSGID:
        {
            sLogStruct.m_sLogTrigger.m_unStopID = (UINT) m_odStopMsgID.lGetValue();
        }
        break;
        case IDC_CHKB_STARTTRIGGER:
        case IDC_CHKB_STOPTRIGGER:
        {
            sLogStruct.m_sLogTrigger = GetLogTriggerFromGUI();
        }
        break;
        case IDC_LOGBLOCK_LST:
        {
            sLogStruct.m_bEnabled = m_omListLogFiles.GetCheck(ushIndex);
        }
        break;
        case IDC_EDIT_LOGFILEPATH:
        {
            int MaxCount = sizeof(sLogStruct.m_sLogFileName) / sizeof(char);
            (GetDlgItem(IDC_EDIT_LOGFILEPATH))->GetWindowText(
                sLogStruct.m_sLogFileName, MaxCount);
        }
        break;
    }

    sLogStruct.m_bIsUpdated = TRUE;
    SetLoggingBlock(ushIndex, sLogStruct);
}
예제 #11
0
void CConfigMsgLogDlg::vUpdate_GUI_From_Datastore(USHORT usIndex)
{
    SLOGINFO sLogStruct;
    SLOGTRIGGER& sTrigger = sLogStruct.m_sLogTrigger;

    if (GetLoggingBlock(usIndex, sLogStruct) == S_OK)
    {
        vEnableDisableControls(!m_bLogON);
    }
    else
    {
        vEnableDisableControls(FALSE);
        return;
    }

    m_omListLogFiles.SetCheck(usIndex, sLogStruct.m_bEnabled);
    (GetDlgItem(IDC_EDIT_LOGFILEPATH))->SetWindowText(sLogStruct.m_sLogFileName);
    SetGUIFromTimeMode(sLogStruct.m_eLogTimerMode);
    SetGUIFromChannel(sLogStruct.m_ChannelSelected);

    int CheckBox = (DEC == sLogStruct.m_eNumFormat) ? IDC_RBTN_DECIMAL : IDC_RBTN_HEX;
    CheckRadioButton(IDC_RBTN_DECIMAL, IDC_RBTN_HEX, CheckBox);

    CheckBox = (APPEND_MODE == sLogStruct.m_eFileMode) ? IDC_RBTN_APPEND : IDC_RBTN_OVERWRITE;
    CheckRadioButton(IDC_RBTN_APPEND, IDC_RBTN_OVERWRITE, CheckBox);

    if(sLogStruct.m_eLogTimerMode  == TIME_MODE_ABSOLUTE)
    {
        m_ChkbResetTimeStamp.EnableWindow(1);
    }
    else
    {
        m_ChkbResetTimeStamp.EnableWindow(0);
    }

    if(sLogStruct.m_bResetAbsTimeStamp == TRUE)
    {
        m_ChkbResetTimeStamp.SetCheck(1);
    }
    else
    {
        m_ChkbResetTimeStamp.SetCheck(0);
    }

    if (sTrigger.m_unTriggerType != NONE)
    {
        if (sTrigger.m_unTriggerType == BOTH) // Start and stop trigger edit
        {
            // control
            CheckDlgButton(IDC_CHKB_STARTTRIGGER, BST_CHECKED);
            CheckDlgButton(IDC_CHKB_STOPTRIGGER, BST_CHECKED);
            m_odStartMsgID.vSetValue((__int64) sTrigger.m_unStartID);
            m_odStopMsgID.vSetValue((__int64) sTrigger.m_unStopID);
        }
        else
        {
            if (sTrigger.m_unTriggerType == START) // Start trigger edit control
            {
                CheckDlgButton(IDC_CHKB_STARTTRIGGER, BST_CHECKED);
                m_odStartMsgID.vSetValue((__int64) sTrigger.m_unStartID);
            }
            else
            {
                vUpdateControl(IDC_CHKB_STARTTRIGGER, CHECKBOX, CActionFlag::ENABLE_CTRL);
                vUpdateControl(IDC_EDIT_STARTMSGID, EDITCTRL, CActionFlag::CLEAR_CTRL);
            }
            if (sTrigger.m_unTriggerType == STOP) // Stop trigger edit control
            {
                CheckDlgButton(IDC_CHKB_STOPTRIGGER, BST_CHECKED);
                m_odStopMsgID.vSetValue((__int64) sTrigger.m_unStopID);
            }
            else
            {
                vUpdateControl(IDC_CHKB_STOPTRIGGER, CHECKBOX, CActionFlag::ENABLE_CTRL);
                vUpdateControl(IDC_EDIT_STOPMSGID, EDITCTRL, CActionFlag::CLEAR_CTRL);
            }
        }
    }
    else
    {
        // Start trigger check box control: clear
        CheckDlgButton(IDC_CHKB_STARTTRIGGER, BST_UNCHECKED);
        // Stop trigger check box control: clear
        CheckDlgButton(IDC_CHKB_STOPTRIGGER, BST_UNCHECKED);
        // Start trigger edit control: clear and disable
        vEnableDisableControl(IDC_EDIT_STARTMSGID, EDITCTRL, FALSE);
        // Stop trigger edit control: clear and disable
        vEnableDisableControl(IDC_EDIT_STOPMSGID, EDITCTRL, FALSE);
    }
}
// Getter for a logging block by specifying its index in the list
HRESULT CFrameProcessor_J1939::FPJ1_GetLoggingBlock(USHORT ushBlk, SLOGINFO& sLogObject)
{
    return GetLoggingBlock(ushBlk, sLogObject);
}