SCENE C++ API  2.1.0
lsscanner.h
1 #pragma once
2 
3 #include <core_api/lsglobaldefinitions.h>
4 #include <core_api/lsinterface.h>
5 #include <core_api/lsstring.h>
6 #include <core_api/lsattributecontainer.h>
7 
8 #include <scanner_api/lsfuturetask.h>
9 
10 namespace SCENE_API {
11 
12 // Forward declarations
13 class LSScanner_Implementation;
14 
20 class LSScanner : public LSInterface
21 {
22  LS_UNCOPYABLE(LSScanner)
23 
24 public:
25 
28  SCANNER_API_EXPORT LSScanner();
29 
32  SCANNER_API_EXPORT virtual ~LSScanner();
33 
41  SCANNER_API_EXPORT LSResult::Result connect(LSString address);
42 
47  SCANNER_API_EXPORT LSResult::Result disconnect();
48 
53  SCANNER_API_EXPORT ref_ptr<LSFutureTask> takeScan();
54 
67  SCANNER_API_EXPORT ref_ptr<LSFutureTask> takeRemoteScan(LSString filePath);
68 
70  SCANNER_API_EXPORT void stopScan();
71 
75  SCANNER_API_EXPORT bool shutdown();
76 
81  SCANNER_API_EXPORT ref_ptr<LSAttributeContainer> getCurrentScanProfile() const;
82 
86  SCANNER_API_EXPORT bool setCurrentScanProfile(ref_ptr<LSAttributeContainer> scanProfile);
87 
92 
97  SCANNER_API_EXPORT bool selectScanProfile(LSString profileID);
98 
103  SCANNER_API_EXPORT bool addScanProfile(ref_ptr<LSAttributeContainer> scanProfile);
104 
109  SCANNER_API_EXPORT bool removeScanProfile(LSString profileID);
110 
115 
120  SCANNER_API_EXPORT bool selectScanProject(LSString projectID);
121 
126  SCANNER_API_EXPORT bool addScanProject(ref_ptr<LSAttributeContainer> scanProject);
127 
132  SCANNER_API_EXPORT bool removeScanProject(LSString projectID);
133 
137  SCANNER_API_EXPORT LSPod<std::vector<ref_ptr<LSAttributeContainer> > > getOperators() const;
138 
144  SCANNER_API_EXPORT bool selectOperator(LSString operatorID);
145 
150  SCANNER_API_EXPORT bool addOperator(ref_ptr<LSAttributeContainer> scanOperator);
151 
156  SCANNER_API_EXPORT bool removeOperator(LSString operatorID);
157 
162  SCANNER_API_EXPORT ref_ptr<LSAttributeContainer> getGeneralSettings() const;
163 
168  SCANNER_API_EXPORT bool setGeneralSettings(ref_ptr<LSAttributeContainer> settings);
169 
173  SCANNER_API_EXPORT LSPod<std::vector<ref_ptr<LSAttributeContainer> > > getScans() const;
174 
181  SCANNER_API_EXPORT ref_ptr<LSAttributeContainer> getScanProperties(LSString scanFile) const;
182 
187  SCANNER_API_EXPORT ref_ptr<LSAttributeContainer> getServiceInformation() const;
188 
193  SCANNER_API_EXPORT ref_ptr<LSAttributeContainer> getSensorInformation() const;
194 
199  SCANNER_API_EXPORT ref_ptr<LSAttributeContainer> getSystemVersion() const;
200 
205  SCANNER_API_EXPORT ref_ptr<LSAttributeContainer> getFirmwareVersion() const;
206 
214  SCANNER_API_EXPORT ref_ptr<LSAttributeContainer> getScannerStatus() const;
215 
223 
231  SCANNER_API_EXPORT ref_ptr<LSAttributeContainer> getWarningMessage() const;
232 
237  SCANNER_API_EXPORT ref_ptr<LSAttributeContainer> getScannerParameters() const;
238 
243  SCANNER_API_EXPORT bool setScannerParameters(ref_ptr<LSAttributeContainer> parameters);
244 
251  SCANNER_API_EXPORT LSPod<std::vector<std::pair<LSString, LSString>>> detectScanners(int waitForMs = 1000) const;
252 
257  SCANNER_API_EXPORT bool getSensorTemperature(double& temperature) const;
258 
259 protected:
260  LS_INTERFACE(LSScanner, LSInterface)
261 };
262 
263 }