save failed integration state
This commit is contained in:
395
gomspace/libparam_client/include/gs/param/rparam.h
Normal file
395
gomspace/libparam_client/include/gs/param/rparam.h
Normal file
@ -0,0 +1,395 @@
|
||||
#ifndef GS_PARAM_REMOTE_H
|
||||
#define GS_PARAM_REMOTE_H
|
||||
/* Copyright (c) 2013-2018 GomSpace A/S. All rights reserved. */
|
||||
/**
|
||||
@file
|
||||
|
||||
Remote parameter API - pending refactoring.
|
||||
*/
|
||||
|
||||
#include <gs/param/types.h>
|
||||
#include <gs/util/string.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
Magic checksum.
|
||||
If specifying a magic checksum, the rparam server will ignore/skip checksum validation.
|
||||
*/
|
||||
#define GS_RPARAM_MAGIC_CHECKSUM 0x0bb0
|
||||
|
||||
/**
|
||||
Register rparam commands.
|
||||
@return_gs_error_t
|
||||
*/
|
||||
gs_error_t gs_rparam_register_commands(void);
|
||||
|
||||
/**
|
||||
Download all (data) values from a remote table to a local instance.
|
||||
|
||||
@param[in] tinst local table instance.
|
||||
@param[in] node CSP address.
|
||||
@param[in] table_id remote table id to download.
|
||||
@param[in] checksum table checksum.
|
||||
@param[in] timeout_ms timeout.
|
||||
@return_gs_error_t
|
||||
*/
|
||||
gs_error_t gs_rparam_get_full_table(gs_param_table_instance_t * tinst,
|
||||
uint8_t node,
|
||||
gs_param_table_id_t table_id,
|
||||
uint16_t checksum,
|
||||
uint32_t timeout_ms);
|
||||
|
||||
/**
|
||||
Download a table specification from a remote node, store it in memory and save it to local file system.
|
||||
|
||||
@note Will free existing rows - do not use this on table instances with static assigned rows.
|
||||
|
||||
Table memory will be (re)allocated to match specification.
|
||||
|
||||
@param[in] tinst local table instance.
|
||||
@param[in] fname name of the file to store the table specification in. If NULL, no file will be stored.
|
||||
@param[in] node CSP address
|
||||
@param[in] table_id remote table id to download.
|
||||
@param[in] timeout_ms timeout.
|
||||
@param[out] return_checksum fletcher16 checksum of downloaded specification "as is" - before network/host swapping.
|
||||
@return_gs_error_t
|
||||
@see gs_param_table_free()
|
||||
*/
|
||||
gs_error_t gs_rparam_download_table_spec(gs_param_table_instance_t * tinst,
|
||||
const char * fname,
|
||||
uint8_t node,
|
||||
gs_param_table_id_t table_id,
|
||||
uint32_t timeout_ms,
|
||||
uint16_t * return_checksum);
|
||||
|
||||
/**
|
||||
Load a table specification from a local file and store it in memory.
|
||||
|
||||
@note Will free existing rows - do not use this on table instances with static assigned rows.
|
||||
|
||||
Table memory will be (re)allocated to match specification.
|
||||
|
||||
@param[in] tinst local table instance.
|
||||
@param[in] fname name of the file to load the table specification from.
|
||||
@param[out] return_checksum fletcher16 checksum stored in file.
|
||||
@return_gs_error_t
|
||||
@see gs_param_table_free()
|
||||
*/
|
||||
gs_error_t gs_rparam_load_table_spec(gs_param_table_instance_t * tinst, const char* fname, uint16_t * return_checksum);
|
||||
|
||||
/**
|
||||
Copy from one table to another table.
|
||||
|
||||
@deprecated Not supported by a param 4 backend and future versions.
|
||||
|
||||
@param[in] node CSP address
|
||||
@param[in] timeout_ms timeout on remote CSP calls
|
||||
@param[in] from from table-id.
|
||||
@param[in] to to table-id.
|
||||
@return_gs_error_t
|
||||
*/
|
||||
gs_error_t gs_rparam_copy(uint8_t node, uint32_t timeout_ms, uint8_t from, uint8_t to);
|
||||
|
||||
/**
|
||||
Save table.
|
||||
|
||||
@note On a param 4 backend, the table will always be saved to it's primary store.
|
||||
|
||||
@param[in] node CSP address
|
||||
@param[in] timeout_ms timeout on remote CSP calls
|
||||
@param[in] id table to save.
|
||||
@param[in] to to file slot - ignored on param 4 backends.
|
||||
@return_gs_error_t
|
||||
*/
|
||||
gs_error_t gs_rparam_save(uint8_t node, uint32_t timeout_ms, gs_param_table_id_t id, uint8_t to);
|
||||
|
||||
/**
|
||||
Save table.
|
||||
|
||||
@version 4
|
||||
@param[in] node CSP address
|
||||
@param[in] timeout_ms timeout on remote CSP calls
|
||||
@param[in] table_id remote table id.
|
||||
@param[in] store store name.
|
||||
@param[in] slot slot within store.
|
||||
@return_gs_error_t
|
||||
*/
|
||||
gs_error_t gs_rparam_save_to_store(uint8_t node, uint32_t timeout_ms, uint8_t table_id,
|
||||
const char * store, const char * slot);
|
||||
|
||||
/**
|
||||
Load table from store.
|
||||
|
||||
@note On a param 4 backend, the specified table will be loadded from it's primary store.
|
||||
|
||||
@param[in] node CSP address
|
||||
@param[in] timeout_ms timeout on remote CSP calls
|
||||
@param[in] from from file slot - ignored on param 4 backends.
|
||||
@param[in] id table to load.
|
||||
@return_gs_error_t
|
||||
*/
|
||||
gs_error_t gs_rparam_load(uint8_t node, uint32_t timeout_ms, uint8_t from, gs_param_table_id_t id);
|
||||
|
||||
/**
|
||||
Load table from store.
|
||||
|
||||
@version 4
|
||||
@param[in] node CSP address
|
||||
@param[in] timeout_ms timeout on remote CSP calls
|
||||
@param[in] table_id remote table id.
|
||||
@param[in] store store name.
|
||||
@param[in] slot slot within store.
|
||||
@return_gs_error_t
|
||||
*/
|
||||
gs_error_t gs_rparam_load_from_store(uint8_t node, uint32_t timeout_ms, uint8_t table_id,
|
||||
const char * store, const char * slot);
|
||||
|
||||
/**
|
||||
Get parameter.
|
||||
|
||||
@param[in] node CSP address
|
||||
@param[in] table_id remote table id.
|
||||
@param[in] addr parameter address (remote table).
|
||||
@param[in] type parameter type.
|
||||
@param[in] checksum checksum
|
||||
@param[in] timeout_ms timeout
|
||||
@param[out] value returned value (user allocated)
|
||||
@param[in] value_size size of \a value buffer.
|
||||
@return_gs_error_t
|
||||
*/
|
||||
gs_error_t gs_rparam_get(uint8_t node,
|
||||
gs_param_table_id_t table_id,
|
||||
uint16_t addr,
|
||||
gs_param_type_t type,
|
||||
uint16_t checksum,
|
||||
uint32_t timeout_ms,
|
||||
void * value,
|
||||
size_t value_size);
|
||||
|
||||
/**
|
||||
Set parameter.
|
||||
|
||||
@param[in] node CSP address
|
||||
@param[in] table_id remote table id.
|
||||
@param[in] addr parameter address (remote table).
|
||||
@param[in] type parameter type.
|
||||
@param[in] checksum checksum
|
||||
@param[in] timeout_ms timeout
|
||||
@param[in] value value to set
|
||||
@param[in] value_size size of \a value.
|
||||
@return_gs_error_t
|
||||
*/
|
||||
gs_error_t gs_rparam_set(uint8_t node,
|
||||
gs_param_table_id_t table_id,
|
||||
uint16_t addr,
|
||||
gs_param_type_t type,
|
||||
uint16_t checksum,
|
||||
uint32_t timeout_ms,
|
||||
const void * value,
|
||||
size_t value_size);
|
||||
|
||||
/**
|
||||
Get string.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_get_string(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, char * value, size_t value_size)
|
||||
{
|
||||
return gs_rparam_get(node, table_id, addr, GS_PARAM_STRING, checksum, timeout_ms, value, value_size);
|
||||
}
|
||||
|
||||
/**
|
||||
Set string.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_set_string(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, const char * value, size_t value_size)
|
||||
{
|
||||
return gs_rparam_set(node, table_id, addr, GS_PARAM_STRING, checksum, timeout_ms, value, (value_size == 0) ? (strlen(value) + 1) : value_size);
|
||||
}
|
||||
|
||||
/**
|
||||
Get int8.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_get_int8(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, int8_t * value)
|
||||
{
|
||||
return gs_rparam_get(node, table_id, addr, GS_PARAM_INT8, checksum, timeout_ms, value, sizeof(*value));
|
||||
}
|
||||
|
||||
/**
|
||||
Set int8.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_set_int8(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, int8_t value)
|
||||
{
|
||||
return gs_rparam_set(node, table_id, addr, GS_PARAM_INT8, checksum, timeout_ms, &value, sizeof(value));
|
||||
}
|
||||
|
||||
/**
|
||||
Get uint8.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_get_uint8(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, uint8_t * value)
|
||||
{
|
||||
return gs_rparam_get(node, table_id, addr, GS_PARAM_UINT8, checksum, timeout_ms, value, sizeof(*value));
|
||||
}
|
||||
|
||||
/**
|
||||
Set uint8.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_set_uint8(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, uint8_t value)
|
||||
{
|
||||
return gs_rparam_set(node, table_id, addr, GS_PARAM_UINT8, checksum, timeout_ms, &value, sizeof(value));
|
||||
}
|
||||
|
||||
/**
|
||||
Get int16.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_get_int16(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, int16_t * value)
|
||||
{
|
||||
return gs_rparam_get(node, table_id, addr, GS_PARAM_INT16, checksum, timeout_ms, value, sizeof(*value));
|
||||
}
|
||||
|
||||
/**
|
||||
Set int16.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_set_int16(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, int16_t value)
|
||||
{
|
||||
return gs_rparam_set(node, table_id, addr, GS_PARAM_INT16, checksum, timeout_ms, &value, sizeof(value));
|
||||
}
|
||||
|
||||
/**
|
||||
Get uint16.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_get_uint16(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, uint16_t * value)
|
||||
{
|
||||
return gs_rparam_get(node, table_id, addr, GS_PARAM_UINT16, checksum, timeout_ms, value, sizeof(*value));
|
||||
}
|
||||
|
||||
/**
|
||||
Set uint16.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_set_uint16(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, uint16_t value)
|
||||
{
|
||||
return gs_rparam_set(node, table_id, addr, GS_PARAM_UINT16, checksum, timeout_ms, &value, sizeof(value));
|
||||
}
|
||||
|
||||
/**
|
||||
Get int32.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_get_int32(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, int32_t * value)
|
||||
{
|
||||
return gs_rparam_get(node, table_id, addr, GS_PARAM_INT32, checksum, timeout_ms, value, sizeof(*value));
|
||||
}
|
||||
|
||||
/**
|
||||
Set int32.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_set_int32(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, int32_t value)
|
||||
{
|
||||
return gs_rparam_set(node, table_id, addr, GS_PARAM_INT32, checksum, timeout_ms, &value, sizeof(value));
|
||||
}
|
||||
|
||||
/**
|
||||
Get uint32.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_get_uint32(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, uint32_t * value)
|
||||
{
|
||||
return gs_rparam_get(node, table_id, addr, GS_PARAM_UINT32, checksum, timeout_ms, value, sizeof(*value));
|
||||
}
|
||||
|
||||
/**
|
||||
Set uint32.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_set_uint32(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, uint32_t value)
|
||||
{
|
||||
return gs_rparam_set(node, table_id, addr, GS_PARAM_UINT32, checksum, timeout_ms, &value, sizeof(value));
|
||||
}
|
||||
|
||||
/**
|
||||
Get int64.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_get_int64(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, int64_t * value)
|
||||
{
|
||||
return gs_rparam_get(node, table_id, addr, GS_PARAM_INT64, checksum, timeout_ms, value, sizeof(*value));
|
||||
}
|
||||
|
||||
/**
|
||||
Set int64.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_set_int64(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, int64_t value)
|
||||
{
|
||||
return gs_rparam_set(node, table_id, addr, GS_PARAM_INT64, checksum, timeout_ms, &value, sizeof(value));
|
||||
}
|
||||
|
||||
/**
|
||||
Get uint64.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_get_uint64(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, uint64_t * value)
|
||||
{
|
||||
return gs_rparam_get(node, table_id, addr, GS_PARAM_UINT64, checksum, timeout_ms, value, sizeof(*value));
|
||||
}
|
||||
|
||||
/**
|
||||
Set uint64.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_set_uint64(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, uint64_t value)
|
||||
{
|
||||
return gs_rparam_set(node, table_id, addr, GS_PARAM_UINT64, checksum, timeout_ms, &value, sizeof(value));
|
||||
}
|
||||
|
||||
/**
|
||||
Get float.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_get_float(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, float * value)
|
||||
{
|
||||
return gs_rparam_get(node, table_id, addr, GS_PARAM_FLOAT, checksum, timeout_ms, value, sizeof(*value));
|
||||
}
|
||||
|
||||
/**
|
||||
Set float.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_set_float(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, float value)
|
||||
{
|
||||
return gs_rparam_set(node, table_id, addr, GS_PARAM_FLOAT, checksum, timeout_ms, &value, sizeof(value));
|
||||
}
|
||||
|
||||
/**
|
||||
Get double.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_get_double(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, double * value)
|
||||
{
|
||||
return gs_rparam_get(node, table_id, addr, GS_PARAM_DOUBLE, checksum, timeout_ms, value, sizeof(*value));
|
||||
}
|
||||
|
||||
/**
|
||||
Set double.
|
||||
*/
|
||||
static inline gs_error_t gs_rparam_set_double(uint8_t node, gs_param_table_id_t table_id, uint16_t addr,
|
||||
uint16_t checksum, uint32_t timeout_ms, double value)
|
||||
{
|
||||
return gs_rparam_set(node, table_id, addr, GS_PARAM_DOUBLE, checksum, timeout_ms, &value, sizeof(value));
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
Reference in New Issue
Block a user