/* * calibration.h * * Created on: Dec 22, 2025 * Author: Arpita Srivastava */ #ifndef __CALIBRATION_H__ #define __CALIBRATION_H__ #ifdef __cplusplus extern "C" { #endif #include #define FIRMWARE_VERSION "v0.1.0" // Major.Minor.Build #define MIN_VERSION_LENGTH 1 // Minimum version string length #define MAX_VERSION_LENGTH 13 // Maximum version string length #define DEFAULT_COEFF 0.0F // Default calibration coefficient #define MIN_COEFF -1000.0F // Minimum valid calibration coefficient #define MAX_COEFF 1000.0F // Maximum valid calibration coefficient /** * @brief Flash structure for calibration coefficients. */ struct __attribute__((packed)) cal_file { float coeff1 = DEFAULT_COEFF; float coeff2 = DEFAULT_COEFF; float coeff3 = DEFAULT_COEFF; float coeff4 = DEFAULT_COEFF; float coeff5 = DEFAULT_COEFF; float coeff6 = DEFAULT_COEFF; float coeff7 = DEFAULT_COEFF; float coeff8 = DEFAULT_COEFF; float coeff9 = DEFAULT_COEFF; float coeff10 = DEFAULT_COEFF; float coeff11 = DEFAULT_COEFF; float coeff12 = DEFAULT_COEFF; }const default_cal_data; /** * @brief Flash structure for hardware version and serial number. */ struct __attribute__((packed)) ser_file { char hw_ver[MAX_VERSION_LENGTH] = "0.0.0"; char ser_num[MAX_VERSION_LENGTH] = "0.0.0"; }const default_ser_data; extern ssize_t cal_write(const void *buf, size_t count); extern ssize_t cal_read(void *buf, size_t count); extern off_t cal_lseek(off_t offset, int whence); extern void cal_open(void); extern ssize_t ser_write(const void *buf, size_t count); extern ssize_t ser_read(void *buf, size_t count); extern off_t ser_lseek(off_t offset, int whence); extern void ser_open(void); #ifdef __cplusplus } // extern "C" #endif #endif /* __CALIBRATION_H__ */