BetProcedureFrame::BetProcedureFrame(wxWindow* parent, const Patient& patient) : BaseProcedureFrame(parent), currents_graphic_( wxBitmap(wxT("graphic_small"), wxBITMAP_TYPE_PNG_RESOURCE).ConvertToImage(), 20, 15, 680, 120, DURATION_LIMIT + 30 * 60, //30min. for closing procedure 80, { wxColor(13, 193, 184), wxColor(0, 0, 255), wxColor(125, 0, 255), wxColor(255, 0, 0), wxColor(255, 125, 0), wxColor(80, 170, 80) }), voltage_graphic_( wxBitmap(wxT("graphic_big"), wxBITMAP_TYPE_PNG_RESOURCE).ConvertToImage(), 26, 15, 674, 240, DURATION_LIMIT + 30 * 60, 120, { wxColor(0, 0, 225), wxColor(125, 0, 0), wxColor(0, 125, 0), wxColor(125, 0, 125) }), lightR_(wxT("lightr"), wxBITMAP_TYPE_PNG_RESOURCE), lightG_( wxT("lightg"), wxBITMAP_TYPE_PNG_RESOURCE), lightS_(wxT("lights"), wxBITMAP_TYPE_PNG_RESOURCE), switch1_( SW_OFF), switch2_(SW_OFF), switch3_(SW_OFF), switch4_(SW_OFF), switch5_(SW_OFF), switch6_( SW_OFF), cable_(CABLE_OUT), key_(KEY_ON), polarity_(false), voltage_(0), decrease_speed_(0.1), time_to_end_(60), q_( 0), duration_(0), state_( STATE_INITIAL), conf_channel_alarm_wait_(10){ for (int i = 0; i < 7; i++) { voltages_[i] = 0; currents_[i] = 0; } patient_id_ = patient.getPatientNumber(); m_txtPatientName->SetLabel(patient.getFullName()); m_txtTreatmentNumber->SetLabel(wxString::Format("%i", patient.getTreatmentCount() + 1)); m_bmpElectrodes->SetBitmap(currents_graphic_.getImage()); m_bmpVoltage->SetBitmap(voltage_graphic_.getImage()); my_timer_.SetOwner(this); m_bmpInd1->SetBitmap(lightS_); m_bmpInd2->SetBitmap(lightS_); m_bmpInd3->SetBitmap(lightS_); m_bmpInd4->SetBitmap(lightS_); m_bmpInd5->SetBitmap(lightS_); m_bmpInd6->SetBitmap(lightS_); updateFloatValue(voltage_, m_txtVoltage); updateIntegerValue(0, m_txtCurrent); updateDurationValue(time_to_end_, m_txtDuration); parseOptions(); Bind(wxEVT_TIMER, &BetProcedureFrame::OnTimer, this); if (options_.find(std::string("port")) == options_.end() ) throw std::runtime_error("port not specified in configuration file"); protocol_.start(options_[std::string("port")].as<std::string>()); decrease_speed_ = options_[std::string("decrease_speed")].as<float>(); regulator_speed_ = options_[std::string("regulator_speed")].as<float>(); conf_channel_alarm_wait_ = options_[std::string("channel_alarm_wait")].as<unsigned int>(); Bind(wxEVT_KEY_DOWN, &BetProcedureFrame::OnKeyEvent, this, wxID_ANY); DoGoInInitialState(); my_timer_.Start(1000); wxGetApp().setProcedureFrame(this); }
bool operator==(const Patient& patientl, const Patient& patientr){ return patientl.getPatientNumber() == patientr.getPatientNumber(); }