00001 // 00002 // LdmrsSectorChangeApp.hpp 00003 // 00004 00005 #ifndef LDMRSSECTORCHANGEAPP_HPP 00006 #define LDMRSSECTORCHANGEAPP_HPP 00007 00008 #include "../manager.hpp" 00009 #include "../tools/Mutex.hpp" 00010 #include "../datatypes/Scan.hpp" 00011 #include "../devices/LuxBase.hpp" 00012 00013 namespace application 00014 { 00015 00016 // 00017 // LdmrsApp 00018 // 00019 class LdmrsSectorChangeApp : public BasicApplication 00020 { 00021 public: 00022 LdmrsSectorChangeApp(Manager* manager); 00023 virtual ~LdmrsSectorChangeApp(); 00024 00025 protected: 00026 void setData(BasicData& data); // Receiver 00027 00028 private: 00029 void checkResolution(Scan& scan); 00030 void changeThreadFunction(bool& endThread, UINT16& waitTimeMs); 00031 bool changeFlexResConfiguration(const ScannerInfo::ResolutionMap& configuredRM); 00032 bool changeAngularResolutionType(devices::AngularResolutionType type); 00033 bool readDetailedErrorCode(UINT32* code = NULL); 00034 00035 private: 00036 bool m_beVerbose; 00037 Manager* m_manager; 00038 ScannerInfo::ResolutionMap m_lastMeasuredSector; 00039 SickThread<LdmrsSectorChangeApp, &LdmrsSectorChangeApp::changeThreadFunction> m_changeThread; 00040 }; 00041 00042 } // namespace application 00043 00044 #endif