diff --git a/CMakeLists.txt b/CMakeLists.txt index 8728103..30ec2f9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -346,6 +346,7 @@ add_library(icsneocpp api/icsneocpp/icsneocpp.cpp api/icsneocpp/event.cpp api/icsneocpp/eventmanager.cpp + api/icsneocpp/heartbeat.cpp api/icsneocpp/version.cpp ${SRC_FILES} ) diff --git a/api/icsneocpp/heartbeat.cpp b/api/icsneocpp/heartbeat.cpp new file mode 100644 index 0000000..56d5148 --- /dev/null +++ b/api/icsneocpp/heartbeat.cpp @@ -0,0 +1,53 @@ +#include "icsneo/api/heartbeat.h" +#include "icsneo/api/lifetime.h" +#include "icsneo/device/device.h" + +using namespace icsneo; + +Heartbeat::Heartbeat(Device& device) : + device(device), mode(device.isOnline() ? Mode::Passive : Mode::Active), thread(&Heartbeat::run, this) { +} + +Heartbeat::~Heartbeat() { + { + std::lock_guard lk(mutex); + stop = true; + } + cv.notify_one(); + thread.join(); +} + +void Heartbeat::run() { + EventManager::GetInstance().downgradeErrorsOnCurrentThread(); + + auto filter = std::make_shared(Message::Type::ResetStatus); + bool status = false; + auto cbHandle = device.com->addMessageCallback(std::make_shared(filter, [&](std::shared_ptr) { + { + std::lock_guard lk(mutex); + status = true; + } + cv.notify_one(); + })); + Lifetime cbLifetime([&] { + device.com->removeMessageCallback(cbHandle); + }); + while(true) { + std::unique_lock lk(mutex); + if(mode == Mode::Active) { + if(cv.wait_for(lk, std::chrono::milliseconds(100), [&] { return stop; })) { + break; + } + device.com->sendCommand(Command::RequestStatusUpdate); + } + if(!cv.wait_for(lk, std::chrono::seconds(2), [&] { return status || stop; })) { + // we disconnect instead of close because it indicates to the user that a cleanup is still required (our thread join) + device.report(APIEvent::Type::DeviceDisconnected, APIEvent::Severity::Error); + device.com->driver->setIsDisconnected(true); + break; + } + if(stop) + break; + status = false; + } +} diff --git a/device/device.cpp b/device/device.cpp index f300263..f9138c3 100644 --- a/device/device.cpp +++ b/device/device.cpp @@ -92,10 +92,6 @@ Device::~Device() { disableMessagePolling(); if(isOpen()) close(); - if(heartbeatThread.joinable()) { - stopHeartbeatThread = true; - heartbeatThread.join(); - } } uint16_t Device::getTimestampResolution() const { @@ -288,6 +284,8 @@ bool Device::open(OpenFlags flags, OpenStatusHandler handler) { return false; } + startHeartbeat(); + APIEvent::Type attemptErr = attemptToBeginCommunication(); if(attemptErr != APIEvent::Type::NoErrorFound) { // We could not communicate with the device, let's see if an extension can @@ -334,79 +332,6 @@ bool Device::open(OpenFlags flags, OpenStatusHandler handler) { EventManager::GetInstance().cancelErrorDowngradingOnCurrentThread(); } - MessageFilter filter; - filter.includeInternalInAny = true; - internalHandlerCallbackID = com->addMessageCallback(std::make_shared(filter, [this](std::shared_ptr message) { - handleInternalMessage(message); - })); - - // Clear the previous heartbeat thread, in case open() was called on this instance more than once - if(heartbeatThread.joinable()) - heartbeatThread.join(); - - stopHeartbeatThread = false; - - heartbeatThread = std::thread([this]() { - EventManager::GetInstance().downgradeErrorsOnCurrentThread(); - - MessageFilter filter; - filter.includeInternalInAny = true; - - std::condition_variable heartbeatCV; - std::mutex receivedMessageMutex; - bool receivedMessage = false; - auto messageReceivedCallbackID = com->addMessageCallback(std::make_shared(filter, [&](std::shared_ptr) { - { - std::scoped_lock lk(receivedMessageMutex); - receivedMessage = true; - } - heartbeatCV.notify_all(); - })); - - // Give the device time to get situated - auto i = 150; - while(!stopHeartbeatThread && i != 0) { - std::this_thread::sleep_for(std::chrono::milliseconds(50)); - i--; - } - - while(!stopHeartbeatThread) { - std::unique_lock recvLk(receivedMessageMutex); - // Wait for 110ms for a possible heartbeat - if(heartbeatCV.wait_for(recvLk, std::chrono::milliseconds(110), [&]() { return receivedMessage; })) { - receivedMessage = false; - } else if(!stopHeartbeatThread) { // Add this condition here in case the thread was stopped while waiting for the last message - - // Some communication, such as the bootloader and extractor interfaces, must - // redirect the input stream from the device as it will no longer be in the - // packet format we expect here. As a result, status updates will not reach - // us here and suppressDisconnects() must be used. We don't want to request - // a status and then redirect the stream, as we'll then be polluting an - // otherwise quiet stream. This lock makes sure suppressDisconnects() will - // block until we've either gotten our status update or disconnected from - // the device. - std::unique_lock lk(heartbeatMutex); - if(heartbeatSuppressed()) continue; - - // No heartbeat received, request a status - com->sendCommand(Command::RequestStatusUpdate); - - // Check if we got a message, and if not, if settings are being applied - if(heartbeatCV.wait_for(recvLk, std::chrono::milliseconds(3500), [&](){ return receivedMessage; })) { - receivedMessage = false; - } else { - if(!stopHeartbeatThread) { - close(); - report(APIEvent::Type::DeviceDisconnected, APIEvent::Severity::Error); - } - break; - } - } - } - - com->removeMessageCallback(messageReceivedCallbackID); - }); - if(supportsLiveData()) clearAllLiveData(); @@ -503,7 +428,7 @@ bool Device::close() { return false; } - stopHeartbeatThread = true; + stopHeartbeat(); if (isMessagePollingEnabled()) { disableMessagePolling(); @@ -534,31 +459,15 @@ bool Device::goOnline() { if(!enableNetworkCommunication(true, onlineTimeoutMs)) return false; - auto startTime = std::chrono::system_clock::now(); - ledState = LEDState::Online; updateLEDState(); - std::shared_ptr filter = std::make_shared(Network::NetID::Reset_Status); - filter->includeInternalInAny = true; - - // Wait until communication is enabled or 5 seconds, whichever comes first - while((std::chrono::system_clock::now() - startTime) < std::chrono::seconds(5)) { - if(latestResetStatus && latestResetStatus->comEnabled) - break; - - bool failOut = false; - com->waitForMessageSync([this, &failOut]() { - if(!com->sendCommand(Command::RequestStatusUpdate)) { - failOut = true; - return false; - } - return true; - }, filter, std::chrono::milliseconds(100)); - if(failOut) - return false; - } + // (re)start the keeponline + keeponline = std::make_unique([this] { + static std::vector timeoutBytes = std::vector((uint8_t*)&onlineTimeoutMs, (uint8_t*)&onlineTimeoutMs + sizeof(onlineTimeoutMs)); + return com->sendCommand(Command::KeepAlive, timeoutBytes); + }, std::chrono::milliseconds(onlineTimeoutMs / 4)); if(supportsNetworkMutex) { assignedClientId = com->getClientIDSync(); @@ -591,29 +500,30 @@ bool Device::goOnline() { } } - // (re)start the keeponline - keeponline = std::make_unique([this] { - static std::vector timeoutBytes = std::vector((uint8_t*)&onlineTimeoutMs, (uint8_t*)&onlineTimeoutMs + sizeof(onlineTimeoutMs)); - return com->sendCommand(Command::KeepAlive, timeoutBytes); - }, std::chrono::milliseconds(onlineTimeoutMs / 4)); - online = true; + // restart the heartbeat in online mode + restartHeartbeat(); + forEachExtension([](const std::shared_ptr& ext) { ext->onGoOnline(); return true; }); return true; } bool Device::goOffline() { + online = false; + keeponline.reset(); + // restart the heartbeat in offline mode + restartHeartbeat(); + if(networkMutexCallbackHandle) removeMessageCallback(*networkMutexCallbackHandle); forEachExtension([](const std::shared_ptr& ext) { ext->onGoOffline(); return true; }); if(isDisconnected()) { - online = false; return true; } @@ -629,8 +539,6 @@ bool Device::goOffline() { updateLEDState(); - online = false; - return true; } @@ -1992,11 +1900,9 @@ void Device::stopScriptStatusThreadIfNecessary(std::unique_lock lk) } Lifetime Device::suppressDisconnects() { - std::lock_guard lk(heartbeatMutex); - heartbeatSuppressedByUser++; + stopHeartbeat(); return Lifetime([this] { - std::lock_guard lk2(heartbeatMutex); - heartbeatSuppressedByUser--; + startHeartbeat(); }); } @@ -4176,3 +4082,17 @@ bool Device::unlockAllNetworks() return true; } + +void Device::startHeartbeat() { + if(!heartbeat) + heartbeat = std::make_unique(*this); +} + +void Device::stopHeartbeat() { + heartbeat.reset(); +} + +void Device::restartHeartbeat() { + stopHeartbeat(); + startHeartbeat(); +} diff --git a/device/idevicesettings.cpp b/device/idevicesettings.cpp index 54c5f51..cae6463 100644 --- a/device/idevicesettings.cpp +++ b/device/idevicesettings.cpp @@ -1,9 +1,16 @@ +#include "icsneo/device/device.h" #include "icsneo/device/idevicesettings.h" #include "icsneo/communication/message/filter/main51messagefilter.h" #include using namespace icsneo; +IDeviceSettings::IDeviceSettings(Device* device, size_t size) + : device(device), report(device->report), structSize(size) {} + +IDeviceSettings::IDeviceSettings(warn_t createInoperableSettings, Device* device) + : disabled(true), readonly(true), report(device->report), structSize(0) { (void)createInoperableSettings; } + std::optional IDeviceSettings::CalculateGSChecksum(const std::vector& settings) { const uint16_t* p = reinterpret_cast(settings.data()); size_t words = settings.size(); @@ -166,7 +173,7 @@ bool IDeviceSettings::refresh() { } std::vector rxSettings; - bool ret = com->getSettingsSync(rxSettings); + bool ret = device->com->getSettingsSync(rxSettings); if(!ret) { report(APIEvent::Type::SettingsReadError, APIEvent::Severity::Error); return false; @@ -231,10 +238,10 @@ bool IDeviceSettings::apply(bool temporary) { memcpy(bytestream.data() + 7, getMutableRawStructurePointer(), settings.size()); // Pause I/O with the device while the settings are applied - applyingSettings = true; + device->stopHeartbeat(); - std::shared_ptr msg = std::dynamic_pointer_cast(com->waitForMessageSync([this, &bytestream]() { - return com->sendCommand(Command::SetSettings, bytestream); + std::shared_ptr msg = std::dynamic_pointer_cast(device->com->waitForMessageSync([this, &bytestream]() { + return device->com->sendCommand(Command::SetSettings, bytestream); }, std::make_shared(Command::SetSettings), std::chrono::milliseconds(5000))); if(!msg || msg->data[0] != 1) { // We did not receive a response @@ -259,8 +266,8 @@ bool IDeviceSettings::apply(bool temporary) { bytestream[6] = (uint8_t)(*gsChecksum >> 8); memcpy(bytestream.data() + 7, getMutableRawStructurePointer(), settings.size()); - msg = std::dynamic_pointer_cast(com->waitForMessageSync([this, &bytestream]() { - return com->sendCommand(Command::SetSettings, bytestream); + msg = std::dynamic_pointer_cast(device->com->waitForMessageSync([this, &bytestream]() { + return device->com->sendCommand(Command::SetSettings, bytestream); }, std::make_shared(Command::SetSettings), std::chrono::milliseconds(5000))); if(!msg || msg->data[0] != 1) { // Attempt to get the settings from the device so we're up to date if possible @@ -272,12 +279,12 @@ bool IDeviceSettings::apply(bool temporary) { } if(!temporary) { - msg = std::dynamic_pointer_cast(com->waitForMessageSync([this]() { - return com->sendCommand(Command::SaveSettings); + msg = std::dynamic_pointer_cast(device->com->waitForMessageSync([this]() { + return device->com->sendCommand(Command::SaveSettings); }, std::make_shared(Command::SaveSettings), std::chrono::milliseconds(5000))); } - applyingSettings = false; + device->startHeartbeat(); refresh(); // Refresh our buffer with what the device has, whether we were successful or not @@ -299,10 +306,10 @@ bool IDeviceSettings::applyDefaults(bool temporary) { return false; } - applyingSettings = true; + device->stopHeartbeat(); - std::shared_ptr msg = std::dynamic_pointer_cast(com->waitForMessageSync([this]() { - return com->sendCommand(Command::SetDefaultSettings); + std::shared_ptr msg = std::dynamic_pointer_cast(device->com->waitForMessageSync([this]() { + return device->com->sendCommand(Command::SetDefaultSettings); }, std::make_shared(Command::SetDefaultSettings), std::chrono::milliseconds(5000))); if(!msg || msg->data[0] != 1) { // Attempt to get the settings from the device so we're up to date if possible @@ -336,8 +343,8 @@ bool IDeviceSettings::applyDefaults(bool temporary) { bytestream[6] = (uint8_t)(*gsChecksum >> 8); memcpy(bytestream.data() + 7, getMutableRawStructurePointer(), settings.size()); - msg = std::dynamic_pointer_cast(com->waitForMessageSync([this, &bytestream]() { - return com->sendCommand(Command::SetSettings, bytestream); + msg = std::dynamic_pointer_cast(device->com->waitForMessageSync([this, &bytestream]() { + return device->com->sendCommand(Command::SetSettings, bytestream); }, std::make_shared(Command::SetSettings), std::chrono::milliseconds(5000))); if(!msg || msg->data[0] != 1) { // Attempt to get the settings from the device so we're up to date if possible @@ -349,12 +356,12 @@ bool IDeviceSettings::applyDefaults(bool temporary) { } if(!temporary) { - msg = std::dynamic_pointer_cast(com->waitForMessageSync([this]() { - return com->sendCommand(Command::SaveSettings); + msg = std::dynamic_pointer_cast(device->com->waitForMessageSync([this]() { + return device->com->sendCommand(Command::SaveSettings); }, std::make_shared(Command::SaveSettings), std::chrono::milliseconds(5000))); } - applyingSettings = false; + device->startHeartbeat(); refresh(); // Refresh our buffer with what the device has, whether we were successful or not diff --git a/include/icsneo/api/heartbeat.h b/include/icsneo/api/heartbeat.h new file mode 100644 index 0000000..2bccabb --- /dev/null +++ b/include/icsneo/api/heartbeat.h @@ -0,0 +1,38 @@ +#ifndef __HEARTBEAT_H__ +#define __HEARTBEAT_H__ + +#ifdef __cplusplus + +#include +#include +#include + +namespace icsneo { + +class Device; + +class Heartbeat { +public: + Heartbeat(Device& device); + ~Heartbeat(); + +private: + enum class Mode { + Passive, // ResetStatus messages arrive without requesting + Active, // RequestStatusUpdate needs to be sent + }; + Device& device; + const Mode mode; + bool stop = false; + std::mutex mutex; + std::condition_variable cv; + std::thread thread; + + void run(); +}; + +} // icsneo + +#endif // __cplusplus + +#endif // __HEARTBEAT_H__ diff --git a/include/icsneo/communication/communication.h b/include/icsneo/communication/communication.h index 68c1318..0c56318 100644 --- a/include/icsneo/communication/communication.h +++ b/include/icsneo/communication/communication.h @@ -14,6 +14,7 @@ #include "icsneo/communication/message/extendedresponsemessage.h" #include "icsneo/device/deviceversion.h" #include "icsneo/api/eventmanager.h" +#include "icsneo/api/heartbeat.h" #include "icsneo/communication/packetizer.h" #include "icsneo/communication/encoder.h" #include "icsneo/communication/decoder.h" diff --git a/include/icsneo/communication/driver.h b/include/icsneo/communication/driver.h index 3b4e4cb..4488768 100644 --- a/include/icsneo/communication/driver.h +++ b/include/icsneo/communication/driver.h @@ -31,6 +31,7 @@ public: virtual driver_finder_t getFinder() = 0; inline bool isDisconnected() const { return disconnected; }; + inline void setIsDisconnected(bool isDisconnected) { disconnected = isDisconnected; } inline bool isClosing() const { return closing; } bool waitForRx(size_t limit, std::chrono::milliseconds timeout); @@ -62,7 +63,6 @@ protected: }; inline void setIsClosing(bool isClosing) { closing = isClosing; } - inline void setIsDisconnected(bool isDisconnected) { disconnected = isDisconnected; } // Overridable in case the driver doesn't want to use writeTask and writeQueue virtual bool writeQueueFull() { return writeQueue.size_approx() > writeQueueSize; } diff --git a/include/icsneo/device/device.h b/include/icsneo/device/device.h index df8ef4f..41e365e 100644 --- a/include/icsneo/device/device.h +++ b/include/icsneo/device/device.h @@ -743,6 +743,7 @@ public: */ std::optional SetRootDirectoryEntryFlags(uint8_t mask, uint8_t values, uint32_t collectionEntryByteAddress); + device_eventhandler_t report; std::shared_ptr com; std::shared_ptr settings; @@ -900,11 +901,14 @@ public: bool unlockAllNetworks(); std::shared_ptr getNetworkMutexStatus(Network::NetID network); + void startHeartbeat(); + void stopHeartbeat(); + void restartHeartbeat(); + protected: bool online = false; int messagePollingCallbackID = 0; int internalHandlerCallbackID = 0; - device_eventhandler_t report; std::mutex ioMutex; std::optional ethActivationStatus; @@ -937,7 +941,7 @@ protected: std::move(decoder) ); setupCommunication(*com); - settings = makeSettings(com); + settings = makeSettings(this); setupSettings(*settings); diskReadDriver = std::unique_ptr(new DiskRead()); diskWriteDriver = std::unique_ptr(new DiskWrite()); @@ -973,8 +977,8 @@ protected: } template - std::shared_ptr makeSettings(std::shared_ptr comm) { - return std::make_shared(comm); + std::shared_ptr makeSettings(Device* device) { + return std::make_shared(device); } virtual void setupSettings(IDeviceSettings&) {} @@ -1039,10 +1043,6 @@ private: APIEvent::Type attemptToBeginCommunication(); - // Use heartbeatSuppressed instead when reading - std::atomic heartbeatSuppressedByUser{0}; - bool heartbeatSuppressed() const { return heartbeatSuppressedByUser > 0 || (settings && settings->applyingSettings); } - void handleNeoVIMessage(std::shared_ptr message); bool firmwareUpdateSupported(); @@ -1053,10 +1053,6 @@ private: moodycamel::BlockingConcurrentQueue> pollingContainer; void enforcePollingMessageLimit(); - std::atomic stopHeartbeatThread{false}; - std::mutex heartbeatMutex; - std::thread heartbeatThread; - std::mutex diskMutex; // Wireless neoVI Stack @@ -1179,6 +1175,7 @@ private: // Keeponline (keepalive for online) std::unique_ptr keeponline; + std::unique_ptr heartbeat; std::optional assignedClientId; std::unordered_set lockedNetworks; diff --git a/include/icsneo/device/idevicesettings.h b/include/icsneo/device/idevicesettings.h index eca8c01..e03ed96 100644 --- a/include/icsneo/device/idevicesettings.h +++ b/include/icsneo/device/idevicesettings.h @@ -811,13 +811,17 @@ typedef struct #pragma pack(pop) #ifdef __cplusplus -#include "icsneo/communication/communication.h" +#include "icsneo/communication/network.h" +#include "icsneo/api/event.h" +#include "icsneo/api/eventmanager.h" #include #include #include namespace icsneo { +class Device; + enum class MiscIOAnalogVoltage : uint8_t { V0 = icsneoc2_misc_io_analog_voltage_v0, @@ -845,7 +849,7 @@ public: static int64_t GetBaudrateValueForEnum(CANBaudrate enumValue); static bool ValidateLINBaudrate(int64_t baudrate); - IDeviceSettings(std::shared_ptr com, size_t size) : com(com), report(com->report), structSize(size) {} + IDeviceSettings(Device* device, size_t size); virtual ~IDeviceSettings() {} bool ok() const { return !disabled && settingsLoaded; } @@ -1392,10 +1396,8 @@ public: bool disabled = false; bool readonly = false; - - std::atomic applyingSettings{false}; protected: - std::shared_ptr com; + Device* device; device_eventhandler_t report; size_t structSize; @@ -1407,8 +1409,7 @@ protected: // Parameter createInoperableSettings exists because it is serving as a warning that you probably don't want to do this typedef void* warn_t; - IDeviceSettings(warn_t createInoperableSettings, std::shared_ptr com) - : disabled(true), readonly(true), report(com->report), structSize(0) { (void)createInoperableSettings; } + IDeviceSettings(warn_t createInoperableSettings, Device* device); // Devices that embed a Fire3LinuxSettings block in their settings structure override these to // expose it; all other devices report not-available (nullptr / nullopt) and the Linux accessors diff --git a/include/icsneo/device/nullsettings.h b/include/icsneo/device/nullsettings.h index 8f0db77..a1d18db 100644 --- a/include/icsneo/device/nullsettings.h +++ b/include/icsneo/device/nullsettings.h @@ -12,7 +12,7 @@ namespace icsneo { class NullSettings : public IDeviceSettings { public: // Calls the protected base constructor with "createInoperableSettings" - NullSettings(std::shared_ptr com) : IDeviceSettings(nullptr, com) {} + NullSettings(Device* device) : IDeviceSettings(nullptr, device) {} }; } diff --git a/include/icsneo/device/tree/etherbadge/etherbadgesettings.h b/include/icsneo/device/tree/etherbadge/etherbadgesettings.h index 3b16501..9c8f104 100644 --- a/include/icsneo/device/tree/etherbadge/etherbadgesettings.h +++ b/include/icsneo/device/tree/etherbadge/etherbadgesettings.h @@ -69,7 +69,7 @@ static_assert(sizeof(etherbadge_settings_t) == 316, "EtherBadge settings size mi class EtherBADGESettings : public IDeviceSettings { public: - EtherBADGESettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(etherbadge_settings_t)) {} + EtherBADGESettings(Device* device) : IDeviceSettings(device, sizeof(etherbadge_settings_t)) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr) diff --git a/include/icsneo/device/tree/neoviconnect/neoviconnectsettings.h b/include/icsneo/device/tree/neoviconnect/neoviconnectsettings.h index a7edd9e..d00334e 100644 --- a/include/icsneo/device/tree/neoviconnect/neoviconnectsettings.h +++ b/include/icsneo/device/tree/neoviconnect/neoviconnectsettings.h @@ -88,7 +88,7 @@ static_assert(sizeof(neoviconnect_settings_t) == 628, "NeoVIConnect settings siz class NeoVIConnectSettings : public IDeviceSettings { public: - NeoVIConnectSettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(neoviconnect_settings_t)) {} + NeoVIConnectSettings(Device* device) : IDeviceSettings(device, sizeof(neoviconnect_settings_t)) {} const Fire3LinuxSettings* getLinuxSettings() const override { auto cfg = getStructurePointer(); return cfg ? &cfg->os_settings : nullptr; diff --git a/include/icsneo/device/tree/neovifire/neovifiresettings.h b/include/icsneo/device/tree/neovifire/neovifiresettings.h index 2f6fdb3..795b007 100644 --- a/include/icsneo/device/tree/neovifire/neovifiresettings.h +++ b/include/icsneo/device/tree/neovifire/neovifiresettings.h @@ -101,7 +101,7 @@ static_assert(sizeof(neovifire_settings_t) == 744, "NeoVIFire settings size mism class NeoVIFIRESettings : public IDeviceSettings { public: - NeoVIFIRESettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(neovifire_settings_t)) {} + NeoVIFIRESettings(Device* device) : IDeviceSettings(device, sizeof(neovifire_settings_t)) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr) diff --git a/include/icsneo/device/tree/neovifire2/neovifire2settings.h b/include/icsneo/device/tree/neovifire2/neovifire2settings.h index 691ad92..39d6544 100644 --- a/include/icsneo/device/tree/neovifire2/neovifire2settings.h +++ b/include/icsneo/device/tree/neovifire2/neovifire2settings.h @@ -125,7 +125,7 @@ static_assert(sizeof(neovifire2_settings_t) == 936, "NeoVIFire2 settings size mi class NeoVIFIRE2Settings : public IDeviceSettings { public: - NeoVIFIRE2Settings(std::shared_ptr com) : IDeviceSettings(com, sizeof(neovifire2_settings_t)) {} + NeoVIFIRE2Settings(Device* device) : IDeviceSettings(device, sizeof(neovifire2_settings_t)) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr) diff --git a/include/icsneo/device/tree/neovifire3/neovifire3settings.h b/include/icsneo/device/tree/neovifire3/neovifire3settings.h index f39de86..751eb0b 100644 --- a/include/icsneo/device/tree/neovifire3/neovifire3settings.h +++ b/include/icsneo/device/tree/neovifire3/neovifire3settings.h @@ -166,7 +166,7 @@ static_assert(sizeof(neovifire3_settings_t) == 1722, "NeoVIFire3 settings size m class NeoVIFIRE3Settings : public IDeviceSettings { public: - NeoVIFIRE3Settings(std::shared_ptr com) : IDeviceSettings(com, sizeof(neovifire3_settings_t)) {} + NeoVIFIRE3Settings(Device* device) : IDeviceSettings(device, sizeof(neovifire3_settings_t)) {} const Fire3LinuxSettings* getLinuxSettings() const override { auto cfg = getStructurePointer(); return cfg ? &cfg->os_settings : nullptr; diff --git a/include/icsneo/device/tree/neovifire3flexray/neovifire3flexraysettings.h b/include/icsneo/device/tree/neovifire3flexray/neovifire3flexraysettings.h index 4acaf2d..1a72054 100644 --- a/include/icsneo/device/tree/neovifire3flexray/neovifire3flexraysettings.h +++ b/include/icsneo/device/tree/neovifire3flexray/neovifire3flexraysettings.h @@ -149,7 +149,7 @@ static_assert(sizeof(neovifire3flexray_settings_t) == 1372, "NeoVIFire3Flexray s class NeoVIFIRE3FlexRaySettings : public IDeviceSettings { public: - NeoVIFIRE3FlexRaySettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(neovifire3flexray_settings_t)) {} + NeoVIFIRE3FlexRaySettings(Device* device) : IDeviceSettings(device, sizeof(neovifire3flexray_settings_t)) {} const Fire3LinuxSettings* getLinuxSettings() const override { auto cfg = getStructurePointer(); return cfg ? &cfg->os_settings : nullptr; diff --git a/include/icsneo/device/tree/neovifire3t1slin/neovifire3t1slinsettings.h b/include/icsneo/device/tree/neovifire3t1slin/neovifire3t1slinsettings.h index b30e7ee..eae4d65 100644 --- a/include/icsneo/device/tree/neovifire3t1slin/neovifire3t1slinsettings.h +++ b/include/icsneo/device/tree/neovifire3t1slin/neovifire3t1slinsettings.h @@ -158,7 +158,7 @@ static_assert(sizeof(neovifire3t1slin_settings_t) == 1594, "NeoVIFire3T1SLIN set class NeoVIFIRE3T1SLINSettings : public IDeviceSettings { public: - NeoVIFIRE3T1SLINSettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(neovifire3t1slin_settings_t)) {} + NeoVIFIRE3T1SLINSettings(Device* device) : IDeviceSettings(device, sizeof(neovifire3t1slin_settings_t)) {} const Fire3LinuxSettings* getLinuxSettings() const override { auto cfg = getStructurePointer(); return cfg ? &cfg->os_settings : nullptr; diff --git a/include/icsneo/device/tree/neovired2/neovired2settings.h b/include/icsneo/device/tree/neovired2/neovired2settings.h index ff64ea8..6019aeb 100644 --- a/include/icsneo/device/tree/neovired2/neovired2settings.h +++ b/include/icsneo/device/tree/neovired2/neovired2settings.h @@ -111,7 +111,7 @@ static_assert(sizeof(neovired2_settings_t) == 918, "NeoVIRED2 settings size mism class NeoVIRED2Settings : public IDeviceSettings { public: - NeoVIRED2Settings(std::shared_ptr com) : IDeviceSettings(com, sizeof(neovired2_settings_t)) {} + NeoVIRED2Settings(Device* device) : IDeviceSettings(device, sizeof(neovired2_settings_t)) {} const Fire3LinuxSettings* getLinuxSettings() const override { auto cfg = getStructurePointer(); return cfg ? &cfg->os_settings : nullptr; diff --git a/include/icsneo/device/tree/rada2b/rada2bsettings.h b/include/icsneo/device/tree/rada2b/rada2bsettings.h index 993f99d..806c6b2 100644 --- a/include/icsneo/device/tree/rada2b/rada2bsettings.h +++ b/include/icsneo/device/tree/rada2b/rada2bsettings.h @@ -100,7 +100,7 @@ public: Node }; - RADA2BSettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(rada2b_settings_t)) {} + RADA2BSettings(Device* device) : IDeviceSettings(device, sizeof(rada2b_settings_t)) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr) @@ -141,27 +141,27 @@ public: } } - TDMMode getTDMMode(RADA2BDevice device) const { + TDMMode getTDMMode(RADA2BDevice a2bDevice) const { auto cfg = getStructurePointer(); - auto &deviceSettings = device == RADA2BDevice::Monitor ? cfg->a2b_monitor : cfg->a2b_node; + auto &deviceSettings = a2bDevice == RADA2BDevice::Monitor ? cfg->a2b_monitor : cfg->a2b_node; return static_cast(deviceSettings.tdmMode); } - uint8_t getNumChannels(RADA2BDevice device) const { - return tdmModeToChannelNum(getTDMMode(device)); + uint8_t getNumChannels(RADA2BDevice a2bDevice) const { + return tdmModeToChannelNum(getTDMMode(a2bDevice)); } - ChannelSize getChannelSize(RADA2BDevice device) const { + ChannelSize getChannelSize(RADA2BDevice a2bDevice) const { auto cfg = getStructurePointer(); - auto &deviceSettings = device == RADA2BDevice::Monitor ? cfg->a2b_monitor : cfg->a2b_node; + auto &deviceSettings = a2bDevice == RADA2BDevice::Monitor ? cfg->a2b_monitor : cfg->a2b_node; return static_cast(deviceSettings.flags & a2bSettingsFlag16bit); } - uint8_t getChannelOffset(RADA2BDevice device, A2BMessage::Direction dir) const { + uint8_t getChannelOffset(RADA2BDevice a2bDevice, A2BMessage::Direction dir) const { auto cfg = getStructurePointer(); - auto &deviceSettings = device == RADA2BDevice::Monitor ? cfg->a2b_monitor : cfg->a2b_node; + auto &deviceSettings = a2bDevice == RADA2BDevice::Monitor ? cfg->a2b_monitor : cfg->a2b_node; if(dir == A2BMessage::Direction::Upstream) { return deviceSettings.upstreamChannelOffset; @@ -170,30 +170,30 @@ public: return deviceSettings.downstreamChannelOffset; } - NodeType getNodeType(RADA2BDevice device) const { + NodeType getNodeType(RADA2BDevice a2bDevice) const { auto cfg = getStructurePointer(); - auto &deviceSettings = device == RADA2BDevice::Monitor ? cfg->a2b_monitor : cfg->a2b_node; + auto &deviceSettings = a2bDevice == RADA2BDevice::Monitor ? cfg->a2b_monitor : cfg->a2b_node; return static_cast(deviceSettings.nodeType); } - void setNodeType(RADA2BDevice device, NodeType newType) { + void setNodeType(RADA2BDevice a2bDevice, NodeType newType) { auto cfg = getMutableStructurePointer(); - auto &deviceSettings = device == RADA2BDevice::Monitor ? cfg->a2b_monitor : cfg->a2b_node; + auto &deviceSettings = a2bDevice == RADA2BDevice::Monitor ? cfg->a2b_monitor : cfg->a2b_node; deviceSettings.nodeType = static_cast(newType); } - void setTDMMode(RADA2BDevice device, TDMMode newMode) { + void setTDMMode(RADA2BDevice a2bDevice, TDMMode newMode) { auto cfg = getMutableStructurePointer(); - auto &deviceSettings = device == RADA2BDevice::Monitor ? cfg->a2b_monitor : cfg->a2b_node; + auto &deviceSettings = a2bDevice == RADA2BDevice::Monitor ? cfg->a2b_monitor : cfg->a2b_node; deviceSettings.tdmMode = static_cast(newMode); } - void setChannelOffset(RADA2BDevice device, A2BMessage::Direction dir, uint8_t newOffset) { + void setChannelOffset(RADA2BDevice a2bDevice, A2BMessage::Direction dir, uint8_t newOffset) { auto cfg = getMutableStructurePointer(); - auto &deviceSettings = device == RADA2BDevice::Monitor ? cfg->a2b_monitor : cfg->a2b_node; + auto &deviceSettings = a2bDevice == RADA2BDevice::Monitor ? cfg->a2b_monitor : cfg->a2b_node; if(dir == A2BMessage::Direction::Upstream) { deviceSettings.upstreamChannelOffset = newOffset; @@ -203,9 +203,9 @@ public: } } - void setChannelSize(RADA2BDevice device, ChannelSize newChannelSize) { + void setChannelSize(RADA2BDevice a2bDevice, ChannelSize newChannelSize) { auto cfg = getMutableStructurePointer(); - auto &deviceSettings = device == RADA2BDevice::Monitor ? cfg->a2b_monitor : cfg->a2b_node; + auto &deviceSettings = a2bDevice == RADA2BDevice::Monitor ? cfg->a2b_monitor : cfg->a2b_node; if(newChannelSize == ChannelSize::chSize16) { deviceSettings.flags |= a2bSettingsFlag16bit; diff --git a/include/icsneo/device/tree/radcomet2/radcomet2settings.h b/include/icsneo/device/tree/radcomet2/radcomet2settings.h index edd4635..7f8d51c 100644 --- a/include/icsneo/device/tree/radcomet2/radcomet2settings.h +++ b/include/icsneo/device/tree/radcomet2/radcomet2settings.h @@ -89,7 +89,7 @@ static_assert(sizeof(radcomet2_settings_t) == 498, "RADComet2 settings size mism class RADComet2Settings : public IDeviceSettings { public: - RADComet2Settings(std::shared_ptr com) : IDeviceSettings(com, sizeof(radcomet2_settings_t)) {} + RADComet2Settings(Device* device) : IDeviceSettings(device, sizeof(radcomet2_settings_t)) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr) diff --git a/include/icsneo/device/tree/radcomet3/radcomet3settings.h b/include/icsneo/device/tree/radcomet3/radcomet3settings.h index 1497bb8..3081cdd 100644 --- a/include/icsneo/device/tree/radcomet3/radcomet3settings.h +++ b/include/icsneo/device/tree/radcomet3/radcomet3settings.h @@ -86,7 +86,7 @@ static_assert(sizeof(radcomet3_settings_t) == 674, "RADComet3 settings size mism class RADComet3Settings : public IDeviceSettings { public: - RADComet3Settings(std::shared_ptr com) : IDeviceSettings(com, sizeof(radcomet3_settings_t)) {} + RADComet3Settings(Device* device) : IDeviceSettings(device, sizeof(radcomet3_settings_t)) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr) diff --git a/include/icsneo/device/tree/radepsilon/radepsilonsettings.h b/include/icsneo/device/tree/radepsilon/radepsilonsettings.h index 216daeb..20d5206 100644 --- a/include/icsneo/device/tree/radepsilon/radepsilonsettings.h +++ b/include/icsneo/device/tree/radepsilon/radepsilonsettings.h @@ -86,7 +86,7 @@ static_assert(sizeof(radepsilon_settings_t) == 400, "RADEpsilon settings size mi class RADEpsilonSettings : public IDeviceSettings { public: - RADEpsilonSettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(radepsilon_settings_t)) {} + RADEpsilonSettings(Device* device) : IDeviceSettings(device, sizeof(radepsilon_settings_t)) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr) diff --git a/include/icsneo/device/tree/radgalaxy/radgalaxysettings.h b/include/icsneo/device/tree/radgalaxy/radgalaxysettings.h index af6038d..0c3ec21 100644 --- a/include/icsneo/device/tree/radgalaxy/radgalaxysettings.h +++ b/include/icsneo/device/tree/radgalaxy/radgalaxysettings.h @@ -109,7 +109,7 @@ static_assert(sizeof(radgalaxy_settings_t) == 776, "RADGalaxy settings size mism class RADGalaxySettings : public IDeviceSettings { public: - RADGalaxySettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(radgalaxy_settings_t)) {} + RADGalaxySettings(Device* device) : IDeviceSettings(device, sizeof(radgalaxy_settings_t)) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr) diff --git a/include/icsneo/device/tree/radgalaxy2/radgalaxy2settings.h b/include/icsneo/device/tree/radgalaxy2/radgalaxy2settings.h index 82577c6..c80bb71 100644 --- a/include/icsneo/device/tree/radgalaxy2/radgalaxy2settings.h +++ b/include/icsneo/device/tree/radgalaxy2/radgalaxy2settings.h @@ -125,7 +125,7 @@ static_assert(sizeof(radgalaxy2_settings_t) == 960, "RADGalaxy2 settings size mi class RADGalaxy2Settings : public IDeviceSettings { public: - RADGalaxy2Settings(std::shared_ptr com) : IDeviceSettings(com, sizeof(radgalaxy2_settings_t)) {} + RADGalaxy2Settings(Device* device) : IDeviceSettings(device, sizeof(radgalaxy2_settings_t)) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr) diff --git a/include/icsneo/device/tree/radgemini/radgeminisettings.h b/include/icsneo/device/tree/radgemini/radgeminisettings.h index 7d3c54a..fa449de 100644 --- a/include/icsneo/device/tree/radgemini/radgeminisettings.h +++ b/include/icsneo/device/tree/radgemini/radgeminisettings.h @@ -42,7 +42,7 @@ static_assert(sizeof(radgemini_settings_t) == 86, "RADGemini settings size misma class RADGeminiSettings : public IDeviceSettings { public: - RADGeminiSettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(radgemini_settings_t)) {} + RADGeminiSettings(Device* device) : IDeviceSettings(device, sizeof(radgemini_settings_t)) {} }; } diff --git a/include/icsneo/device/tree/radgigastar/radgigastarsettings.h b/include/icsneo/device/tree/radgigastar/radgigastarsettings.h index 5ee2ab0..255cb37 100644 --- a/include/icsneo/device/tree/radgigastar/radgigastarsettings.h +++ b/include/icsneo/device/tree/radgigastar/radgigastarsettings.h @@ -107,7 +107,7 @@ static_assert(sizeof(radgigastar_settings_t) == 1026, "RADGigastar settings size class RADGigastarSettings : public IDeviceSettings { public: - RADGigastarSettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(radgigastar_settings_t)) {} + RADGigastarSettings(Device* device) : IDeviceSettings(device, sizeof(radgigastar_settings_t)) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr) diff --git a/include/icsneo/device/tree/radgigastar2/radgigastar2settings.h b/include/icsneo/device/tree/radgigastar2/radgigastar2settings.h index 2b7fafd..03d8589 100644 --- a/include/icsneo/device/tree/radgigastar2/radgigastar2settings.h +++ b/include/icsneo/device/tree/radgigastar2/radgigastar2settings.h @@ -156,7 +156,7 @@ namespace icsneo class RADGigastar2Settings : public IDeviceSettings { public: - RADGigastar2Settings(std::shared_ptr com) : IDeviceSettings(com, sizeof(radgigastar2_settings_t)) {} + RADGigastar2Settings(Device* device) : IDeviceSettings(device, sizeof(radgigastar2_settings_t)) {} const CAN_SETTINGS *getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); diff --git a/include/icsneo/device/tree/radjupiter/radjupitersettings.h b/include/icsneo/device/tree/radjupiter/radjupitersettings.h index 4f26bf5..ff006f0 100644 --- a/include/icsneo/device/tree/radjupiter/radjupitersettings.h +++ b/include/icsneo/device/tree/radjupiter/radjupitersettings.h @@ -90,7 +90,7 @@ static_assert(sizeof(radjupiter_settings_t) == 348, "RAD-Jupiter Settings are no class RADJupiterSettings : public IDeviceSettings { public: - RADJupiterSettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(radjupiter_settings_t)) {} + RADJupiterSettings(Device* device) : IDeviceSettings(device, sizeof(radjupiter_settings_t)) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); diff --git a/include/icsneo/device/tree/radmars/radmarssettings.h b/include/icsneo/device/tree/radmars/radmarssettings.h index 6bde84a..5d40c6d 100644 --- a/include/icsneo/device/tree/radmars/radmarssettings.h +++ b/include/icsneo/device/tree/radmars/radmarssettings.h @@ -101,7 +101,7 @@ static_assert(sizeof(radmars_settings_t) == 666, "RAD-Mars settings size mismatc class RADMarsSettings : public IDeviceSettings { public: - RADMarsSettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(radmars_settings_t)) {} + RADMarsSettings(Device* device) : IDeviceSettings(device, sizeof(radmars_settings_t)) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr) diff --git a/include/icsneo/device/tree/radmoon2/radmoon2settings.h b/include/icsneo/device/tree/radmoon2/radmoon2settings.h index 6e60b3b..91cc5da 100644 --- a/include/icsneo/device/tree/radmoon2/radmoon2settings.h +++ b/include/icsneo/device/tree/radmoon2/radmoon2settings.h @@ -42,7 +42,7 @@ static_assert(sizeof(radmoon2_settings_t) == 170, "RADMoon2 settings size mismat class RADMoon2Settings : public IDeviceSettings { public: - RADMoon2Settings(std::shared_ptr com) : IDeviceSettings(com, sizeof(radmoon2_settings_t)) {} + RADMoon2Settings(Device* device) : IDeviceSettings(device, sizeof(radmoon2_settings_t)) {} const RAD_GPTP_SETTINGS* getGPTPSettings() const override { auto cfg = getStructurePointer(); diff --git a/include/icsneo/device/tree/radmoon3/radmoon3settings.h b/include/icsneo/device/tree/radmoon3/radmoon3settings.h index ae6b250..3cac0d9 100644 --- a/include/icsneo/device/tree/radmoon3/radmoon3settings.h +++ b/include/icsneo/device/tree/radmoon3/radmoon3settings.h @@ -39,7 +39,7 @@ static_assert(sizeof(radmoon3_settings_t) == 68, "RADMoon3 settings size mismatc class RADMoon3Settings : public IDeviceSettings { public: - RADMoon3Settings(std::shared_ptr com) : IDeviceSettings(com, sizeof(radmoon3_settings_t)) {} + RADMoon3Settings(Device* device) : IDeviceSettings(device, sizeof(radmoon3_settings_t)) {} }; } diff --git a/include/icsneo/device/tree/radmoonduo/radmoonduosettings.h b/include/icsneo/device/tree/radmoonduo/radmoonduosettings.h index a462c18..facc9a2 100644 --- a/include/icsneo/device/tree/radmoonduo/radmoonduosettings.h +++ b/include/icsneo/device/tree/radmoonduo/radmoonduosettings.h @@ -55,7 +55,7 @@ static_assert(sizeof(radmoonduo_settings_t) == 38, "RAD-Moon Duo settings size e class RADMoonDuoSettings : public IDeviceSettings { public: - RADMoonDuoSettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(radmoonduo_settings_t)) {} + RADMoonDuoSettings(Device* device) : IDeviceSettings(device, sizeof(radmoonduo_settings_t)) {} }; } diff --git a/include/icsneo/device/tree/radmoont1s/radmoont1ssettings.h b/include/icsneo/device/tree/radmoont1s/radmoont1ssettings.h index 71aff43..481311f 100644 --- a/include/icsneo/device/tree/radmoont1s/radmoont1ssettings.h +++ b/include/icsneo/device/tree/radmoont1s/radmoont1ssettings.h @@ -46,7 +46,7 @@ static_assert(sizeof(radmoont1s_settings_t) == 160, "RADMoonT1S settings size mi class RADMoonT1SSettings : public IDeviceSettings { public: - RADMoonT1SSettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(radmoont1s_settings_t)) {} + RADMoonT1SSettings(Device* device) : IDeviceSettings(device, sizeof(radmoont1s_settings_t)) {} std::optional isT1SPLCAEnabledFor(Network net) const override { const ETHERNET10T1S_SETTINGS* t1s = getT1SSettingsFor(net); diff --git a/include/icsneo/device/tree/radpluto/radplutosettings.h b/include/icsneo/device/tree/radpluto/radplutosettings.h index 15d0d5d..3a55953 100644 --- a/include/icsneo/device/tree/radpluto/radplutosettings.h +++ b/include/icsneo/device/tree/radpluto/radplutosettings.h @@ -74,7 +74,7 @@ static_assert(sizeof(radpluto_settings_t) == 322, "RAD-Pluto Settings are not pa class RADPlutoSettings : public IDeviceSettings { public: - RADPlutoSettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(radpluto_settings_t)) { + RADPlutoSettings(Device* device) : IDeviceSettings(device, sizeof(radpluto_settings_t)) { } const CAN_SETTINGS* getCANSettingsFor(Network net) const override { diff --git a/include/icsneo/device/tree/radstar2/radstar2settings.h b/include/icsneo/device/tree/radstar2/radstar2settings.h index 1ecacd6..81ae024 100644 --- a/include/icsneo/device/tree/radstar2/radstar2settings.h +++ b/include/icsneo/device/tree/radstar2/radstar2settings.h @@ -75,7 +75,7 @@ static_assert(sizeof(radstar2_settings_t) == 422, "RADStar2 settings size mismat class RADStar2Settings : public IDeviceSettings { public: - RADStar2Settings(std::shared_ptr com) : IDeviceSettings(com, sizeof(radstar2_settings_t)) { + RADStar2Settings(Device* device) : IDeviceSettings(device, sizeof(radstar2_settings_t)) { } const CAN_SETTINGS* getCANSettingsFor(Network net) const override { diff --git a/include/icsneo/device/tree/radsupermoon/radsupermoonsettings.h b/include/icsneo/device/tree/radsupermoon/radsupermoonsettings.h index cd54b0b..8006b44 100644 --- a/include/icsneo/device/tree/radsupermoon/radsupermoonsettings.h +++ b/include/icsneo/device/tree/radsupermoon/radsupermoonsettings.h @@ -38,7 +38,7 @@ typedef struct { class RADSupermoonSettings : public IDeviceSettings { public: - RADSupermoonSettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(radsupermoon_settings_t)) {} + RADSupermoonSettings(Device* device) : IDeviceSettings(device, sizeof(radsupermoon_settings_t)) {} }; } diff --git a/include/icsneo/device/tree/radwbms/radwbmssettings.h b/include/icsneo/device/tree/radwbms/radwbmssettings.h index 3bb99da..372a443 100644 --- a/include/icsneo/device/tree/radwbms/radwbmssettings.h +++ b/include/icsneo/device/tree/radwbms/radwbmssettings.h @@ -70,7 +70,7 @@ static_assert(sizeof(radwbms_settings_t) == 156, "RAD-wBMS settings size mismatc class RADwBMSSettings : public IDeviceSettings { public: - RADwBMSSettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(radwbms_settings_t)) {} + RADwBMSSettings(Device* device) : IDeviceSettings(device, sizeof(radwbms_settings_t)) {} }; } diff --git a/include/icsneo/device/tree/valuecan3/valuecan3settings.h b/include/icsneo/device/tree/valuecan3/valuecan3settings.h index 396b170..7a11712 100644 --- a/include/icsneo/device/tree/valuecan3/valuecan3settings.h +++ b/include/icsneo/device/tree/valuecan3/valuecan3settings.h @@ -37,7 +37,7 @@ static_assert(sizeof(valuecan3_settings_t) == 40, "ValueCAN3 settings size misma class ValueCAN3Settings : public IDeviceSettings { public: - ValueCAN3Settings(std::shared_ptr com) : IDeviceSettings(com, sizeof(valuecan3_settings_t)) {} + ValueCAN3Settings(Device* device) : IDeviceSettings(device, sizeof(valuecan3_settings_t)) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr) diff --git a/include/icsneo/device/tree/valuecan4/settings/valuecan4-1-2settings.h b/include/icsneo/device/tree/valuecan4/settings/valuecan4-1-2settings.h index 949bedf..9371662 100644 --- a/include/icsneo/device/tree/valuecan4/settings/valuecan4-1-2settings.h +++ b/include/icsneo/device/tree/valuecan4/settings/valuecan4-1-2settings.h @@ -10,7 +10,7 @@ namespace icsneo { class ValueCAN4_1_2Settings : public IDeviceSettings { public: - ValueCAN4_1_2Settings(std::shared_ptr com) : IDeviceSettings(com, sizeof(valuecan4_1_2_settings_t)) {} + ValueCAN4_1_2Settings(Device* device) : IDeviceSettings(device, sizeof(valuecan4_1_2_settings_t)) {} // We do not override getCANSettingsFor or getCANFDSettingsFor here because they will be device specific }; diff --git a/include/icsneo/device/tree/valuecan4/settings/valuecan4-1settings.h b/include/icsneo/device/tree/valuecan4/settings/valuecan4-1settings.h index 069daa3..7333ee7 100644 --- a/include/icsneo/device/tree/valuecan4/settings/valuecan4-1settings.h +++ b/include/icsneo/device/tree/valuecan4/settings/valuecan4-1settings.h @@ -9,7 +9,7 @@ namespace icsneo { class ValueCAN4_1Settings : public ValueCAN4_1_2Settings { public: - ValueCAN4_1Settings(std::shared_ptr com) : ValueCAN4_1_2Settings(com) {} + ValueCAN4_1Settings(Device* device) : ValueCAN4_1_2Settings(device) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr) diff --git a/include/icsneo/device/tree/valuecan4/settings/valuecan4-2elsettings.h b/include/icsneo/device/tree/valuecan4/settings/valuecan4-2elsettings.h index a33d567..ff4f595 100644 --- a/include/icsneo/device/tree/valuecan4/settings/valuecan4-2elsettings.h +++ b/include/icsneo/device/tree/valuecan4/settings/valuecan4-2elsettings.h @@ -10,7 +10,7 @@ namespace icsneo { class ValueCAN4_2ELSettings : public ValueCAN4_4_2ELSettings { public: - ValueCAN4_2ELSettings(std::shared_ptr com) : ValueCAN4_4_2ELSettings(com) {} + ValueCAN4_2ELSettings(Device* device) : ValueCAN4_4_2ELSettings(device) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr) diff --git a/include/icsneo/device/tree/valuecan4/settings/valuecan4-2settings.h b/include/icsneo/device/tree/valuecan4/settings/valuecan4-2settings.h index abe83cb..9c6f5aa 100644 --- a/include/icsneo/device/tree/valuecan4/settings/valuecan4-2settings.h +++ b/include/icsneo/device/tree/valuecan4/settings/valuecan4-2settings.h @@ -9,7 +9,7 @@ namespace icsneo { class ValueCAN4_2Settings : public ValueCAN4_1_2Settings { public: - ValueCAN4_2Settings(std::shared_ptr com) : ValueCAN4_1_2Settings(com) {} + ValueCAN4_2Settings(Device* device) : ValueCAN4_1_2Settings(device) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr) diff --git a/include/icsneo/device/tree/valuecan4/settings/valuecan4-4-2elsettings.h b/include/icsneo/device/tree/valuecan4/settings/valuecan4-4-2elsettings.h index 124b556..e899ce5 100644 --- a/include/icsneo/device/tree/valuecan4/settings/valuecan4-4-2elsettings.h +++ b/include/icsneo/device/tree/valuecan4/settings/valuecan4-4-2elsettings.h @@ -10,7 +10,7 @@ namespace icsneo { class ValueCAN4_4_2ELSettings : public IDeviceSettings { public: - ValueCAN4_4_2ELSettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(valuecan4_4_2el_settings_t)) {} + ValueCAN4_4_2ELSettings(Device* device) : IDeviceSettings(device, sizeof(valuecan4_4_2el_settings_t)) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr) diff --git a/include/icsneo/device/tree/valuecan4/settings/valuecan4-4settings.h b/include/icsneo/device/tree/valuecan4/settings/valuecan4-4settings.h index 3bb20b6..c5da401 100644 --- a/include/icsneo/device/tree/valuecan4/settings/valuecan4-4settings.h +++ b/include/icsneo/device/tree/valuecan4/settings/valuecan4-4settings.h @@ -10,7 +10,7 @@ namespace icsneo { class ValueCAN4_4Settings : public ValueCAN4_4_2ELSettings { public: - ValueCAN4_4Settings(std::shared_ptr com) : ValueCAN4_4_2ELSettings(com) {} + ValueCAN4_4Settings(Device* device) : ValueCAN4_4_2ELSettings(device) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr) diff --git a/include/icsneo/device/tree/valuecan4/settings/valuecan4industrialsettings.h b/include/icsneo/device/tree/valuecan4/settings/valuecan4industrialsettings.h index 18d9d10..da044a2 100644 --- a/include/icsneo/device/tree/valuecan4/settings/valuecan4industrialsettings.h +++ b/include/icsneo/device/tree/valuecan4/settings/valuecan4industrialsettings.h @@ -10,7 +10,7 @@ namespace icsneo { class ValueCAN4IndustrialSettings : public IDeviceSettings { public: - ValueCAN4IndustrialSettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(valuecan4_industrial_settings_t)) {} + ValueCAN4IndustrialSettings(Device* device) : IDeviceSettings(device, sizeof(valuecan4_industrial_settings_t)) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr) diff --git a/include/icsneo/device/tree/vividcan/vividcansettings.h b/include/icsneo/device/tree/vividcan/vividcansettings.h index 224b4f5..994f18a 100644 --- a/include/icsneo/device/tree/vividcan/vividcansettings.h +++ b/include/icsneo/device/tree/vividcan/vividcansettings.h @@ -48,7 +48,7 @@ static_assert(sizeof(vividcan_settings_t) == 64, "VividCAN settings size mismatc class VividCANSettings : public IDeviceSettings { public: - VividCANSettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(vividcan_settings_t)) {} + VividCANSettings(Device* device) : IDeviceSettings(device, sizeof(vividcan_settings_t)) {} const CAN_SETTINGS* getCANSettingsFor(Network net) const override { auto cfg = getStructurePointer(); if(cfg == nullptr)