11#ifndef CAN_COREX_CAN_COREX_UTILS_H_
12#define CAN_COREX_CAN_COREX_UTILS_H_
51#define CCX_SLCAN_CLASSIC_MAX_LINE_LEN 28U
109 size_t *bytes_written);
132 uint8_t CCX_EncodeLinearU8_Clamped(
double physical,
double factor,
double offset);
133 uint16_t CCX_EncodeLinearU16_Clamped(
double physical,
double factor,
double offset);
134 uint32_t CCX_EncodeLinearU32_Clamped(
double physical,
double factor,
double offset);
135 uint64_t CCX_EncodeLinearU64_Clamped(
double physical,
double factor,
double offset);
137 int8_t CCX_EncodeLinearS8_Clamped(
double physical,
double factor,
double offset);
138 int16_t CCX_EncodeLinearS16_Clamped(
double physical,
double factor,
double offset);
139 int32_t CCX_EncodeLinearS32_Clamped(
double physical,
double factor,
double offset);
140 int64_t CCX_EncodeLinearS64_Clamped(
double physical,
double factor,
double offset);
142 double CCX_DecodeLinearU8(uint8_t raw,
double factor,
double offset);
143 double CCX_DecodeLinearU16(uint16_t raw,
double factor,
double offset);
144 double CCX_DecodeLinearU32(uint32_t raw,
double factor,
double offset);
145 double CCX_DecodeLinearU64(uint64_t raw,
double factor,
double offset);
147 double CCX_DecodeLinearS8(int8_t raw,
double factor,
double offset);
148 double CCX_DecodeLinearS16(int16_t raw,
double factor,
double offset);
149 double CCX_DecodeLinearS32(int32_t raw,
double factor,
double offset);
150 double CCX_DecodeLinearS64(int64_t raw,
double factor,
double offset);
164 uint8_t CCX_EncodeLinearU8F_Clamped(
float physical,
float factor,
float offset);
165 uint16_t CCX_EncodeLinearU16F_Clamped(
float physical,
float factor,
float offset);
166 uint32_t CCX_EncodeLinearU32F_Clamped(
float physical,
float factor,
float offset);
167 uint64_t CCX_EncodeLinearU64F_Clamped(
float physical,
float factor,
float offset);
169 int8_t CCX_EncodeLinearS8F_Clamped(
float physical,
float factor,
float offset);
170 int16_t CCX_EncodeLinearS16F_Clamped(
float physical,
float factor,
float offset);
171 int32_t CCX_EncodeLinearS32F_Clamped(
float physical,
float factor,
float offset);
172 int64_t CCX_EncodeLinearS64F_Clamped(
float physical,
float factor,
float offset);
174 float CCX_DecodeLinearU8F(uint8_t raw,
float factor,
float offset);
175 float CCX_DecodeLinearU16F(uint16_t raw,
float factor,
float offset);
176 float CCX_DecodeLinearU32F(uint32_t raw,
float factor,
float offset);
177 float CCX_DecodeLinearU64F(uint64_t raw,
float factor,
float offset);
179 float CCX_DecodeLinearS8F(int8_t raw,
float factor,
float offset);
180 float CCX_DecodeLinearS16F(int16_t raw,
float factor,
float offset);
181 float CCX_DecodeLinearS32F(int32_t raw,
float factor,
float offset);
182 float CCX_DecodeLinearS64F(int64_t raw,
float factor,
float offset);
Core CAN CoreX public API.
CCX_UTILS_Status_t CCX_SLCAN_Parse(const char *line, CCX_message_t *msg)
Parse a classic SLCAN data-frame line into a CAN CoreX message.
CCX_UTILS_Status_t CCX_HexToBytes(const char *hex, size_t hex_len, uint8_t *out, size_t out_size, size_t *bytes_written)
Convert a hex string to bytes.
CCX_UTILS_Status_t
Status values returned by CAN CoreX utility helpers.
Definition can_corex_utils.h:37
CCX_UTILS_Status_t CCX_SLCAN_Format(const CCX_message_t *msg, char *out, size_t out_size)
Format a CAN CoreX classic CAN message as an SLCAN data-frame line.
CCX_UTILS_Status_t CCX_BytesToHex(const uint8_t *bytes, size_t byte_count, char *out, size_t out_size)
Convert bytes to an uppercase hex string.
@ CCX_UTILS_OK
Operation completed successfully.
Definition can_corex_utils.h:38
@ CCX_UTILS_WRONG_ARG
Input format or numeric argument was invalid.
Definition can_corex_utils.h:40
@ CCX_UTILS_UNSUPPORTED
The input uses a feature intentionally not supported by this helper.
Definition can_corex_utils.h:42
@ CCX_UTILS_BUFFER_TOO_SMALL
Caller-provided output buffer is too small.
Definition can_corex_utils.h:41
@ CCX_UTILS_NULL_PTR
A required pointer argument was NULL.
Definition can_corex_utils.h:39
Structure representing a CAN message.
Definition can_corex.h:336