/** * \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); }
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; }
/** * \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); }
/** * \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); }