Event refactor builds on Windows

This commit is contained in:
EricLiu2000
2019-06-24 17:59:45 -04:00
parent 878d9e6dde
commit 50dba62a89
47 changed files with 848 additions and 951 deletions
+6 -6
View File
@@ -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;
+4 -4
View File
@@ -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)
+7 -7
View File
@@ -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();
}
}