LEWebcamDialog::LEWebcamDialog(wxWindow *parent, CVVidCapture *vc) : wxDialog(parent, wxID_ANY, _("Serial LE Webcam")) { m_pVidCap = vc; wxBoxSizer *pHSizer = new wxBoxSizer(wxHORIZONTAL); wxStaticText *pPortLabel = new wxStaticText(this, wxID_ANY, _("LE Port")); pHSizer->Add(pPortLabel, wxSizerFlags().Border(wxRIGHT | wxLEFT, 10)); try { SerialPort *pSerialPort = SerialPort::SerialPortFactory(); if (!pSerialPort) { throw ERROR_INFO("LESerialWebcamClass::Connect: serial port is NULL"); } wxArrayString serialPorts = pSerialPort->GetSerialPortList(); if (serialPorts.IsEmpty()) { wxMessageBox(_("No serial ports found"),_("Error"), wxOK | wxICON_ERROR); throw ERROR_INFO("No Serial port found"); } wxString lastSerialPort = pConfig->Profile.GetString("/camera/serialLEWebcam/serialport", ""); int resp = serialPorts.Index(lastSerialPort); m_pPortNum = new wxChoice(this, wxID_ANY,wxDefaultPosition, wxDefaultSize, serialPorts ); m_pPortNum->SetSelection(resp); pHSizer->Add(m_pPortNum, wxSizerFlags().Border(wxRIGHT | wxLEFT, 10).Expand()); delete pSerialPort; } catch (wxString Msg) { POSSIBLY_UNUSED(Msg); } int signal_config = pConfig->Profile.GetInt("/camera/serialLEWebcam/SignalConfig", LE_DEFAULT); wxFlexGridSizer *pSignalSizer = new wxFlexGridSizer(6, 3, 5, 15); pSignalSizer->Add(new wxStaticText(this, wxID_ANY, _("Port pins"))); pSignalSizer->Add(new wxStaticText(this, wxID_ANY, _T("DTR"))); pSignalSizer->Add(new wxStaticText(this, wxID_ANY, _T("CTS"))); pSignalSizer->Add(new wxStaticText(this, wxID_ANY, _T("LE Mask"))); m_pLEMaskDTR = new wxCheckBox(this, wxID_ANY, _T("")); m_pLEMaskDTR->SetValue(signal_config & LE_MASK_DTR ? true : false); pSignalSizer->Add(m_pLEMaskDTR, wxSizerFlags().Center()); m_pLEMaskRTS = new wxCheckBox(this, wxID_ANY, _T("")); m_pLEMaskRTS->SetValue(signal_config & LE_MASK_RTS ? true : false); pSignalSizer->Add(m_pLEMaskRTS, wxSizerFlags().Center()); //pSignalSizer->Add(new wxStaticText(this, wxID_ANY, _T("LE Init"))); //m_pLEInitDTR = new wxCheckBox(this, wxID_ANY, _T("")); //m_pLEInitDTR->SetValue(signal_config & LE_INIT_DTR ? true : false); //pSignalSizer->Add(m_pLEInitDTR, wxSizerFlags().Center()); //m_pLEInitRTS = new wxCheckBox(this, wxID_ANY, _T("")); //m_pLEInitRTS->SetValue(signal_config & LE_INIT_RTS ? true : false); //pSignalSizer->Add(m_pLEInitRTS, wxSizerFlags().Center()); pSignalSizer->Add(new wxStaticText(this, wxID_ANY, _T("LE Expo"))); m_pLEExpoDTR = new wxCheckBox(this, wxID_ANY, _T("")); m_pLEExpoDTR->SetValue(signal_config & LE_EXPO_DTR ? true : false); pSignalSizer->Add(m_pLEExpoDTR, wxSizerFlags().Center()); m_pLEExpoRTS = new wxCheckBox(this, wxID_ANY, _T("")); m_pLEExpoRTS->SetValue(signal_config & LE_EXPO_RTS ? true : false); pSignalSizer->Add(m_pLEExpoRTS, wxSizerFlags().Center()); pSignalSizer->Add(new wxStaticText(this, wxID_ANY, _T("LE Amp"))); m_pLEAmpDTR = new wxCheckBox(this, wxID_ANY, _T("")); m_pLEAmpDTR->SetValue(signal_config & LE_AMP_DTR ? true : false); pSignalSizer->Add(m_pLEAmpDTR, wxSizerFlags().Center()); m_pLEAmpRTS = new wxCheckBox(this, wxID_ANY, _T("")); m_pLEAmpRTS->SetValue(signal_config & LE_AMP_RTS ? true : false); pSignalSizer->Add(m_pLEAmpRTS, wxSizerFlags().Center()); m_pInvertedLogic = new wxCheckBox(this, wxID_ANY, _("Inverted logic")); m_pInvertedLogic->SetValue(pConfig->Profile.GetBoolean("/camera/serialLEWebcam/InvertedLogic", true)); m_pUseAmp = new wxCheckBox(this, wxID_ANY, _("Use Amp")); m_pUseAmp->SetValue(pConfig->Profile.GetBoolean("/camera/serialLEWebcam/UseAmp", false)); wxBoxSizer *pVSizer = new wxBoxSizer(wxVERTICAL); pVSizer->Add(pHSizer, wxSizerFlags().Border(wxTOP | wxBOTTOM, 10).Expand()); pVSizer->Add(pSignalSizer, wxSizerFlags().Border(wxALL, 10).Expand()); pVSizer->Add(m_pInvertedLogic, wxSizerFlags().Border(wxRIGHT | wxLEFT, 10)); pVSizer->Add(m_pUseAmp, wxSizerFlags().Border(wxTOP | wxRIGHT | wxLEFT, 10)); pHSizer = new wxBoxSizer(wxHORIZONTAL); wxButton *pBtnDefault = new wxButton(this, wxID_DEFAULT, _("Defaults")); pHSizer->Add(pBtnDefault); if (m_pVidCap) { wxButton *pBtnVidCap = new wxButton(this, wxID_CONVERT, _("Webcam settings")); pHSizer ->Add(pBtnVidCap, wxSizerFlags().Border(wxLEFT, 10)); } pVSizer->Add(pHSizer, wxSizerFlags().Border(wxALL, 10)); pVSizer->Add(CreateButtonSizer(wxOK | wxCANCEL), wxSizerFlags().Border(wxALL, 10)); SetSizerAndFit(pVSizer); }