#ifndef PARAM_PARAM_STRING_H
#define PARAM_PARAM_STRING_H
/* Copyright (c) 2013-2018 GomSpace A/S. All rights reserved. */
/**
* GomSpace Parameter System
*/
#include
#include
#ifdef __cplusplus
extern "C" {
#endif
typedef union {
const param_table_t * row3;
const gs_param_table_row_t * row4;
} gs_param_row_align_t;
static inline const param_table_t * param_find_name(const param_table_t rows[], size_t row_count, const char * name)
{
gs_param_row_align_t row_in = {.row3 = rows};
gs_param_row_align_t row_out = {.row4 = gs_param_row_by_name(name, row_in.row4, row_count)};
return row_out.row3;
}
static inline const param_table_t * param_find_addr(const param_table_t rows[], size_t row_count, uint16_t addr)
{
gs_param_row_align_t row_in = {.row3 = rows};
gs_param_row_align_t row_out = {.row4 = gs_param_row_by_address(addr, row_in.row4, row_count)};
return row_out.row3;
}
static inline void param_list_single(param_table_t * param, param_index_t * mem, int do_read)
{
gs_param_list_single((gs_param_table_instance_t *) mem, (const gs_param_table_row_t *) param, (do_read != 0));
}
static inline void param_list(param_index_t * mem, int do_read)
{
gs_param_list((gs_param_table_instance_t *) mem, (do_read != 0));
}
static inline gs_error_t param_from_string(const param_table_t * param , const char * string, void * value)
{
return gs_param_from_string((const gs_param_table_row_t *)param , string, value);
}
static inline int param_to_string(const param_table_t * param, char * buf, int pos, const void * value, int with_type, int max_size)
{
unsigned int written = 0;
gs_param_to_string((const gs_param_table_row_t *)param, value, with_type, buf, max_size, pos, &written);
return (int) written;
}
static inline const char * param_type_to_string(param_type_t type)
{
return gs_param_type_to_string(type);
}
static inline uint16_t param_index_chksum(param_index_t * mem)
{
return gs_param_table_checksum((gs_param_table_instance_t*)mem);
}
static inline uint16_t param_index_chksum2(param_index_t * mem)
{
return gs_param_table_checksum2((gs_param_table_instance_t*)mem);
}
#ifdef __cplusplus
}
#endif
#endif