added icsneo_can_message_set_extended, icsneo_can_message_set_canfd, and icsneo_can_message_set_baudrate_switch

David Rebbe 2024-12-09 10:47:15 -05:00
parent d8ee35c36d
commit b75305d1d3
2 changed files with 80 additions and 2 deletions

View File

@ -700,6 +700,22 @@ ICSNEO_API icsneo_error_t icsneo_can_message_is_extended(icsneo_device_t* device
return icsneo_error_success;
}
ICSNEO_API icsneo_error_t icsneo_can_message_set_extended(icsneo_device_t* device, icsneo_message_t* message, bool value) {
if (!device || !message) {
return icsneo_error_invalid_parameters;
}
// TODO: Check if device is valid
// TODO: Check if message is valid
auto* const can_message = dynamic_cast<CANMessage*>(message->message.get());
if (!can_message) {
return icsneo_error_invalid_type;
}
can_message->isExtended = value;
return icsneo_error_success;
}
ICSNEO_API icsneo_error_t icsneo_can_message_is_canfd(icsneo_device_t* device, icsneo_message_t* message, bool* value) {
if (!device || !message || !value) {
return icsneo_error_invalid_parameters;
@ -716,6 +732,22 @@ ICSNEO_API icsneo_error_t icsneo_can_message_is_canfd(icsneo_device_t* device, i
return icsneo_error_success;
}
ICSNEO_API icsneo_error_t icsneo_can_message_set_canfd(icsneo_device_t* device, icsneo_message_t* message, bool value) {
if (!device || !message) {
return icsneo_error_invalid_parameters;
}
// TODO: Check if device is valid
// TODO: Check if message is valid
auto* const can_message = dynamic_cast<CANMessage*>(message->message.get());
if (!can_message) {
return icsneo_error_invalid_type;
}
can_message->isCANFD = value;
return icsneo_error_success;
}
ICSNEO_API icsneo_error_t icsneo_can_message_get_baudrate_switch(icsneo_device_t* device, icsneo_message_t* message, bool* value) {
if (!device || !message || !value) {
return icsneo_error_invalid_parameters;
@ -732,6 +764,22 @@ ICSNEO_API icsneo_error_t icsneo_can_message_get_baudrate_switch(icsneo_device_t
return icsneo_error_success;
}
ICSNEO_API icsneo_error_t icsneo_can_message_set_baudrate_switch(icsneo_device_t* device, icsneo_message_t* message, bool value) {
if (!device || !message) {
return icsneo_error_invalid_parameters;
}
// TODO: Check if device is valid
// TODO: Check if message is valid
auto* const can_message = dynamic_cast<CANMessage*>(message->message.get());
if (!can_message) {
return icsneo_error_invalid_type;
}
can_message->baudrateSwitch = value;
return icsneo_error_success;
}
ICSNEO_API icsneo_error_t icsneo_can_message_get_error_state_indicator(icsneo_device_t* device, icsneo_message_t* message, bool* value) {
if (!device || !message || !value) {
return icsneo_error_invalid_parameters;

View File

@ -489,6 +489,16 @@ ICSNEO_API icsneo_error_t icsneo_can_message_set_remote(icsneo_device_t* device,
*/
ICSNEO_API icsneo_error_t icsneo_can_message_is_extended(icsneo_device_t* device, icsneo_message_t* message, bool* value);
/** @brief Set the extended status of a CAN message
*
* @param[in] icsneo_device_t* device The device to check against.
* @param[in] icsneo_message_t* message The message to modify.
* @param[out] bool value Extended status to set.
*
* @return icsneo_error_t icsneo_error_success if successful, icsneo_error_invalid_parameters otherwise.
*/
ICSNEO_API icsneo_error_t icsneo_can_message_set_extended(icsneo_device_t* device, icsneo_message_t* message, bool value);
/** @brief Get the CANFD status of a CAN message
*
* @param[in] icsneo_device_t* device The device to check against.
@ -499,16 +509,36 @@ ICSNEO_API icsneo_error_t icsneo_can_message_is_extended(icsneo_device_t* device
*/
ICSNEO_API icsneo_error_t icsneo_can_message_is_canfd(icsneo_device_t* device, icsneo_message_t* message, bool* value);
/** @brief Get the baudrate switch status of a CAN message
/** @brief Set the CANFD status of a CAN message
*
* @param[in] icsneo_device_t* device The device to check against.
* @param[in] icsneo_message_t* message The message to modify.
* @param[out] bool value CANFD status to set.
*
* @return icsneo_error_t icsneo_error_success if successful, icsneo_error_invalid_parameters otherwise.
*/
ICSNEO_API icsneo_error_t icsneo_can_message_set_canfd(icsneo_device_t* device, icsneo_message_t* message, bool value);
/** @brief Get the baudrate switch status (BRS) of a CAN message
*
* @param[in] icsneo_device_t* device The device to check against.
* @param[in] icsneo_message_t* message The message to check.
* @param[out] bool* value Pointer to a uint32_t to copy the baudrate switch status into.
* @param[out] bool* value Pointer to a uint32_t to copy the baudrate switch (BRS) status into.
*
* @return icsneo_error_t icsneo_error_success if successful, icsneo_error_invalid_parameters otherwise.
*/
ICSNEO_API icsneo_error_t icsneo_can_message_get_baudrate_switch(icsneo_device_t* device, icsneo_message_t* message, bool* value);
/** @brief Set the baudrate switch status (BRS) of a CAN message
*
* @param[in] icsneo_device_t* device The device to check against.
* @param[in] icsneo_message_t* message The message to modify.
* @param[out] bool value baudrate switch status (BRS) to set.
*
* @return icsneo_error_t icsneo_error_success if successful, icsneo_error_invalid_parameters otherwise.
*/
ICSNEO_API icsneo_error_t icsneo_can_message_set_baudrate_switch(icsneo_device_t* device, icsneo_message_t* message, bool value);
/** @brief Get the error state indicator status of a CAN message
*
* @param[in] icsneo_device_t* device The device to check against.