mirror of
https://github.com/intrepidcs/libicsneo.git
synced 2026-08-05 01:18:36 +02:00
Event refactor builds on Windows
This commit is contained in:
@@ -39,25 +39,25 @@ std::vector<neodevice_t> FTDI::FindByProduct(int product) {
|
||||
return found;
|
||||
}
|
||||
|
||||
FTDI::FTDI(const device_errorhandler_t& err, neodevice_t& forDevice) : ICommunication(err), device(forDevice) {
|
||||
FTDI::FTDI(const device_eventhandler_t& err, neodevice_t& forDevice) : ICommunication(err), device(forDevice) {
|
||||
openable = strlen(forDevice.serial) > 0 && device.handle >= 0 && device.handle < (neodevice_handle_t)handles.size();
|
||||
}
|
||||
|
||||
bool FTDI::open() {
|
||||
if(isOpen()) {
|
||||
err(APIError::DeviceCurrentlyOpen);
|
||||
report(APIEvent::Type::DeviceCurrentlyOpen, APIEvent::Severity::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!openable) {
|
||||
err(APIError::InvalidNeoDevice);
|
||||
report(APIEvent::Type::InvalidNeoDevice, APIEvent::Severity::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
// At this point the handle has been checked to be within the bounds of the handles array
|
||||
std::tuple<int, std::string>& handle = handles[device.handle];
|
||||
if(ftdi.openDevice(std::get<0>(handle), std::get<1>(handle).c_str()) != 0) {
|
||||
err(APIError::DriverFailedToOpen);
|
||||
report(APIEvent::Type::DriverFailedToOpen, APIEvent::Severity::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ bool FTDI::open() {
|
||||
|
||||
bool FTDI::close() {
|
||||
if(!isOpen()) {
|
||||
err(APIError::DeviceCurrentlyClosed);
|
||||
report(APIEvent::Type::DeviceCurrentlyClosed, APIEvent::Severity::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ bool FTDI::close() {
|
||||
|
||||
bool ret = ftdi.closeDevice();
|
||||
if(ret != 0)
|
||||
err(APIError::DriverFailedToClose);
|
||||
report(APIEvent::Type::DriverFailedToClose, APIEvent::Severity::Error);
|
||||
|
||||
uint8_t flush;
|
||||
WriteOperation flushop;
|
||||
|
||||
@@ -33,7 +33,7 @@ std::vector<PCAP::PCAPFoundDevice> PCAP::FindAll() {
|
||||
}
|
||||
|
||||
if(!success) {
|
||||
ErrorManager::GetInstance().add(APIError::PCAPCouldNotFindDevices);
|
||||
EventManager::GetInstance().add(APIEvent::PCAPCouldNotFindDevices);
|
||||
return std::vector<PCAPFoundDevice>();
|
||||
}
|
||||
|
||||
@@ -167,7 +167,7 @@ bool PCAP::IsHandleValid(neodevice_handle_t handle) {
|
||||
return (netifIndex < knownInterfaces.size());
|
||||
}
|
||||
|
||||
PCAP::PCAP(device_errorhandler_t err, neodevice_t& forDevice) : ICommunication(err), device(forDevice) {
|
||||
PCAP::PCAP(device_eventhandler_t err, neodevice_t& forDevice) : ICommunication(err), device(forDevice) {
|
||||
if(IsHandleValid(device.handle)) {
|
||||
interface = knownInterfaces[(device.handle >> 24) & 0xFF];
|
||||
interface.fp = nullptr; // We're going to open our own connection to the interface. This should already be nullptr but just in case.
|
||||
@@ -193,7 +193,7 @@ bool PCAP::open() {
|
||||
// Open the interface
|
||||
interface.fp = pcap_open_live(interface.nameFromWinPCAP.c_str(), INT16_MAX, 1, 0, errbuf);
|
||||
if(interface.fp == nullptr) {
|
||||
err(APIError::DriverFailedToOpen);
|
||||
report(APIEvent::Type::DriverFailedToOpen, APIEvent::Severity::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -236,7 +236,7 @@ void PCAP::readTask() {
|
||||
while(!closing) {
|
||||
auto readBytes = pcap_next_ex(interface.fp, &header, &data);
|
||||
if(readBytes < 0) {
|
||||
err(APIError::FailedToRead);
|
||||
report(APIEvent::Type::FailedToRead, APIEvent::Severity::Error);
|
||||
break;
|
||||
}
|
||||
if(readBytes == 0)
|
||||
|
||||
@@ -192,7 +192,7 @@ std::vector<neodevice_t> STM32::FindByProduct(int product) {
|
||||
|
||||
bool STM32::open() {
|
||||
if(isOpen()) {
|
||||
err(APIError::DeviceCurrentlyOpen);
|
||||
report(APIEvent::Type::DeviceCurrentlyOpen, APIEvent::Severity::Error);
|
||||
return false;
|
||||
}
|
||||
std::stringstream ss;
|
||||
@@ -200,7 +200,7 @@ bool STM32::open() {
|
||||
fd = ::open(ss.str().c_str(), O_RDWR | O_NOCTTY | O_SYNC);
|
||||
if(!isOpen()) {
|
||||
//std::cout << "Open of " << ss.str().c_str() << " failed with " << strerror(errno) << ' ';
|
||||
err(APIError::DriverFailedToOpen);
|
||||
report(APIEvent::Type::DriverFailedToOpen, APIEvent::Severity::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -209,7 +209,7 @@ bool STM32::open() {
|
||||
|
||||
if(tcgetattr(fd, &tty) != 0) {
|
||||
close();
|
||||
err(APIError::DriverFailedToOpen);
|
||||
report(APIEvent::Type::DriverFailedToOpen, APIEvent::Severity::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -232,7 +232,7 @@ bool STM32::open() {
|
||||
|
||||
if(tcsetattr(fd, TCSAFLUSH, &tty) != 0) { // Flushes input and output buffers as well as setting settings
|
||||
close();
|
||||
err(APIError::DriverFailedToOpen);
|
||||
report(APIEvent::Type::DriverFailedToOpen, APIEvent::Severity::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -254,7 +254,7 @@ bool STM32::isOpen() {
|
||||
|
||||
bool STM32::close() {
|
||||
if(!isOpen()) {
|
||||
err(APIError::DeviceCurrentlyClosed);
|
||||
report(APIEvent::Type::DeviceCurrentlyClosed, APIEvent::Severity::Error);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -279,7 +279,7 @@ bool STM32::close() {
|
||||
if(ret == 0) {
|
||||
return true;
|
||||
} else {
|
||||
err(APIError::DriverFailedToClose);
|
||||
report(APIEvent::Type::DriverFailedToClose, APIEvent::Severity::Error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -303,7 +303,7 @@ void STM32::writeTask() {
|
||||
const ssize_t writeSize = (ssize_t)writeOp.bytes.size();
|
||||
ssize_t actualWritten = ::write(fd, writeOp.bytes.data(), writeSize);
|
||||
if(actualWritten != writeSize)
|
||||
err(APIError::FailedToWrite);
|
||||
report(APIEvent::Type::FailedToWrite, APIEvent::Severity::Error);
|
||||
onWrite();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user