mirror of
https://github.com/intrepidcs/libicsneo.git
synced 2026-08-05 01:18:36 +02:00
Settings: Add GPTP
This commit is contained in:
committed by
Kyle Schwarz
parent
2d0b0c63ed
commit
299766403f
@@ -613,6 +613,18 @@ enum : uint8_t
|
||||
RESISTOR_OFF
|
||||
};
|
||||
|
||||
enum RADGPTPProfile : icsneoc2_gptp_profile_t {
|
||||
RAD_GPTP_PROFILE_STANDARD = icsneoc2_gptp_profile_standard,
|
||||
RAD_GPTP_PROFILE_AUTOMOTIVE = icsneoc2_gptp_profile_automotive,
|
||||
};
|
||||
|
||||
enum RADGPTPRole : icsneoc2_gptp_role_t {
|
||||
RAD_GPTP_ROLE_DISABLED = icsneoc2_gptp_role_disabled,
|
||||
RAD_GPTP_ROLE_PASSIVE = icsneoc2_gptp_role_passive,
|
||||
RAD_GPTP_ROLE_MASTER = icsneoc2_gptp_role_master,
|
||||
RAD_GPTP_ROLE_SLAVE = icsneoc2_gptp_role_slave,
|
||||
};
|
||||
|
||||
/* Mode in LIN_SETTINGS */
|
||||
enum LINMode
|
||||
{
|
||||
@@ -1278,6 +1290,18 @@ public:
|
||||
virtual bool setMiscIOAnalogOutputEnabled(uint8_t pin, bool enabled);
|
||||
virtual bool setMiscIOAnalogOutput(uint8_t pin, MiscIOAnalogVoltage voltage);
|
||||
|
||||
// gPTP methods
|
||||
std::optional<RADGPTPProfile> getGPTPProfile() const;
|
||||
bool setGPTPProfile(RADGPTPProfile profile);
|
||||
std::optional<RADGPTPRole> getGPTPRole() const;
|
||||
bool setGPTPRole(RADGPTPRole role);
|
||||
std::optional<uint8_t> getGPTPEnabledPort() const;
|
||||
bool setGPTPEnabledPort(uint8_t port);
|
||||
std::optional<bool> isGPTPClockSyntonizationEnabled() const;
|
||||
bool setGPTPClockSyntonizationEnabled(bool enable);
|
||||
virtual const RAD_GPTP_SETTINGS* getGPTPSettings() const { return nullptr; }
|
||||
virtual RAD_GPTP_SETTINGS* getMutableGPTPSettings() { return nullptr; }
|
||||
|
||||
const void* getRawStructurePointer() const { return settingsInDeviceRAM.data(); }
|
||||
void* getMutableRawStructurePointer() { return settings.data(); }
|
||||
template<typename T> const T* getStructurePointer() const { return reinterpret_cast<const T*>(getRawStructurePointer()); }
|
||||
|
||||
@@ -171,6 +171,15 @@ public:
|
||||
cfg->perf_en = !!enable;
|
||||
return true;
|
||||
}
|
||||
|
||||
const RAD_GPTP_SETTINGS* getGPTPSettings() const override {
|
||||
auto cfg = getStructurePointer<neoviconnect_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
RAD_GPTP_SETTINGS* getMutableGPTPSettings() override {
|
||||
auto cfg = getMutableStructurePointer<neoviconnect_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -422,6 +422,15 @@ protected:
|
||||
return nullptr;
|
||||
return &cfg->termination_enables;
|
||||
}
|
||||
|
||||
const RAD_GPTP_SETTINGS* getGPTPSettings() const override {
|
||||
auto cfg = getStructurePointer<neovifire3_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
RAD_GPTP_SETTINGS* getMutableGPTPSettings() override {
|
||||
auto cfg = getMutableStructurePointer<neovifire3_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -261,6 +261,15 @@ protected:
|
||||
return nullptr;
|
||||
return &cfg->termination_enables;
|
||||
}
|
||||
|
||||
const RAD_GPTP_SETTINGS* getGPTPSettings() const override {
|
||||
auto cfg = getStructurePointer<neovifire3flexray_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
RAD_GPTP_SETTINGS* getMutableGPTPSettings() override {
|
||||
auto cfg = getMutableStructurePointer<neovifire3flexray_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -572,6 +572,15 @@ protected:
|
||||
return nullptr;
|
||||
return &cfg->termination_enables;
|
||||
}
|
||||
|
||||
const RAD_GPTP_SETTINGS* getGPTPSettings() const override {
|
||||
auto cfg = getStructurePointer<neovifire3t1slin_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
RAD_GPTP_SETTINGS* getMutableGPTPSettings() override {
|
||||
auto cfg = getMutableStructurePointer<neovifire3t1slin_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -320,6 +320,15 @@ protected:
|
||||
return nullptr;
|
||||
return &cfg->termination_enables;
|
||||
}
|
||||
|
||||
const RAD_GPTP_SETTINGS* getGPTPSettings() const override {
|
||||
auto cfg = getStructurePointer<neovired2_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
RAD_GPTP_SETTINGS* getMutableGPTPSettings() override {
|
||||
auto cfg = getMutableStructurePointer<neovired2_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -259,6 +259,15 @@ public:
|
||||
cfg->perf_en = !!enable;
|
||||
return true;
|
||||
}
|
||||
|
||||
const RAD_GPTP_SETTINGS* getGPTPSettings() const override {
|
||||
auto cfg = getStructurePointer<rada2b_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
RAD_GPTP_SETTINGS* getMutableGPTPSettings() override {
|
||||
auto cfg = getMutableStructurePointer<rada2b_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -290,6 +290,15 @@ private:
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
const RAD_GPTP_SETTINGS* getGPTPSettings() const override {
|
||||
auto cfg = getStructurePointer<radcomet2_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
RAD_GPTP_SETTINGS* getMutableGPTPSettings() override {
|
||||
auto cfg = getMutableStructurePointer<radcomet2_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -728,6 +728,15 @@ private:
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
const RAD_GPTP_SETTINGS* getGPTPSettings() const override {
|
||||
auto cfg = getStructurePointer<radcomet3_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
RAD_GPTP_SETTINGS* getMutableGPTPSettings() override {
|
||||
auto cfg = getMutableStructurePointer<radcomet3_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -290,6 +290,15 @@ public:
|
||||
cfg->perf_en = !!enable;
|
||||
return true;
|
||||
}
|
||||
|
||||
const RAD_GPTP_SETTINGS* getGPTPSettings() const override {
|
||||
auto cfg = getStructurePointer<radgalaxy_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
RAD_GPTP_SETTINGS* getMutableGPTPSettings() override {
|
||||
auto cfg = getMutableStructurePointer<radgalaxy_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -277,6 +277,15 @@ public:
|
||||
cfg->perf_en = !!enable;
|
||||
return true;
|
||||
}
|
||||
|
||||
const RAD_GPTP_SETTINGS* getGPTPSettings() const override {
|
||||
auto cfg = getStructurePointer<radgalaxy2_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
RAD_GPTP_SETTINGS* getMutableGPTPSettings() override {
|
||||
auto cfg = getMutableStructurePointer<radgalaxy2_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -203,6 +203,15 @@ protected:
|
||||
return nullptr;
|
||||
return &cfg->termination_enables;
|
||||
}
|
||||
|
||||
const RAD_GPTP_SETTINGS* getGPTPSettings() const override {
|
||||
auto cfg = getStructurePointer<radgigastar_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
RAD_GPTP_SETTINGS* getMutableGPTPSettings() override {
|
||||
auto cfg = getMutableStructurePointer<radgigastar_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
|
||||
@@ -645,6 +645,14 @@ namespace icsneo
|
||||
return nullptr;
|
||||
return &cfg->termination_enables;
|
||||
}
|
||||
const RAD_GPTP_SETTINGS* getGPTPSettings() const override {
|
||||
auto cfg = getStructurePointer<radgigastar2_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
RAD_GPTP_SETTINGS* getMutableGPTPSettings() override {
|
||||
auto cfg = getMutableStructurePointer<radgigastar2_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
typedef struct
|
||||
|
||||
@@ -43,6 +43,15 @@ static_assert(sizeof(radmoon2_settings_t) == 170, "RADMoon2 settings size mismat
|
||||
class RADMoon2Settings : public IDeviceSettings {
|
||||
public:
|
||||
RADMoon2Settings(std::shared_ptr<Communication> com) : IDeviceSettings(com, sizeof(radmoon2_settings_t)) {}
|
||||
|
||||
const RAD_GPTP_SETTINGS* getGPTPSettings() const override {
|
||||
auto cfg = getStructurePointer<radmoon2_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
RAD_GPTP_SETTINGS* getMutableGPTPSettings() override {
|
||||
auto cfg = getMutableStructurePointer<radmoon2_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -380,6 +380,15 @@ private:
|
||||
cfg->t1sExt.multi_id[index] = id;
|
||||
return true;
|
||||
}
|
||||
|
||||
const RAD_GPTP_SETTINGS* getGPTPSettings() const override {
|
||||
auto cfg = getStructurePointer<radmoont1s_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
RAD_GPTP_SETTINGS* getMutableGPTPSettings() override {
|
||||
auto cfg = getMutableStructurePointer<radmoont1s_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -134,6 +134,15 @@ public:
|
||||
cfg->perf_en = !!enable;
|
||||
return true;
|
||||
}
|
||||
|
||||
const RAD_GPTP_SETTINGS* getGPTPSettings() const override {
|
||||
auto cfg = getStructurePointer<radstar2_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
RAD_GPTP_SETTINGS* getMutableGPTPSettings() override {
|
||||
auto cfg = getMutableStructurePointer<radstar2_settings_t>();
|
||||
return cfg ? &cfg->gPTP : nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user