mirror of
https://github.com/intrepidcs/libicsneo.git
synced 2026-08-05 01:18:36 +02:00
Drivers: Decouple from devices
This allows us to better implement alternative drivers for devices, such as for device sharing servers or talking to CoreMini processors within the same device.
This commit is contained in:
@@ -10,7 +10,7 @@ namespace icsneo {
|
||||
class CDCACM : public VCP {
|
||||
public:
|
||||
CDCACM(const device_eventhandler_t& err, neodevice_t& forDevice) : VCP(err, forDevice) {}
|
||||
static std::vector<neodevice_t> FindByProduct(int product) { return VCP::FindByProduct(product, { L"usbser" }); }
|
||||
static void Find(std::vector<FoundDevice>& found) { return VCP::Find(found, { L"usbser" }); }
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -5,31 +5,25 @@
|
||||
#include "icsneo/device/tree/neoobd2pro/neoobd2pro.h"
|
||||
#include "icsneo/device/tree/neoobd2sim/neoobd2sim.h"
|
||||
#include "icsneo/device/tree/neovifire/neovifire.h"
|
||||
#include "icsneo/device/tree/neovifire2/neovifire2eth.h"
|
||||
#include "icsneo/device/tree/neovifire2/neovifire2usb.h"
|
||||
#include "icsneo/device/tree/neovifire2/neovifire2.h"
|
||||
#include "icsneo/device/tree/neovired2/neovired2.h"
|
||||
#include "icsneo/device/tree/plasion/neoviion.h"
|
||||
#include "icsneo/device/tree/plasion/neoviplasma.h"
|
||||
#include "icsneo/device/tree/radepsilon/radepsilon.h"
|
||||
#include "icsneo/device/tree/radgalaxy/radgalaxy.h"
|
||||
#include "icsneo/device/tree/radgigastar/radgigastareth.h"
|
||||
#include "icsneo/device/tree/radgigastar/radgigastarusb.h"
|
||||
#include "icsneo/device/tree/radmars/radmarseth.h"
|
||||
#include "icsneo/device/tree/radmars/radmarsusb.h"
|
||||
#include "icsneo/device/tree/radgigastar/radgigastar.h"
|
||||
#include "icsneo/device/tree/radmars/radmars.h"
|
||||
#include "icsneo/device/tree/radmoon2/radmoon2.h"
|
||||
#include "icsneo/device/tree/radmoonduo/radmoonduo.h"
|
||||
#include "icsneo/device/tree/radpluto/radplutousb.h"
|
||||
#include "icsneo/device/tree/radstar2/radstar2eth.h"
|
||||
#include "icsneo/device/tree/radstar2/radstar2usb.h"
|
||||
#include "icsneo/device/tree/radpluto/radpluto.h"
|
||||
#include "icsneo/device/tree/radstar2/radstar2.h"
|
||||
#include "icsneo/device/tree/radsupermoon/radsupermoon.h"
|
||||
#include "icsneo/device/tree/valuecan3/valuecan3.h"
|
||||
#include "icsneo/device/tree/valuecan4/valuecan4-1.h"
|
||||
#include "icsneo/device/tree/valuecan4/valuecan4-2.h"
|
||||
#include "icsneo/device/tree/valuecan4/valuecan4-2eleth.h"
|
||||
#include "icsneo/device/tree/valuecan4/valuecan4-2elusb.h"
|
||||
#include "icsneo/device/tree/valuecan4/valuecan4-2el.h"
|
||||
#include "icsneo/device/tree/valuecan4/valuecan4-4.h"
|
||||
#include "icsneo/device/tree/valuecan4/valuecan4industrialeth.h"
|
||||
#include "icsneo/device/tree/valuecan4/valuecan4industrialusb.h"
|
||||
#include "icsneo/device/tree/valuecan4/valuecan4industrial.h"
|
||||
#include "icsneo/device/tree/vividcan/vividcan.h"
|
||||
|
||||
#endif
|
||||
@@ -10,7 +10,7 @@ namespace icsneo {
|
||||
class FTDI : public VCP {
|
||||
public:
|
||||
FTDI(const device_eventhandler_t& err, neodevice_t& forDevice) : VCP(err, forDevice) {}
|
||||
static std::vector<neodevice_t> FindByProduct(int product) { return VCP::FindByProduct(product, { L"serenum" /*, L"ftdibus" */ }); }
|
||||
static void Find(std::vector<FoundDevice>& found) { return VCP::Find(found, { L"serenum" /*, L"ftdibus" */ }); }
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "icsneo/platform/windows/internal/pcapdll.h"
|
||||
#include "icsneo/device/neodevice.h"
|
||||
#include "icsneo/communication/driver.h"
|
||||
#include "icsneo/device/founddevice.h"
|
||||
#include "icsneo/api/eventmanager.h"
|
||||
#include "icsneo/communication/ethernetpacketizer.h"
|
||||
#include <string>
|
||||
@@ -14,20 +15,15 @@ namespace icsneo {
|
||||
|
||||
class PCAP : public Driver {
|
||||
public:
|
||||
class PCAPFoundDevice {
|
||||
public:
|
||||
neodevice_t device;
|
||||
std::vector<std::vector<uint8_t>> discoveryPackets;
|
||||
};
|
||||
|
||||
static std::vector<PCAPFoundDevice> FindAll();
|
||||
static void Find(std::vector<FoundDevice>& foundDevices);
|
||||
static std::string GetEthDevSerialFromMacAddress(uint8_t product, uint16_t macSerial);
|
||||
static bool IsHandleValid(neodevice_handle_t handle);
|
||||
|
||||
PCAP(const device_eventhandler_t& err, neodevice_t& forDevice);
|
||||
bool open();
|
||||
bool isOpen();
|
||||
bool close();
|
||||
bool open() override;
|
||||
bool isOpen() override;
|
||||
bool close() override;
|
||||
bool isEthernet() const override { return true; }
|
||||
private:
|
||||
const PCAPDLL& pcap;
|
||||
char errbuf[PCAP_ERRBUF_SIZE] = { 0 };
|
||||
@@ -48,7 +44,7 @@ private:
|
||||
class NetworkInterface {
|
||||
public:
|
||||
uint8_t uuid;
|
||||
uint8_t macAddress[8];
|
||||
uint8_t macAddress[6];
|
||||
std::string nameFromWinPCAP;
|
||||
std::string nameFromWin32API;
|
||||
std::string descriptionFromWinPCAP;
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace icsneo {
|
||||
// Virtual COM Port Communication
|
||||
class VCP : public Driver {
|
||||
public:
|
||||
static std::vector<neodevice_t> FindByProduct(int product, std::vector<std::wstring> driverName);
|
||||
static void Find(std::vector<FoundDevice>& found, std::vector<std::wstring> driverName);
|
||||
static bool IsHandleValid(neodevice_handle_t handle);
|
||||
typedef void(*fn_boolCallback)(bool success);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user