00001 // this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- 00002 00003 // -- BEGIN LICENSE BLOCK ---------------------------------------------- 00004 00024 // -- END LICENSE BLOCK ------------------------------------------------ 00025 00026 //---------------------------------------------------------------------- 00033 //---------------------------------------------------------------------- 00034 00035 #ifndef SICK_SAFETYSCANNERS_DATASTRUCTURE_GENERALSYSTEMSTATE_H 00036 #define SICK_SAFETYSCANNERS_DATASTRUCTURE_GENERALSYSTEMSTATE_H 00037 00038 #include <stdint.h> 00039 #include <vector> 00040 00041 namespace sick { 00042 namespace datastructure { 00043 00049 class GeneralSystemState 00050 { 00051 public: 00055 GeneralSystemState(); 00056 00061 bool getRunModeActive() const; 00066 void setRunModeActive(bool run_mode_active); 00067 00072 bool getStandbyModeActive() const; 00073 00078 void setStandbyModeActive(bool standby_mode_active); 00079 00084 bool getContaminationWarning() const; 00085 00090 void setContaminationWarning(bool contamination_warning); 00091 00096 bool getContaminationError() const; 00097 00102 void setContaminationError(bool contamination_error); 00103 00108 bool getReferenceContourStatus() const; 00109 00114 void setReferenceContourStatus(bool reference_contour_status); 00115 00120 bool getManipulationStatus() const; 00121 00126 void setManipulationStatus(bool manipulation_status); 00127 00132 std::vector<bool> getSafeCutOffPathVector() const; 00133 00138 void setSafeCutOffPathvector(const std::vector<bool>& safe_cut_off_path_vector); 00139 00144 std::vector<bool> getNonSafeCutOffPathVector() const; 00145 00150 void setNonSafeCutOffPathVector(const std::vector<bool>& non_safe_cut_off_path_vector); 00151 00156 std::vector<bool> getResetRequiredCutOffPathVector() const; 00157 00162 void 00163 setResetRequiredCutOffPathVector(const std::vector<bool>& reset_required_cut_off_path_vector); 00164 00169 uint8_t getCurrentMonitoringCaseNoTable_1() const; 00170 00175 void setCurrentMonitoringCaseNoTable_1(const uint8_t& current_monitoring_case_no_table_1); 00176 00181 uint8_t getCurrentMonitoringCaseNoTable_2() const; 00182 00187 void setCurrentMonitoringCaseNoTable_2(const uint8_t& current_monitoring_case_no_table_2); 00188 00193 uint8_t getCurrentMonitoringCaseNoTable_3() const; 00194 00199 void setCurrentMonitoringCaseNoTable_3(const uint8_t& current_monitoring_case_no_table_3); 00200 00205 uint8_t getCurrentMonitoringCaseNoTable_4() const; 00206 00211 void setCurrentMonitoringCaseNoTable_4(const uint8_t& current_monitoring_case_no_table_4); 00212 00217 bool getApplicationError() const; 00218 00223 void setApplicationError(bool application_error); 00224 00229 bool getDeviceError() const; 00230 00235 void setDeviceError(bool device_error); 00236 00237 00242 bool isEmpty() const; 00243 00248 void setIsEmpty(bool is_empty); 00249 00250 private: 00251 bool m_is_empty; 00252 bool m_run_mode_active; 00253 bool m_standby_mode_active; 00254 bool m_contamination_warning; 00255 bool m_contamination_error; 00256 bool m_reference_contour_status; 00257 bool m_manipulation_status; 00258 00259 std::vector<bool> m_safe_cut_off_path_vector; 00260 std::vector<bool> m_non_safe_cut_off_path_vector; 00261 std::vector<bool> m_reset_required_cut_off_path_vector; 00262 00263 uint8_t m_current_monitoring_case_no_table_1; 00264 uint8_t m_current_monitoring_case_no_table_2; 00265 uint8_t m_current_monitoring_case_no_table_3; 00266 uint8_t m_current_monitoring_case_no_table_4; 00267 00268 bool m_application_error; 00269 bool m_device_error; 00270 }; 00271 00272 } // namespace datastructure 00273 } // namespace sick 00274 00275 #endif // SICK_SAFETYSCANNERS_DATASTRUCTURE_GENERALSYSTEMSTATE_H