コード例 #1
0
ファイル: CAN_MHS.cpp プロジェクト: JiteshPatel/busmaster
/**
* \brief         Displays the controller configuration dialog.
* \param[out]    InitData, is SCONTROLLER_DETAILS structure
* \param[out]    Length , is INT
* \return        S_OK for success
*/
HRESULT CDIL_CAN_MHS::CAN_DisplayConfigDlg(PSCONTROLLER_DETAILS InitData, int& Length)
{
    (void)Length;
    HRESULT result;
    static struct TMhsCanCfg cfg = {"", 0,0, true};
    SCONTROLLER_DETAILS* cntrl;
    char* str;

    result = WARN_INITDAT_NCONFIRM;
    cntrl = (SCONTROLLER_DETAILS*)InitData;
    if ( cntrl[0].m_nBTR0BTR1 == 0 )
    {
        cfg.CanSpeed = _tcstol(cntrl[0].m_omStrBaudrate.c_str(), &str, 0);

        if ( cfg.CanSpeed > 1000 )
        {
            cfg.CanSpeed/=1000;
        }

        cfg.m_bBitRateSelected = TRUE;
        cfg.CanBtrValue = 0;
    }
    else
    {
        cfg.CanSpeed = 0;
        cfg.CanBtrValue = _tcstol(cntrl[0].m_omStrBTR0.c_str(), &str, 0);
        cfg.m_bBitRateSelected = FALSE;
    }
    strcpy_s(cfg.CanSnrStr, sizeof(cfg.CanSnrStr), cntrl[0].m_omHardwareDesc.c_str());
    if (ShowCanSetup(sg_hOwnerWnd, &cfg))
    {
        char chTemp[255];
        cntrl[0].m_omHardwareDesc = cfg.CanSnrStr;
        if (cfg.CanBtrValue)
        {
            cntrl[0].m_omStrBaudrate = "";
            sprintf_s(chTemp, sizeof(chTemp), "%d", cfg.CanBtrValue);
            cntrl[0].m_omStrBTR0 = chTemp;
            cntrl[0].m_nBTR0BTR1 = cfg.CanBtrValue;
            cfg.m_bBitRateSelected = FALSE;
        }
        else
        {
            sprintf_s(chTemp,  sizeof(chTemp), "%d", cfg.CanSpeed);
            cntrl[0].m_omStrBaudrate  = chTemp;
            cntrl[0].m_omStrBTR0 = "";
            cntrl[0].m_nBTR0BTR1 = cfg.CanBtrValue;
            cfg.m_bBitRateSelected = TRUE;
        }
        if ((result = CAN_SetConfigData(InitData, 1)) == S_OK)
        {
            result = INFO_INITDAT_CONFIRM_CONFIG;
        }
    }
    return(result);
}
コード例 #2
0
ファイル: CAN_i-VIEW.cpp プロジェクト: BlackVodka/busmaster
HRESULT CDIL_CAN_i_VIEW::CAN_DisplayConfigDlg(
    PSCONTROLLER_DETAILS    InitData,
    int&            Length )
{
    VALIDATE_VALUE_RETURN_VAL(m_CurrState, STATE_HW_INTERFACE_SELECTED, ERR_IMPROPER_STATE);
    VALIDATE_POINTER_RETURN_VAL(InitData, WARN_INITDAT_NCONFIRM);

    USES_CONVERSION;

    INT Result = WARN_INITDAT_NCONFIRM;
    //First initialize with existing hw description
    for (INT i = 0; i < min(Length, (INT)m_nChannels); i++)
    {
        InitData[i].m_omHardwareDesc = m_Channel[i]->Name();
    }
    if (m_nChannels > 0)
    {
        //Result = DisplayConfigurationDlg(m_hOwnerWnd, Callback_DIL_iVIEW,
        //  psContrlDets, m_nChannels);
        AFX_MANAGE_STATE(AfxGetStaticModuleState());
        CChangeRegisters ChangeRegisters(nullptr, InitData, m_nChannels);
        ChangeRegisters.DoModal();
        Result = ChangeRegisters.nGetInitStatus();

        switch (Result)
        {
            case WARNING_NOTCONFIRMED:
                Result = WARN_INITDAT_NCONFIRM;
                break;
            case INFO_INIT_DATA_CONFIRMED:
                Length = sizeof(SCONTROLLER_DETAILS) * defNO_OF_CHANNELS;
                Result = CAN_SetConfigData(InitData, Length);
                if (Result == S_OK)
                {
                    Result = INFO_INITDAT_CONFIRM_CONFIG;
                }
                break;
            case INFO_RETAINED_CONFDATA:
                Result = INFO_INITDAT_RETAINED;
                break;
            case ERR_CONFIRMED_CONFIGURED: // Not to be addressed at present
            case INFO_CONFIRMED_CONFIGURED:// Not to be addressed at present
            default:
                break;
        }
    }
    return Result;
}
コード例 #3
0
ファイル: CAN_MHS.cpp プロジェクト: Conti-Meissner/busmaster
/**
* \brief         Displays the controller configuration dialog.
* \param[out]    InitData, is SCONTROLLER_DETAILS structure
* \param[out]    Length , is INT
* \return        S_OK for success
*/
HRESULT CDIL_CAN_MHS::CAN_DisplayConfigDlg(PCHAR& InitData, INT& Length)
{
(void)Length;
HRESULT result;
struct TMhsCanCfg cfg;
SCONTROLLER_DETAILS* cntrl;
char *str;

result = WARN_INITDAT_NCONFIRM;
cntrl = (SCONTROLLER_DETAILS*)InitData;
if (!str_has_char(cntrl[0].m_omStrBaudrate))
  {
  cfg.CanSpeed = _tcstol(cntrl[0].m_omStrBaudrate, &str, 0);
  cfg.CanBtrValue = 0;
  }
else
  {
  cfg.CanSpeed = 0;
  cfg.CanBtrValue = _tcstol(cntrl[0].m_omStrBTR0, &str, 0);
  }
_tcscpy(cfg.CanSnrStr, cntrl[0].m_omHardwareDesc);
if (ShowCanSetup(sg_hOwnerWnd, &cfg))
  {
  _tcscpy(cntrl[0].m_omHardwareDesc, cfg.CanSnrStr);
  if (cfg.CanBtrValue)
    {
    cntrl[0].m_omStrBaudrate[0] = '\0';
    _stprintf(cntrl[0].m_omStrBTR0, _T("%d"), cfg.CanBtrValue);
    }
  else
    {
    _stprintf(cntrl[0].m_omStrBaudrate, _T("%d"), cfg.CanSpeed);
    cntrl[0].m_omStrBTR0[0] = '\0';
    }
  if ((result = CAN_SetConfigData(InitData, 1)) == S_OK)
    result = INFO_INITDAT_CONFIRM_CONFIG;
  }
return(result);
}
コード例 #4
0
ファイル: CAN_VSCOM.cpp プロジェクト: Jason45degree/busmaster
/**
* \brief         Displays the controller configuration dialog.
* \param[out]    InitData, is SCONTROLLER_DETAILS structure
* \param[out]    Length , is INT
* \return        S_OK for success
*/
HRESULT CDIL_CAN_VSCOM::CAN_DisplayConfigDlg(PSCONTROLLER_DETAILS InitData, int& Length)
{
    (void)Length;
    HRESULT result;
    SCONTROLLER_DETAILS* cntrl;
    char temp[32];

    result = WARN_INITDAT_NCONFIRM;
    cntrl = (SCONTROLLER_DETAILS*)InitData;

    if (ShowCanVsComSetup(sg_hOwnerWnd, &sg_VSCanCfg))
    {
        if (sg_VSCanCfg.vSpeed)
        {
            switch ((int)sg_VSCanCfg.vSpeed)
            {
                case VSCAN_SPEED_20K:
                    cntrl[0].m_omStrBaudrate = "20";
                    break;
                case VSCAN_SPEED_50K:
                    cntrl[0].m_omStrBaudrate = "50";
                    break;
                case VSCAN_SPEED_100K:
                    cntrl[0].m_omStrBaudrate = "100";
                    break;
                case VSCAN_SPEED_125K:
                    cntrl[0].m_omStrBaudrate = "125";
                    break;
                case VSCAN_SPEED_250K:
                    cntrl[0].m_omStrBaudrate = "250";
                    break;
                case VSCAN_SPEED_500K:
                    cntrl[0].m_omStrBaudrate = "500";
                    break;
                case VSCAN_SPEED_800K:
                    cntrl[0].m_omStrBaudrate = "800";
                    break;
                default:
                    cntrl[0].m_omStrBaudrate = "1000";
                    break;
            }
        }
        else
        {
            cntrl[0].m_omStrBaudrate = "";
            sprintf(temp, "%02X", sg_VSCanCfg.btr.Btr0);
            cntrl[0].m_omStrBTR0 = temp;
            sprintf(temp, "%02X", sg_VSCanCfg.btr.Btr1);
            cntrl[0].m_omStrBTR1 = temp;
        }

        cntrl[0].m_bDebug = sg_VSCanCfg.bDebug;

        cntrl[0].m_omStrLocation = sg_VSCanCfg.szLocation;

        if (sg_VSCanCfg.dwMode == VSCAN_MODE_LISTEN_ONLY)
        {
            cntrl[0].m_bPassiveMode = 1;
            cntrl[0].m_bSelfReception = 0;
        }
        else if (sg_VSCanCfg.dwMode == VSCAN_MODE_SELF_RECEPTION)
        {
            cntrl[0].m_bPassiveMode = 0;
            cntrl[0].m_bSelfReception = 1;
        }
        else
        {
            cntrl[0].m_bPassiveMode = 0;
            cntrl[0].m_bSelfReception = 0;
        }

        cntrl[0].m_bHWTimestamps = sg_VSCanCfg.bTimestamps;

        sprintf(temp, "%X", (sg_VSCanCfg.codeMask.Code >> 0) & 0xFF);
        cntrl[0].m_omStrAccCodeByte1[0] = temp;
        sprintf(temp, "%X", (sg_VSCanCfg.codeMask.Code >> 8) & 0xFF);
        cntrl[0].m_omStrAccCodeByte2[0] = temp;
        sprintf(temp, "%X", (sg_VSCanCfg.codeMask.Code >> 16) & 0xFF);
        cntrl[0].m_omStrAccCodeByte3[0] = temp;
        sprintf(temp, "%X", (sg_VSCanCfg.codeMask.Code >> 24) & 0xFF);
        cntrl[0].m_omStrAccCodeByte4[0] = temp;

        sprintf(temp, "%X", (sg_VSCanCfg.codeMask.Mask >> 0) & 0xFF);
        cntrl[0].m_omStrAccMaskByte1[0] = temp;
        sprintf(temp, "%X", (sg_VSCanCfg.codeMask.Mask >> 8) & 0xFF);
        cntrl[0].m_omStrAccMaskByte2[0] = temp;
        sprintf(temp, "%X", (sg_VSCanCfg.codeMask.Mask >> 16) & 0xFF);
        cntrl[0].m_omStrAccMaskByte3[0] = temp;
        sprintf(temp, "%X", (sg_VSCanCfg.codeMask.Mask >> 24) & 0xFF);
        cntrl[0].m_omStrAccMaskByte4[0] = temp;

        cntrl[0].m_bAccFilterMode = sg_VSCanCfg.bDualFilter;

        if ((result = CAN_SetConfigData(InitData, 1)) == S_OK)
        {
            result = INFO_INITDAT_CONFIRM_CONFIG;
        }
    }
    return(result);
}