1 [[PREPROC_HEADER_GUARD_BEGIN]]
4 #include <controllers_utils.h>
13 namespace exceptions {
14 class MotionLibException;
20 namespace ZABM = zaber::motion;
23 namespace ZABMEX = zaber::motion::exceptions;
25 namespace ZABMEX = ZABM;
27 namespace ZAB = ZABM::ascii;
39 std::string alias =
"";
43 class ZaberDeviceInfoInternal;
63 int zaberDeviceAddress = 1;
65 std::shared_ptr<ZaberDeviceInfoInternal> internals;
66 std::shared_ptr<ZaberMotionSim> motionSim;
70 zaber::motion::ascii::Device* mZaberDevice =
nullptr;
72 std::vector<ZaberAxisInfo*> axisInfoList;
73 int nextAxisApiId = 0;
75 float initialConnection_Position = 0.0f;
87 #ifdef HC_API_MACRO_EXCLUDE_DOCS
88 virtual std::shared_ptr<CommandStateInfo> createCommandStateInfo()
override {
return std::make_shared<MovementStateInfo>(); }
97 bool doNativeHome =
false;
101 std::shared_ptr<ZaberCommandSetAxisMovement> HC_API As_ZaberCommandSetAxisMovement(std::shared_ptr<DeviceCommandPackage> package);
112 #ifdef HC_API_FEATURE_NETWORKING
125 #ifdef HC_API_MACRO_EXCLUDE_DOCS
126 virtual std::shared_ptr<CommandStateInfo> createCommandStateInfo()
override {
return std::make_shared<ZaberCommandStorageKeyStateInfo>(); }
127 #ifdef HC_API_FEATURE_NETWORKING
128 virtual void syncFromNetwork(
CommandStatus* command)
override;
138 std::shared_ptr<ZaberCommandSetStorageKey> HC_API As_ZaberCommandSetStorageKey(std::shared_ptr<DeviceCommandPackage> package);
148 #ifdef HC_API_MACRO_EXCLUDE_DOCS
149 virtual std::shared_ptr<CommandStateInfo> createCommandStateInfo()
override {
return std::make_shared<ZaberCommandStorageKeyStateInfo>(); }
150 #ifdef HC_API_FEATURE_NETWORKING
151 virtual void syncFromNetwork(
CommandStatus* command)
override;
159 std::shared_ptr<ZaberCommandGetStorageKey> HC_API As_ZaberCommandGetStorageKey(std::shared_ptr<DeviceCommandPackage> package);
166 class ZaberControllerInternals;
178 friend class ZaberControllerInternals;
181 #ifdef HC_API_MACRO_EXCLUDE_DOCS
182 virtual bool init()
override;
183 virtual bool deInit()
override;
187 virtual std::vector<std::pair<int, ZaberAxisInfo>> preConnect();
192 bool StartTrackingCommand(
int apiDeviceId,
int deviceAxisIdx);
194 bool SetStorageKey(
int apiDeviceId,
float number);
195 bool GetStorageKey(
int apiDeviceId,
float *number_out);
202 ZAB::Device *GetZaberDeviceFromZaberDeviceAddress(
int address);
203 ZAB::Device *GetZaberDeviceFromSerialNumber(
int serialNumber);
210 std::shared_ptr<ZAB::Connection> mConnection;
213 std::shared_ptr<ControlAPI::ZaberControllerInternals> internals;
221 [[PREPROC_HEADER_GUARD_END]]