Compare commits
3 Commits
44d0e3de64
...
2d0b0c63ed
| Author | SHA1 | Date |
|---|---|---|
|
|
2d0b0c63ed | |
|
|
30606be7a8 | |
|
|
4dd97f734a |
|
|
@ -120,6 +120,10 @@ void init_idevicesettings(pybind11::module_& m) {
|
||||||
.def("set_misc_io_analog_output_enabled", &IDeviceSettings::setMiscIOAnalogOutputEnabled, pybind11::call_guard<pybind11::gil_scoped_release>())
|
.def("set_misc_io_analog_output_enabled", &IDeviceSettings::setMiscIOAnalogOutputEnabled, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
.def("set_misc_io_analog_output", &IDeviceSettings::setMiscIOAnalogOutput, pybind11::call_guard<pybind11::gil_scoped_release>())
|
.def("set_misc_io_analog_output", &IDeviceSettings::setMiscIOAnalogOutput, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
|
|
||||||
|
// Performance blast
|
||||||
|
.def("is_perf_test_enabled", &IDeviceSettings::isPerfTestEnabled, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
|
.def("set_perf_test_enable", &IDeviceSettings::setPerfTestEnable, pybind11::call_guard<pybind11::gil_scoped_release>())
|
||||||
|
|
||||||
// Status properties
|
// Status properties
|
||||||
.def_readonly("disabled", &IDeviceSettings::disabled)
|
.def_readonly("disabled", &IDeviceSettings::disabled)
|
||||||
.def_readonly("readonly", &IDeviceSettings::readonly);
|
.def_readonly("readonly", &IDeviceSettings::readonly);
|
||||||
|
|
|
||||||
|
|
@ -1265,6 +1265,16 @@ public:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual std::optional<bool> isPerfTestEnabled() const {
|
||||||
|
report(APIEvent::Type::SettingNotAvaiableDevice, APIEvent::Severity::EventWarning);
|
||||||
|
return std::nullopt;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual bool setPerfTestEnable(bool enable) {
|
||||||
|
(void)enable;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
virtual bool setMiscIOAnalogOutputEnabled(uint8_t pin, bool enabled);
|
virtual bool setMiscIOAnalogOutputEnabled(uint8_t pin, bool enabled);
|
||||||
virtual bool setMiscIOAnalogOutput(uint8_t pin, MiscIOAnalogVoltage voltage);
|
virtual bool setMiscIOAnalogOutput(uint8_t pin, MiscIOAnalogVoltage voltage);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<etherbadge_settings_t>();
|
auto cfg = getStructurePointer<etherbadge_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -92,6 +93,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const LIN_SETTINGS* getLINSettingsFor(Network net) const override {
|
const LIN_SETTINGS* getLINSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<etherbadge_settings_t>();
|
auto cfg = getStructurePointer<etherbadge_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -103,6 +105,23 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<etherbadge_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<etherbadge_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<neoviconnect_settings_t>();
|
auto cfg = getStructurePointer<neoviconnect_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -139,6 +140,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const LIN_SETTINGS* getLINSettingsFor(Network net) const override {
|
const LIN_SETTINGS* getLINSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<neoviconnect_settings_t>();
|
auto cfg = getStructurePointer<neoviconnect_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -152,6 +154,23 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<neoviconnect_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<neoviconnect_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -121,6 +121,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CAN_SETTINGS* getLSFTCANSettingsFor(Network net) const override { return getCANSettingsFor(net); }
|
const CAN_SETTINGS* getLSFTCANSettingsFor(Network net) const override { return getCANSettingsFor(net); }
|
||||||
const SWCAN_SETTINGS* getSWCANSettingsFor(Network net) const override {
|
const SWCAN_SETTINGS* getSWCANSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<neovifire_settings_t>();
|
auto cfg = getStructurePointer<neovifire_settings_t>();
|
||||||
|
|
@ -133,6 +134,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const LIN_SETTINGS* getLINSettingsFor(Network net) const override {
|
const LIN_SETTINGS* getLINSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<neovifire_settings_t>();
|
auto cfg = getStructurePointer<neovifire_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -150,6 +152,23 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<neovifire_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<neovifire_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -155,6 +155,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<neovifire2_settings_t>();
|
auto cfg = getStructurePointer<neovifire2_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -180,6 +181,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CAN_SETTINGS* getLSFTCANSettingsFor(Network net) const override { return getCANSettingsFor(net); }
|
const CAN_SETTINGS* getLSFTCANSettingsFor(Network net) const override { return getCANSettingsFor(net); }
|
||||||
const SWCAN_SETTINGS* getSWCANSettingsFor(Network net) const override {
|
const SWCAN_SETTINGS* getSWCANSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<neovifire2_settings_t>();
|
auto cfg = getStructurePointer<neovifire2_settings_t>();
|
||||||
|
|
@ -234,6 +236,23 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<neovifire2_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<neovifire2_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ICSNEO_UNALIGNED(const uint64_t*) getTerminationEnables() const override {
|
ICSNEO_UNALIGNED(const uint64_t*) getTerminationEnables() const override {
|
||||||
auto cfg = getStructurePointer<neovifire2_settings_t>();
|
auto cfg = getStructurePointer<neovifire2_settings_t>();
|
||||||
|
|
|
||||||
|
|
@ -208,6 +208,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<neovifire3_settings_t>();
|
auto cfg = getStructurePointer<neovifire3_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -397,6 +398,23 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<neovifire3_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<neovifire3_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ICSNEO_UNALIGNED(const uint64_t*) getTerminationEnables() const override {
|
ICSNEO_UNALIGNED(const uint64_t*) getTerminationEnables() const override {
|
||||||
auto cfg = getStructurePointer<neovifire3_settings_t>();
|
auto cfg = getStructurePointer<neovifire3_settings_t>();
|
||||||
|
|
|
||||||
|
|
@ -175,6 +175,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<neovifire3flexray_settings_t>();
|
auto cfg = getStructurePointer<neovifire3flexray_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -236,6 +237,23 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<neovifire3flexray_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<neovifire3flexray_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ICSNEO_UNALIGNED(const uint64_t*) getTerminationEnables() const override {
|
ICSNEO_UNALIGNED(const uint64_t*) getTerminationEnables() const override {
|
||||||
auto cfg = getStructurePointer<neovifire3flexray_settings_t>();
|
auto cfg = getStructurePointer<neovifire3flexray_settings_t>();
|
||||||
|
|
|
||||||
|
|
@ -184,6 +184,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<neovifire3t1slin_settings_t>();
|
auto cfg = getStructurePointer<neovifire3t1slin_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -466,6 +467,23 @@ public:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<neovifire3t1slin_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<neovifire3t1slin_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const ETHERNET10T1S_SETTINGS* getT1SSettingsFor(Network net) const {
|
const ETHERNET10T1S_SETTINGS* getT1SSettingsFor(Network net) const {
|
||||||
auto cfg = getStructurePointer<neovifire3t1slin_settings_t>();
|
auto cfg = getStructurePointer<neovifire3t1slin_settings_t>();
|
||||||
|
|
|
||||||
|
|
@ -137,6 +137,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<neovired2_settings_t>();
|
auto cfg = getStructurePointer<neovired2_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -295,6 +296,23 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<neovired2_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<neovired2_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ICSNEO_UNALIGNED(const uint64_t*) getTerminationEnables() const override {
|
ICSNEO_UNALIGNED(const uint64_t*) getTerminationEnables() const override {
|
||||||
auto cfg = getStructurePointer<neovired2_settings_t>();
|
auto cfg = getStructurePointer<neovired2_settings_t>();
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<rada2b_settings_t>();
|
auto cfg = getStructurePointer<rada2b_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -241,6 +242,23 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
static constexpr uint8_t a2bSettingsFlag16bit = 0x01;
|
static constexpr uint8_t a2bSettingsFlag16bit = 0x01;
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<rada2b_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<rada2b_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -103,6 +103,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<radcomet2_settings_t>();
|
auto cfg = getStructurePointer<radcomet2_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -244,6 +245,23 @@ public:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<radcomet2_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<radcomet2_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const ETHERNET10T1S_SETTINGS* getT1SSettingsFor(Network net) const {
|
const ETHERNET10T1S_SETTINGS* getT1SSettingsFor(Network net) const {
|
||||||
auto cfg = getStructurePointer<radcomet2_settings_t>();
|
auto cfg = getStructurePointer<radcomet2_settings_t>();
|
||||||
|
|
|
||||||
|
|
@ -100,6 +100,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<radcomet3_settings_t>();
|
auto cfg = getStructurePointer<radcomet3_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -638,6 +639,23 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<radcomet3_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<radcomet3_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const ETHERNET10T1S_SETTINGS* getT1SSettingsFor(Network net) const {
|
const ETHERNET10T1S_SETTINGS* getT1SSettingsFor(Network net) const {
|
||||||
auto cfg = getStructurePointer<radcomet3_settings_t>();
|
auto cfg = getStructurePointer<radcomet3_settings_t>();
|
||||||
|
|
|
||||||
|
|
@ -100,6 +100,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<radepsilon_settings_t>();
|
auto cfg = getStructurePointer<radepsilon_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -269,6 +270,23 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<radepsilon_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<radepsilon_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
enum class EpsilonPhyMode : uint8_t {
|
enum class EpsilonPhyMode : uint8_t {
|
||||||
Auto = 0,
|
Auto = 0,
|
||||||
|
|
|
||||||
|
|
@ -135,6 +135,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<radgalaxy_settings_t>();
|
auto cfg = getStructurePointer<radgalaxy_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -160,6 +161,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const SWCAN_SETTINGS* getSWCANSettingsFor(Network net) const override {
|
const SWCAN_SETTINGS* getSWCANSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<radgalaxy_settings_t>();
|
auto cfg = getStructurePointer<radgalaxy_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -271,6 +273,23 @@ public:
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<radgalaxy_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<radgalaxy_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -151,6 +151,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<radgalaxy2_settings_t>();
|
auto cfg = getStructurePointer<radgalaxy2_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -259,6 +260,23 @@ public:
|
||||||
|
|
||||||
return GetNetworkEnabled(bitfields, 2, networkID);
|
return GetNetworkEnabled(bitfields, 2, networkID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<radgalaxy2_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<radgalaxy2_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -129,6 +129,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<radgigastar_settings_t>();
|
auto cfg = getStructurePointer<radgigastar_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -178,6 +179,23 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<radgigastar_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<radgigastar_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ICSNEO_UNALIGNED(const uint64_t*) getTerminationEnables() const override {
|
ICSNEO_UNALIGNED(const uint64_t*) getTerminationEnables() const override {
|
||||||
auto cfg = getStructurePointer<radgigastar_settings_t>();
|
auto cfg = getStructurePointer<radgigastar_settings_t>();
|
||||||
|
|
|
||||||
|
|
@ -176,6 +176,7 @@ namespace icsneo
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
|
const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
|
||||||
{
|
{
|
||||||
auto cfg = getStructurePointer<radgigastar2_settings_t>();
|
auto cfg = getStructurePointer<radgigastar2_settings_t>();
|
||||||
|
|
@ -537,6 +538,23 @@ namespace icsneo
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<radgigastar2_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<radgigastar2_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const ETHERNET10T1S_SETTINGS* getT1SSettingsFor(Network net) const {
|
const ETHERNET10T1S_SETTINGS* getT1SSettingsFor(Network net) const {
|
||||||
auto cfg = getStructurePointer<radgigastar2_settings_t>();
|
auto cfg = getStructurePointer<radgigastar2_settings_t>();
|
||||||
|
|
|
||||||
|
|
@ -105,6 +105,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<radjupiter_settings_t>();
|
auto cfg = getStructurePointer<radjupiter_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -118,6 +119,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const LIN_SETTINGS* getLINSettingsFor(Network net) const override {
|
const LIN_SETTINGS* getLINSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<radjupiter_settings_t>();
|
auto cfg = getStructurePointer<radjupiter_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -129,6 +131,23 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<radjupiter_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<radjupiter_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -154,6 +154,23 @@ public:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<radmoont1s_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<radmoont1s_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const ETHERNET10T1S_SETTINGS* getT1SSettingsFor(Network net) const {
|
const ETHERNET10T1S_SETTINGS* getT1SSettingsFor(Network net) const {
|
||||||
auto cfg = getStructurePointer<radmoont1s_settings_t>();
|
auto cfg = getStructurePointer<radmoont1s_settings_t>();
|
||||||
|
|
|
||||||
|
|
@ -90,6 +90,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<radpluto_settings_t>();
|
auto cfg = getStructurePointer<radpluto_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -115,6 +116,23 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<radpluto_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<radpluto_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,21 @@ public:
|
||||||
ProductID getProductID() const override {
|
ProductID getProductID() const override {
|
||||||
return ProductID::RADStar2;
|
return ProductID::RADStar2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const std::vector<ChipInfo>& getChipInfo() const override {
|
||||||
|
static std::vector<ChipInfo> chips = {
|
||||||
|
{ChipID::RADStar2_ZYNQ, true, "ZCHIP", "RADStar2_SW_bin", 0, FirmwareType::Zip}
|
||||||
|
};
|
||||||
|
return chips;
|
||||||
|
}
|
||||||
|
|
||||||
|
BootloaderPipeline getBootloader() override {
|
||||||
|
return BootloaderPipeline()
|
||||||
|
.add<EnterBootloaderPhase>()
|
||||||
|
.add<FlashPhase>(ChipID::RADStar2_ZYNQ, BootloaderCommunication::RAD, false)
|
||||||
|
.add<EnterApplicationPhase>(ChipID::RADStar2_ZYNQ)
|
||||||
|
.add<WaitPhase>(std::chrono::milliseconds(3000));
|
||||||
|
}
|
||||||
protected:
|
protected:
|
||||||
RADStar2(neodevice_t neodevice, const driver_factory_t& makeDriver) : Device(neodevice) {
|
RADStar2(neodevice_t neodevice, const driver_factory_t& makeDriver) : Device(neodevice) {
|
||||||
initialize<RADStar2Settings>(makeDriver);
|
initialize<RADStar2Settings>(makeDriver);
|
||||||
|
|
|
||||||
|
|
@ -91,6 +91,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<radstar2_settings_t>();
|
auto cfg = getStructurePointer<radstar2_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -116,6 +117,23 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<radstar2_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<radstar2_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,23 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<valuecan3_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<valuecan3_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -62,6 +62,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const CAN_SETTINGS* getLSFTCANSettingsFor(Network net) const override {
|
const CAN_SETTINGS* getLSFTCANSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<vividcan_settings_t>();
|
auto cfg = getStructurePointer<vividcan_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -73,6 +74,7 @@ public:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const SWCAN_SETTINGS* getSWCANSettingsFor(Network net) const override {
|
const SWCAN_SETTINGS* getSWCANSettingsFor(Network net) const override {
|
||||||
auto cfg = getStructurePointer<vividcan_settings_t>();
|
auto cfg = getStructurePointer<vividcan_settings_t>();
|
||||||
if(cfg == nullptr)
|
if(cfg == nullptr)
|
||||||
|
|
@ -115,6 +117,23 @@ public:
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<bool> isPerfTestEnabled() const override {
|
||||||
|
auto cfg = getStructurePointer<vividcan_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return std::nullopt;
|
||||||
|
|
||||||
|
return std::make_optional<bool>(cfg->perf_en != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool setPerfTestEnable(bool enable) override {
|
||||||
|
auto cfg = getMutableStructurePointer<vividcan_settings_t>();
|
||||||
|
if(cfg == nullptr)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
cfg->perf_en = !!enable;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ICSNEO_UNALIGNED(const uint64_t*) getTerminationEnables() const override {
|
ICSNEO_UNALIGNED(const uint64_t*) getTerminationEnables() const override {
|
||||||
// Check the structure pointer even though we're not using it so
|
// Check the structure pointer even though we're not using it so
|
||||||
|
|
|
||||||
|
|
@ -137,6 +137,9 @@ public:
|
||||||
if (::poll(&pfd, 1, static_cast<int>(timeout.count())) == -1) {
|
if (::poll(&pfd, 1, static_cast<int>(timeout.count())) == -1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (pfd.revents & (POLLHUP | POLLERR)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
in = pfd.revents & POLLIN;
|
in = pfd.revents & POLLIN;
|
||||||
return true;
|
return true;
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -155,7 +158,12 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
bool send(const void* buffer, size_t size) {
|
bool send(const void* buffer, size_t size) {
|
||||||
auto sent = ::send(mFD, (const char*)buffer, (int)size, 0);
|
#ifdef _WIN32
|
||||||
|
int flags = 0;
|
||||||
|
#else
|
||||||
|
int flags = MSG_NOSIGNAL;
|
||||||
|
#endif
|
||||||
|
auto sent = ::send(mFD, (const char*)buffer, (int)size, flags);
|
||||||
if(sent == -1) {
|
if(sent == -1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -113,6 +113,10 @@ bool Servd::open() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const auto tokens = split(response);
|
const auto tokens = split(response);
|
||||||
|
if(tokens.size() == 1 && tokens[0] == "0") {
|
||||||
|
EventManager::GetInstance().add(APIEvent::Type::DeviceDisconnected, APIEvent::Severity::Error);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if(tokens.size() != 2) {
|
if(tokens.size() != 2) {
|
||||||
EventManager::GetInstance().add(APIEvent::Type::ServdInvalidResponseError, APIEvent::Severity::Error);
|
EventManager::GetInstance().add(APIEvent::Type::ServdInvalidResponseError, APIEvent::Severity::Error);
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue