What it does for you
Removes repeated low-level helper code from product firmware and gives modules one maintained place for common conversions, debug output, and math behavior.
Small reusable leaf helpers for conversions, debug output callbacks, and math that should not become product policy.
Removes repeated low-level helper code from product firmware and gives modules one maintained place for common conversions, debug output, and math behavior.
efl_conversions, efl_debug, and efl_math with matching source files. Ring Buffer is still stored here today, but is presented with Memory because it is bounded storage.
Use it when multiple modules need the same small helper behavior and you want one maintained implementation instead of slightly different copies in each product.
Small helper functions for repeated embedded chores: unit conversion, byte formatting, debug routing, and simple math used across modules.
cm_per_sec_to_knots(cm_per_sec)Converts sensor or GPS speed values into nautical units for marine and navigation products.km_per_hr_to_cm_per_sec(km_per_hr)Normalizes user-facing speed input into the centimeter-per-second units often used internally.knots_to_cm_per_sec(knots)Converts marine speed input back into an internal metric representation.reverse_byte(value)Reverses bit order for protocols, displays, or sensors that shift bits in the opposite direction.charToHex(c)Converts one hex digit from a console command or config string into a nibble value.ascii_2_bcd_packed(ascii, bcdBuf, bcdBufSize)Packs decimal text for devices or protocols that expect BCD fields.ipAddrToHex(ipAddr)Packs a four-byte IP address for storage, comparison, or protocol fields.hexToIpAddr(hexNum, ipAddr, bufLen)Unpacks a stored IP word into bytes for display or network configuration.EFL_DebugInit(writeFunc, context)Connects EFL debug output to your target path, such as RTT, UART, a log buffer, or a test harness.EFL_DebugPrintf(format, ...)Lets modules emit formatted diagnostics without depending on one board-specific print function.EFL_DebugVprintf(format, args)Supports wrappers that already receive a va_list, such as common logging adapters.RTT(format, ...)Adds function and line context for RTT-style bench debugging without rewriting every call site.eflMathUintMovingAvg(avg, size, bytes, value)Smooths integer readings such as ADC counts, pulse rates, or rolling telemetry values.eflMathMovingAvg(avg, size, value)Smooths floating-point measurements before display, logging, or threshold checks.eflMathRoundf(val, decPlace, up)Rounds float values for user-visible readings, reports, or protocol output.eflMathRoundDouble(val, decPlace, up)Rounds double-precision values when calculations need more precision than the displayed result.