6 #ifndef IFM3D_PCICCLIENT_PCICCLIENT_H
7 #define IFM3D_PCICCLIENT_PCICCLIENT_H
9 #include <ifm3d/device.h>
10 #include <ifm3d/pcicclient/module_pcicclient.h>
24 using Ptr = std::shared_ptr<PCICClient>;
34 std::uint16_t pcic_port = ifm3d::PCIC_PORT);
78 long Call(
const std::string& request,
79 std::function<
void(
const std::string& response)> callback);
95 std::string
Call(
const std::string& request);
120 bool Call(
const std::string& request,
121 std::string& response,
122 long timeout_millis);
138 std::function<
void(
const std::string& error)> callback);
156 std::function<
void(
const std::string& notification)> callback);
172 std::unique_ptr<Impl> _impl;
The PCICClient is a class that, when given access to an ifm3d::Camera::Ptr, it provides unbuffered co...
Definition: pcicclient.h:22
std::string Call(const std::string &request)
Sends a PCIC command to the camera and returns the response as soon as it has been received.
bool Call(const std::string &request, std::string &response, long timeout_millis)
Similar to the Call function above.
virtual ~PCICClient()
Cleans up any resources held by the receive thread object and blocks until the operating system threa...
void CancelCallback(long callback_id)
Cancels registered callbacks.
long Call(const std::string &request, std::function< void(const std::string &response)> callback)
Sends a PCIC command to the camera and returns the response asynchronously through a callback (,...
long SetNotificationCallback(std::function< void(const std::string ¬ification)> callback)
Sets the specified callback for receiving asynchronous notification messages until it is replaced by ...
long SetErrorCallback(std::function< void(const std::string &error)> callback)
Sets the specified callback for receiving asynchronous error messages until it is replaced by a new c...
PCICClient(ifm3d::LegacyDevice::Ptr cam, std::uint16_t pcic_port=ifm3d::PCIC_PORT)
Stores reference to the passed in camera and starts connect/receive thread.
void Stop()
Interrupts the running thread by throwing an ifm3d::error_t with code IFM3D_THREAD_INTERRUPTED.