Example #1
0
/**
* \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);
}
Example #2
0
/**
* \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);
}