#ifndef __VCP_WINDOWS_H_ #define __VCP_WINDOWS_H_ #ifdef __cplusplus #include #include #include #include #include #include "icsneo/device/neodevice.h" #include "icsneo/communication/driver.h" #include "icsneo/api/eventmanager.h" namespace icsneo { // Virtual COM Port Communication class VCP : public Driver { public: static void Find(std::vector& found, std::vector driverName); static bool IsHandleValid(neodevice_handle_t handle); typedef void(*fn_boolCallback)(bool success); VCP(const device_eventhandler_t& err, neodevice_t& forDevice); ~VCP() { close(); } bool open() { return open(false); } void openAsync(fn_boolCallback callback); bool close(); bool isOpen(); private: bool open(bool fromAsync); bool opening = false; neodevice_t& device; struct Detail; std::shared_ptr detail; std::vector> threads; void readTask(); void writeTask(); }; } #endif // __cplusplus #endif