LIN: settings minor tweaks from PR
parent
23a8974c14
commit
87e7590f06
|
|
@ -759,7 +759,7 @@ bool IDeviceSettings::setTerminationFor(Network net, bool enabled) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::optional<bool> IDeviceSettings::isMasterResistorEnabledFor(Network net) const {
|
std::optional<bool> IDeviceSettings::isCommanderResistorEnabledFor(Network net) const {
|
||||||
if(!settingsLoaded) {
|
if(!settingsLoaded) {
|
||||||
report(APIEvent::Type::SettingsReadError, APIEvent::Severity::Error);
|
report(APIEvent::Type::SettingsReadError, APIEvent::Severity::Error);
|
||||||
return std::nullopt;
|
return std::nullopt;
|
||||||
|
|
@ -778,7 +778,7 @@ std::optional<bool> IDeviceSettings::isMasterResistorEnabledFor(Network net) con
|
||||||
return std::nullopt;
|
return std::nullopt;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (cfg->MasterResistor != RESISTOR_OFF);
|
return (cfg->CommanderResistor != RESISTOR_OFF);
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
report(APIEvent::Type::UnexpectedNetworkType, APIEvent::Severity::Error);
|
report(APIEvent::Type::UnexpectedNetworkType, APIEvent::Severity::Error);
|
||||||
|
|
@ -786,7 +786,7 @@ std::optional<bool> IDeviceSettings::isMasterResistorEnabledFor(Network net) con
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IDeviceSettings::setMasterResistorFor(Network net, bool resistor_on) {
|
bool IDeviceSettings::setCommanderResistorFor(Network net, bool resistor_on) {
|
||||||
if(disabled) {
|
if(disabled) {
|
||||||
report(APIEvent::Type::SettingsNotAvailable, APIEvent::Severity::Error);
|
report(APIEvent::Type::SettingsNotAvailable, APIEvent::Severity::Error);
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -810,7 +810,7 @@ bool IDeviceSettings::setMasterResistorFor(Network net, bool resistor_on) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg->MasterResistor = resistor_on ? RESISTOR_ON : RESISTOR_OFF;
|
cfg->CommanderResistor = resistor_on ? RESISTOR_ON : RESISTOR_OFF;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|
@ -819,7 +819,7 @@ bool IDeviceSettings::setMasterResistorFor(Network net, bool resistor_on) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::optional<enum LINMode> IDeviceSettings::getLINModeFor(Network net) const {
|
std::optional<LINMode> IDeviceSettings::getLINModeFor(Network net) const {
|
||||||
if(!settingsLoaded) {
|
if(!settingsLoaded) {
|
||||||
report(APIEvent::Type::SettingsReadError, APIEvent::Severity::Error);
|
report(APIEvent::Type::SettingsReadError, APIEvent::Severity::Error);
|
||||||
return std::nullopt;
|
return std::nullopt;
|
||||||
|
|
@ -838,7 +838,7 @@ std::optional<enum LINMode> IDeviceSettings::getLINModeFor(Network net) const {
|
||||||
return std::nullopt;
|
return std::nullopt;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (enum LINMode)cfg->Mode;
|
return static_cast<LINMode>(cfg->Mode);
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
report(APIEvent::Type::UnexpectedNetworkType, APIEvent::Severity::Error);
|
report(APIEvent::Type::UnexpectedNetworkType, APIEvent::Severity::Error);
|
||||||
|
|
@ -846,7 +846,7 @@ std::optional<enum LINMode> IDeviceSettings::getLINModeFor(Network net) const {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IDeviceSettings::setLINModeFor(Network net, enum LINMode mode) {
|
bool IDeviceSettings::setLINModeFor(Network net, LINMode mode) {
|
||||||
if(disabled) {
|
if(disabled) {
|
||||||
report(APIEvent::Type::SettingsNotAvailable, APIEvent::Severity::Error);
|
report(APIEvent::Type::SettingsNotAvailable, APIEvent::Severity::Error);
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -870,7 +870,7 @@ bool IDeviceSettings::setLINModeFor(Network net, enum LINMode mode) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg->Mode = (uint8_t)mode;
|
cfg->Mode = static_cast<uint8_t>(mode);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|
@ -879,7 +879,7 @@ bool IDeviceSettings::setLINModeFor(Network net, enum LINMode mode) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::optional<uint8_t> IDeviceSettings::getLINMasterSlaveIntervalFor(Network net) const {
|
std::optional<uint8_t> IDeviceSettings::getLINCommanderResponseTimeFor(Network net) const {
|
||||||
if(!settingsLoaded) {
|
if(!settingsLoaded) {
|
||||||
report(APIEvent::Type::SettingsReadError, APIEvent::Severity::Error);
|
report(APIEvent::Type::SettingsReadError, APIEvent::Severity::Error);
|
||||||
return std::nullopt;
|
return std::nullopt;
|
||||||
|
|
@ -906,7 +906,7 @@ std::optional<uint8_t> IDeviceSettings::getLINMasterSlaveIntervalFor(Network net
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IDeviceSettings::setLINMasterSlaveIntervalFor(Network net, uint8_t bits) {
|
bool IDeviceSettings::setLINCommanderResponseTimeFor(Network net, uint8_t bits) {
|
||||||
if(disabled) {
|
if(disabled) {
|
||||||
report(APIEvent::Type::SettingsNotAvailable, APIEvent::Severity::Error);
|
report(APIEvent::Type::SettingsNotAvailable, APIEvent::Severity::Error);
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -84,8 +84,8 @@ int main() {
|
||||||
else
|
else
|
||||||
std::cout << "OK, " << (baud) << "bit/s" << std::endl;
|
std::cout << "OK, " << (baud) << "bit/s" << std::endl;
|
||||||
|
|
||||||
std::cout << "Enable LIN master resistor... ";
|
std::cout << "Enable LIN commander resistor... ";
|
||||||
ret &= device->settings->setMasterResistorFor(icsneo::Network::NetID::LIN, true);
|
ret &= device->settings->setCommanderResistorFor(icsneo::Network::NetID::LIN, true);
|
||||||
std::cout << (ret ? "OK" : "FAIL") << std::endl;
|
std::cout << (ret ? "OK" : "FAIL") << std::endl;
|
||||||
|
|
||||||
std::cout << "Setting LIN2 to operate at " << baud << "bit/s... ";
|
std::cout << "Setting LIN2 to operate at " << baud << "bit/s... ";
|
||||||
|
|
@ -100,8 +100,8 @@ int main() {
|
||||||
ret = device->settings->setLINModeFor(icsneo::Network::NetID::LIN2, NORMAL_MODE);
|
ret = device->settings->setLINModeFor(icsneo::Network::NetID::LIN2, NORMAL_MODE);
|
||||||
std::cout << (ret ? "OK" : "FAIL") << std::endl;
|
std::cout << (ret ? "OK" : "FAIL") << std::endl;
|
||||||
|
|
||||||
std::cout << "Disable LIN2 master resistor... ";
|
std::cout << "Disable LIN2 commander resistor... ";
|
||||||
ret &= device->settings->setMasterResistorFor(icsneo::Network::NetID::LIN2, false);
|
ret &= device->settings->setCommanderResistorFor(icsneo::Network::NetID::LIN2, false);
|
||||||
std::cout << (ret ? "OK" : "FAIL") << std::endl;
|
std::cout << (ret ? "OK" : "FAIL") << std::endl;
|
||||||
|
|
||||||
std::cout << "Applying settings... ";
|
std::cout << "Applying settings... ";
|
||||||
|
|
|
||||||
|
|
@ -558,7 +558,7 @@ typedef struct _LIN_SETTINGS
|
||||||
uint16_t spbrg; /* Precompiled to be 40Mhz/Baudrate/16 - 1. Only used in neoVI FIRE/FIREVNET(4dw) */
|
uint16_t spbrg; /* Precompiled to be 40Mhz/Baudrate/16 - 1. Only used in neoVI FIRE/FIREVNET(4dw) */
|
||||||
uint8_t brgh; /* Must be zero */
|
uint8_t brgh; /* Must be zero */
|
||||||
uint8_t numBitsDelay;
|
uint8_t numBitsDelay;
|
||||||
uint8_t MasterResistor;
|
uint8_t CommanderResistor;
|
||||||
uint8_t Mode;
|
uint8_t Mode;
|
||||||
} LIN_SETTINGS;
|
} LIN_SETTINGS;
|
||||||
#define LIN_SETTINGS_SIZE 10
|
#define LIN_SETTINGS_SIZE 10
|
||||||
|
|
@ -765,22 +765,22 @@ public:
|
||||||
bool setTerminationFor(Network net, bool enabled);
|
bool setTerminationFor(Network net, bool enabled);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check whether software switchable master resistor is currently
|
* Check whether software switchable commander resistor is currently
|
||||||
* enabled for a given network in the currently active device settings.
|
* enabled for a given network in the currently active device settings.
|
||||||
*
|
*
|
||||||
* Returns true if the call was successful, otherwise an error
|
* Returns true if the call was successful, otherwise an error
|
||||||
* will have been reported in icsneo::getLastError().
|
* will have been reported in icsneo::getLastError().
|
||||||
*/
|
*/
|
||||||
std::optional<bool> isMasterResistorEnabledFor(Network net) const;
|
std::optional<bool> isCommanderResistorEnabledFor(Network net) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enable or disable software switchable master resistor for a given
|
* Enable or disable software switchable commander resistor for a given
|
||||||
* network.
|
* network.
|
||||||
*
|
*
|
||||||
* Returns true if the call was successful, otherwise an error
|
* Returns true if the call was successful, otherwise an error
|
||||||
* will have been reported in icsneo::getLastError().
|
* will have been reported in icsneo::getLastError().
|
||||||
*/
|
*/
|
||||||
bool setMasterResistorFor(Network net, bool resistor_on);
|
bool setCommanderResistorFor(Network net, bool resistor_on);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get LIN mode for a given network in the currently active device
|
* Get LIN mode for a given network in the currently active device
|
||||||
|
|
@ -797,19 +797,19 @@ public:
|
||||||
bool setLINModeFor(Network net, enum LINMode mode);
|
bool setLINModeFor(Network net, enum LINMode mode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get number of bit delays between Master ID and first Slave byte for
|
* Get number of bit delays between commander ID and first responder byte for
|
||||||
* a given network in the currently active device settings.
|
* a given network in the currently active device settings.
|
||||||
*/
|
*/
|
||||||
std::optional<uint8_t> getLINMasterSlaveIntervalFor(Network net) const;
|
std::optional<uint8_t> getLINCommanderResponseTimeFor(Network net) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set number of bit delays between Master ID and first Slave byte for
|
* Set number of bit delays between commander ID and first responder byte for
|
||||||
* a given network
|
* a given network
|
||||||
*
|
*
|
||||||
* Returns true if the call was successful, otherwise an error
|
* Returns true if the call was successful, otherwise an error
|
||||||
* will have been reported in icsneo::getLastError().
|
* will have been reported in icsneo::getLastError().
|
||||||
*/
|
*/
|
||||||
bool setLINMasterSlaveIntervalFor(Network net, uint8_t bits);
|
bool setLINCommanderResponseTimeFor(Network net, uint8_t bits);
|
||||||
|
|
||||||
const void* getRawStructurePointer() const { return settingsInDeviceRAM.data(); }
|
const void* getRawStructurePointer() const { return settingsInDeviceRAM.data(); }
|
||||||
void* getMutableRawStructurePointer() { return settings.data(); }
|
void* getMutableRawStructurePointer() { return settings.data(); }
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue