added icsneo_can_message_set_dlc_on_wire and icsneo_can_message_set_remote

David Rebbe 2024-12-09 10:25:23 -05:00
parent c8de60f40d
commit d8ee35c36d
2 changed files with 54 additions and 2 deletions

View File

@ -605,7 +605,7 @@ ICSNEO_API icsneo_error_t icsneo_can_message_get_arbid(icsneo_device_t* device,
}
ICSNEO_API icsneo_error_t icsneo_can_message_set_arbid(icsneo_device_t* device, icsneo_message_t* message, uint32_t value) {
if (!device || !message) {
if (!device || !message) {
return icsneo_error_invalid_parameters;
}
// TODO: Check if device is valid
@ -636,6 +636,22 @@ ICSNEO_API icsneo_error_t icsneo_can_message_get_dlc_on_wire(icsneo_device_t* de
return icsneo_error_success;
}
ICSNEO_API icsneo_error_t icsneo_can_message_set_dlc_on_wire(icsneo_device_t* device, icsneo_message_t* message, uint32_t 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->dlcOnWire = static_cast<uint8_t>(value);
return icsneo_error_success;
}
ICSNEO_API icsneo_error_t icsneo_can_message_is_remote(icsneo_device_t* device, icsneo_message_t* message, bool* value) {
if (!device || !message || !value) {
return icsneo_error_invalid_parameters;
@ -652,6 +668,22 @@ ICSNEO_API icsneo_error_t icsneo_can_message_is_remote(icsneo_device_t* device,
return icsneo_error_success;
}
ICSNEO_API icsneo_error_t icsneo_can_message_set_remote(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->isRemote = value;
return icsneo_error_success;
}
ICSNEO_API icsneo_error_t icsneo_can_message_is_extended(icsneo_device_t* device, icsneo_message_t* message, bool* value) {
if (!device || !message || !value) {
return icsneo_error_invalid_parameters;

View File

@ -449,7 +449,17 @@ ICSNEO_API icsneo_error_t icsneo_can_message_set_arbid(icsneo_device_t* device,
*/
ICSNEO_API icsneo_error_t icsneo_can_message_get_dlc_on_wire(icsneo_device_t* device, icsneo_message_t* message, uint32_t* value);
/** @brief Get the remote status of a CAN message
/** @brief Set the DLC on wire 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] uint32_t value DLC 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_dlc_on_wire(icsneo_device_t* device, icsneo_message_t* message, uint32_t value);
/** @brief Get the Remote Transmission Request (RTR) 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 check.
@ -459,6 +469,16 @@ ICSNEO_API icsneo_error_t icsneo_can_message_get_dlc_on_wire(icsneo_device_t* de
*/
ICSNEO_API icsneo_error_t icsneo_can_message_is_remote(icsneo_device_t* device, icsneo_message_t* message, bool* value);
/** @brief Set the Remote Transmission Request (RTR) 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 Remote 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_remote(icsneo_device_t* device, icsneo_message_t* message, bool* value);
/** @brief Get the extended status of a CAN message
*
* @param[in] icsneo_device_t* device The device to check against.