#include "P700Driver.hpp" #include #include #include namespace ptprnt::driver { P700Driver::P700Driver(std::shared_ptr usbDriver, uint16_t usbDevVendor, uint16_t usbProductId) : mUsbDriver{std::move(usbDriver)} , mUsbDev{.vendorId = usbDevVendor, .productId = usbProductId} { spdlog::debug("P700Driver constructing"); if(!init()) { spdlog::error("Could not find any P700 Printers."); } else { spdlog::info("Found P700 Printer :-)."); } } P700Driver::~P700Driver() { spdlog::debug("P700Driver destructing"); } driver::info P700Driver::getInfo() { return driver::info{}; } bool P700Driver::open() { return false; } bool P700Driver::close() { return false; } bool P700Driver::command() { return false; } bool P700Driver::init() { auto devs = mUsbDriver->getDevices(); if(!devs.has_value()) { spdlog::error("No USB devices found"); return false; } auto devIt = std::find_if(devs.value().begin(), devs.value().end(), [=] (auto dev) { return mUsbDev.vendorId == dev.vendorId && mUsbDev.productId == dev.productId;} ); if(devIt == devs.value().end()) { spdlog::error("No device with {0:04X}:{1:04X}", mUsbDev.vendorId, mUsbDev.productId); return false; } mUsbDev = *devIt; return true; } } // namespace ptprnt::driver