This header includes the functions to bind the JSON information to the MbsInfos structure. More...
Go to the source code of this file.
Functions | |
int | count_json_elements (JsonNode *node) |
Counts the number of element in the Json array. More... | |
int | mbs_json_double (JsonNode *node, double *val_ptr, char *key, int mission) |
Link between double value and the specific key of a Json node or the current node. More... | |
int | mbs_json_get_double (JsonNode *node, double *val_ptr) |
Get the node value content a double. More... | |
int | mbs_json_set_double (JsonNode *node, double value) |
Set a double into a node. More... | |
int | mbs_json_string (JsonNode *node, char **str_ptr, const char *key, int mission, int allow_missing) |
Link between string value and the specific key of a Json node. More... | |
int | mbs_json_get_string (JsonNode *node, char **str_ptr) |
Get the node value content a double. More... | |
int | mbs_json_set_string (JsonNode *node, const char *string) |
Set a double into a node. More... | |
int | mbs_json_array (JsonNode *node, double **tab_ptr, int *size, const char *key, int mission) |
Link between array (1D) value and the specific key of a Json node or the current node. More... | |
int | mbs_json_tab (JsonNode *node, double ***tab_ptr, int size_1, int size_2, const char *key, int mission) |
Link between array (2D) value and the specific key of a Json node or the current node. More... | |
int | mbs_json_inertia (JsonNode *bdy_node, MbsInfoBody *mbs_info_body, int mission) |
Translate the inertia key of a node from array (3,3) in node to array (6) in info. More... | |
int | mbs_json_bool (JsonNode *node, int *val_ptr, char *key, int mission) |
Link between bool value (int) and the specific key of a Json node or the current node. More... | |
int | mbs_json_get_bool (JsonNode *node, int *val_ptr) |
Get the node value content a bool as int. More... | |
int | mbs_json_set_bool (JsonNode *node, int value) |
Set a bool (int) into a node. More... | |
JsonNode * | load_and_create_json (const char *mbs_json_filename, int *err) |
int | mbs_info_json_binder (MbsInfos *mbs_infos, JsonNode *node, int mission) |
Read or update the information from root node to all MbsInfo. More... | |
int | mbs_info_body_json_binder (MbsInfoBody *mbs_info_body, JsonNode *node, int mission) |
Read or update the information from body node to its MbsInfo. More... | |
int | mbs_info_tree_json_binder (MbsInfos *mbs_infos, JsonNode *node, int mission) |
Read or update the information from tree node to all MbsInfos. More... | |
int | mbs_info_bodytree_json_binder (MbsInfos *mbs_infos, JsonNode *node, int mission) |
Read or update the information in tree->bodies node to MbsInfoBase fields. More... | |
int | mbs_info_base_json_binder (MbsInfoBase *mbs_info_base, JsonNode *node, int mission) |
Read or update the information in base node to MbsInfoBase. More... | |
int | mbs_info_ref_point_json_binder (MbsInfoRefPoint *mbs_info_ref_point, JsonNode *node, int mission) |
int | mbs_info_coordinates_json_binder (double *coordinates_pointer, JsonNode *node, int mission) |
int | mbs_info_point_json_binder (MbsInfoPoint *mbs_info_point, JsonNode *node, int mission) |
int | mbs_info_ball_json_binder (MbsInfoBall *mbs_info_ball, JsonNode *node, int mission) |
Read or update a ball json node with the infos. More... | |
int | mbs_info_rod_json_binder (MbsInfoRod *mbs_info_rod, JsonNode *node, int mission) |
Read or update a rod json node with the infos. More... | |
int | mbs_info_solid_json_binder (MbsInfoSolid *mbs_info_solid, JsonNode *node, int mission) |
Read or update a solid cut json node with the infos. More... | |
int | mbs_info_cuts_json_binder (MbsInfoCuts *mbs_info_cuts, JsonNode *node, int mission) |
Read or update the cuts list json node with the infos. More... | |
int | mbs_info_parameter_json_binder (MbsInfoParameter *mbs_info_parameter, JsonNode *node, int mission) |
Read or update a user model parameter json node with the infos. More... | |
int | mbs_info_user_model_json_binder (MbsInfoUserModel *mbs_info_user_model, JsonNode *node, int mission) |
Read or update a user model json node with the infos. More... | |
int | mbs_info_user_models_json_binder (MbsInfoUserModels *mbs_info_user_models, JsonNode *node, int mission) |
Read or update the user models list json node with the infos. More... | |
int | mbs_info_user_IO_json_binder (MbsInfoUserIO *mbs_info_user_IO, JsonNode *node, int mission) |
int | mbs_info_user_IOs_json_binder (MbsInfoUserIOs *mbs_info_user_IOs, JsonNode *node, int mission) |
int | mbs_info_link_json_binder (MbsInfoLink *mbs_info_link, JsonNode *node, int mission) |
Read or update a link (point to point or 3D) json node with the infos. More... | |
int | mbs_info_links_json_binder (MbsInfoLinks *mbs_info_links, JsonNode *node, int mission) |
Read or update a links list json node with the infos. More... | |
int | mbs_info_links3d_json_binder (MbsInfoLinks *mbs_info_links, JsonNode *node, int mission) |
int | mbs_info_sensor_json_binder (MbsInfoSensor *mbs_info_sensor, JsonNode *node, int mission) |
Read or update a sensor json node with the infos. More... | |
int | mbs_info_sensors_json_binder (MbsInfos *mbs_info, JsonNode *node, int mission) |
Read or update a sensors list json node with the infos. More... | |
int | mbs_info_extforce_json_binder (MbsInfoExtforce *mbs_info_extf, JsonNode *node, int mission) |
Read or update a external force json node with the infos. More... | |
int | mbs_info_extforces_json_binder (MbsInfos *mbs_info, JsonNode *node, int mission) |
Read or update a external forces list json node with the infos. More... | |
int | mbs_info_point_list_json_binder (MbsInfoPoint ***point_list, JsonNode *node, int mission, char *body_name, int *n_point) |
Link between points array value and all "points" key of a Json object node. More... | |
int | mbs_info_joint_json_binder (MbsInfoJoint *mbs_info_joint, JsonNode *node, int mission) |
Read or update the information in joints node to MbsInfoBase, MbsInfoJoints. More... | |
int | mbs_info_joints_list_json_binder (MbsInfos *mbs_infos, JsonNode *joints_node, int mission) |
int | mbs_body_joint_recursive_linker (MbsInfos *mbs_info, int *ind_body_joint, int mission, int body_index) |
int | mbs_tree_cleaner (MbsInfos *mbs_info, int mission) |
Correct the parents of joints. More... | |
int | mbs_info_json_linker (MbsInfos *mbs_info, int mission) |
int | mbs_json_axis (JsonNode *axis_node, int *axis_int, int mission) |
Read or update the information in an axis node with an integer. More... | |
int | mbs_json_joint_nature (JsonNode *nature_node, int *nature_int, int mission) |
Read or update the information in an joint nature node with an integer. More... | |
int | mbs_info_init_and_binderJSON (MbsInfos *mbs_infos, const char *mbs_json_name, int mission) |
This header includes the functions to bind the JSON information to the MbsInfos structure.
int count_json_elements | ( | JsonNode * | node | ) |
Counts the number of element in the Json array.
[in] | node | The array node, if this is not a JSON_ARRAY then MBS_INFO_FAILURE is returned. |
JsonNode* load_and_create_json | ( | const char * | mbs_json_filename, |
int * | err | ||
) |
int mbs_body_joint_recursive_linker | ( | MbsInfos * | mbs_info, |
int * | ind_body_joint, | ||
int | mission, | ||
int | body_index | ||
) |
int mbs_info_ball_json_binder | ( | MbsInfoBall * | mbs_info_ball, |
JsonNode * | node, | ||
int | mission | ||
) |
Read or update a ball json node with the infos.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
ball_info | The info of the ball. |
ball_node | The json node of the ball (a JSON_OBJECT). |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_info_base_json_binder | ( | MbsInfoBase * | mbs_info_base, |
JsonNode * | base_node, | ||
int | mission | ||
) |
Read or update the information in base node to MbsInfoBase.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
mbs_info_base | The MbsInfo structure. |
base_node | The Json node of the base. |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
Read or update the information in base node to MbsInfoBase.
int mbs_info_body_json_binder | ( | MbsInfoBody * | mbs_info_body, |
JsonNode * | node, | ||
int | mission | ||
) |
Read or update the information from body node to its MbsInfo.
A wanring message is printed if the inertia matrix in Json node is not symmetric.
mbs_info_body | The MbsInfo structure of the body. |
body_node | The Json node of the body (a JSON_OBJECT). |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
Read or update the information in tree->bodies node to MbsInfoBase fields.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
mbs_infos | The MbsInfo structure. |
bdies_node | The Json node of the bodies in the tree. |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_info_coordinates_json_binder | ( | double * | coordinates_pointer, |
JsonNode * | node, | ||
int | mission | ||
) |
int mbs_info_cuts_json_binder | ( | MbsInfoCuts * | mbs_info_cuts, |
JsonNode * | node, | ||
int | mission | ||
) |
Read or update the cuts list json node with the infos.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
mbs_info_cuts | The Info for the cuts |
node | The cuts json node (an array). |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_info_extforce_json_binder | ( | MbsInfoExtforce * | mbs_info_extf, |
JsonNode * | node, | ||
int | mission | ||
) |
Read or update a external force json node with the infos.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
force_info | The Info for the sensor. |
force_node | The sensor json node (a JSON_OBJECT). |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
Read or update a external forces list json node with the infos.
mbs_info | The Info for the project. |
forces_node | The sensors json node (a JSON_ARRAY). |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_info_init_and_binderJSON | ( | MbsInfos * | mbs_infos, |
const char * | mbs_json_name, | ||
int | mission | ||
) |
int mbs_info_joint_json_binder | ( | MbsInfoJoint * | mbs_info_joint, |
JsonNode * | node, | ||
int | mission | ||
) |
Read or update the information in joints node to MbsInfoBase, MbsInfoJoints.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
mbs_infos | The MbsInfo structure. |
joints_node | The Json joints node. |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
Read or update the information from root node to all MbsInfo.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
mbs_infos | The MbsInfo structure. |
root_node | The Json node of the base. |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_info_json_linker | ( | MbsInfos * | mbs_info, |
int | mission | ||
) |
int mbs_info_link_json_binder | ( | MbsInfoLink * | mbs_info_link, |
JsonNode * | node, | ||
int | mission | ||
) |
Read or update a link (point to point or 3D) json node with the infos.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
link_info | The Info for the link. |
link_node | The link json node (an object). |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_info_links3d_json_binder | ( | MbsInfoLinks * | mbs_info_links, |
JsonNode * | node, | ||
int | mission | ||
) |
int mbs_info_links_json_binder | ( | MbsInfoLinks * | mbs_info_links, |
JsonNode * | node, | ||
int | mission | ||
) |
Read or update a links list json node with the infos.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
link_info | The Info for the links. |
link_node | The links json node (an array). |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_info_parameter_json_binder | ( | MbsInfoParameter * | mbs_info_parameter, |
JsonNode * | node, | ||
int | mission | ||
) |
Read or update a user model parameter json node with the infos.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
param_info | The Info for the parameter. |
param_node | The node of parameter (a JSON_OBJECT). |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_info_point_json_binder | ( | MbsInfoPoint * | mbs_info_point, |
JsonNode * | node, | ||
int | mission | ||
) |
int mbs_info_point_list_json_binder | ( | MbsInfoPoint *** | point_list, |
JsonNode * | node, | ||
int | mission, | ||
char * | body_name, | ||
int * | n_point | ||
) |
Link between points array value and all "points" key of a Json object node.
Support READER, UPDATER and COUNTER mission.
point_list | pointer to the point list array, the array (point_list[0] can be NULL for READER and COUNTER missions. In case of READER mission, the array is allocated, a warning is printed if the pointer was not NULL; |
node | The Json node being a JSON_OBJECT containing a "points" key. |
mission | The mission, not-implemented mission print a warning but returns success code. |
body_name | The name of the body. |
n_point | The current size of the point list array. It is set during COUNTER and READER mission. It must matche the JSCON_ARRAY size for UPDATER mision |
int mbs_info_ref_point_json_binder | ( | MbsInfoRefPoint * | mbs_info_ref_point, |
JsonNode * | node, | ||
int | mission | ||
) |
int mbs_info_rod_json_binder | ( | MbsInfoRod * | mbs_info_rod, |
JsonNode * | node, | ||
int | mission | ||
) |
Read or update a rod json node with the infos.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
rod_info | The info of the rod. |
rod_node | The json node of the rod (a JSON_OBJECT). |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_info_sensor_json_binder | ( | MbsInfoSensor * | mbs_info_sensor, |
JsonNode * | node, | ||
int | mission | ||
) |
Read or update a sensor json node with the infos.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
sensor_info | The Info for the sensor. |
sensor_node | The sensor json node (a JSON_OBJECT). |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
Read or update a sensors list json node with the infos.
mbs_info | The Info for the project. |
sensors_node | The sensors json node (a JSON_ARRAY). |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_info_solid_json_binder | ( | MbsInfoSolid * | mbs_info_solid, |
JsonNode * | node, | ||
int | mission | ||
) |
Read or update a solid cut json node with the infos.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
solid_info | The info of the solid cut. |
solid_node | The json node of the solid cut (a JSON_OBJECT). |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
Read or update the information from tree node to all MbsInfos.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
mbs_infos | The MbsInfo structure. |
tree_node | The Json node of the tree. |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_info_user_IO_json_binder | ( | MbsInfoUserIO * | mbs_info_user_IO, |
JsonNode * | node, | ||
int | mission | ||
) |
int mbs_info_user_IOs_json_binder | ( | MbsInfoUserIOs * | mbs_info_user_IOs, |
JsonNode * | node, | ||
int | mission | ||
) |
mbs_strcmp((const char*)cur_node->key, "user_variable"))
int mbs_info_user_model_json_binder | ( | MbsInfoUserModel * | mbs_info_user_model, |
JsonNode * | node, | ||
int | mission | ||
) |
Read or update a user model json node with the infos.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
um_info | The Info for the user model. |
um_node | The node of user model (a JSON_OBJECT). |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_info_user_models_json_binder | ( | MbsInfoUserModels * | mbs_info_user_models, |
JsonNode * | node, | ||
int | mission | ||
) |
Read or update the user models list json node with the infos.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
ums_info | The Info for the user models. |
ums_node | The node of users models (a JSON_ARRAY). |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_json_array | ( | JsonNode * | node, |
double ** | tab_ptr, | ||
int * | size, | ||
const char * | key, | ||
int | mission | ||
) |
Link between array (1D) value and the specific key of a Json node or the current node.
node | The Json node containing the targeted value. |
tab_ptr | The memory adress of the pointer to the array (to be read or set). if the pointer (tab_ptr[0]) is NULL and mission is READER a new array is allocated. |
size | The size of the array pointer by tab_ptr (if tab_ptr[0] is not NULL). |
key | The key of the json node to be used (to be read or set), if NULL the node is the array. |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_json_axis | ( | JsonNode * | axis_node, |
int * | axis_int, | ||
int | mission | ||
) |
Read or update the information in an axis node with an integer.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
Reading an unknow axis return a MBS_INFO_WARNING (with default value 0). Setting an unknow axis return a MBS_INFO_FAILURE (as no corresponding string is defined).
axis_node | The Json axis node. |
axis_int | The pointer to the integer corresponding to the axis. |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_json_bool | ( | JsonNode * | node, |
int * | val_ptr, | ||
char * | key, | ||
int | mission | ||
) |
Link between bool value (int) and the specific key of a Json node or the current node.
node | The Json node containing the targeted value. |
val_ptr | The memory containing the bool as integer (to be read or set) |
key | The key of the json node to be used (to be read or set). If null the node is used as target. |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_json_double | ( | JsonNode * | node, |
double * | val_ptr, | ||
char * | key, | ||
int | mission | ||
) |
Link between double value and the specific key of a Json node or the current node.
node | The Json node containing the targeted value. |
val_ptr | The memory containing the double (to be read or set) |
key | The key of the json node to be used (to be read or set). If null the node is used as target. |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_json_get_bool | ( | JsonNode * | node, |
int * | val_ptr | ||
) |
Get the node value content a bool as int.
The function convert the content of the node to double according to the node type. If the node is a JSON_STRING the following value are accepted:
node | The node to whose value must be read. |
val_ptr | The memory where to set the number. |
int mbs_json_get_double | ( | JsonNode * | node, |
double * | val_ptr | ||
) |
Get the node value content a double.
The function convert the content of the node to double according to the node type.
node | The node to whose value must be read. |
val_ptr | The memory where to set the number. |
int mbs_json_get_string | ( | JsonNode * | node, |
char ** | str_ptr | ||
) |
Get the node value content a double.
The function convert the content of the node to double according to the node type.
node | The node to whose value must be read. |
str_ptr | The memory adress of the pointer to the string (to be read or set). |
int mbs_json_inertia | ( | JsonNode * | bdy_node, |
MbsInfoBody * | mbs_info_body, | ||
int | mission | ||
) |
Translate the inertia key of a node from array (3,3) in node to array (6) in info.
Fore READER mission the upper triangle of the inertia matrix is considered. If the matrix was not symmetric warnings are raised.
bdy_node | The Json node containing the body. |
mbs_info_body | The mbs informations body structure. If its intertia pointer is NULL, it will be allocated for READER mission only. |
key | The key of the json node to be used (to be read or set), if NULL the node is the array. |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_json_joint_nature | ( | JsonNode * | nature_node, |
int * | nature_int, | ||
int | mission | ||
) |
Read or update the information in an joint nature node with an integer.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
Reading an unknow joint nature return a MBS_INFO_WARNING (with default value 0). Setting an unknow joint nature return a MBS_INFO_FAILURE (as no corresponding string is defined).
nature_node | The Json nature node. |
nature_int | The pointer to the integer corresponding to the nature. |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_json_set_bool | ( | JsonNode * | node, |
int | value | ||
) |
Set a bool (int) into a node.
The function only accept JSON_BOOL, JSON_NUMBER and JSON_STRING nodes. The function convert the node to a JSON_BOOL.
node | The node to whose value must be set. |
value | The value to be set. |
int mbs_json_set_double | ( | JsonNode * | node, |
double | value | ||
) |
Set a double into a node.
The function only accept JSON_NUMBER and JSON_STRING nodes. In case of JSON_STRING an attempt is done to convert the node to JSON_NUMBER.
node | The node to whose value must be set. |
valule | The value to be set. |
int mbs_json_set_string | ( | JsonNode * | node, |
const char * | string | ||
) |
Set a double into a node.
The function only accept JSON_NUMBER and JSON_STRING nodes. In case of JSON_STRING an attempt is done to convert the node to JSON_NUMBER.
node | The node to whose value must be set. |
string | The pointer to the string to be read. |
int mbs_json_string | ( | JsonNode * | node, |
char ** | str_ptr, | ||
const char * | key, | ||
int | mission, | ||
int | allow_missing | ||
) |
Link between string value and the specific key of a Json node.
node | The Json node containing the targeted value. |
str_ptr | The memory adress of the pointer to the string (to be read or set). |
key | The key of the json node to be used (to be read or set). |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
allow_missing | Flag to disable failure (and message) if the key is missing. The return code is MBS_INFO_WARNING. |
int mbs_json_tab | ( | JsonNode * | node, |
double *** | tab_ptr, | ||
int | size_1, | ||
int | size_2, | ||
const char * | key, | ||
int | mission | ||
) |
Link between array (2D) value and the specific key of a Json node or the current node.
node | The Json node containing the targeted value. |
tab_ptr | The memory adress of the pointer to pointer to the array (to be read or set). if the pointer (tab_ptr[0]) is NULL and mission is READER a new array is allocated will be allocated but memory is NOT contigous. |
size_1 | The size along first axis of the array pointer by tab_ptr (if tab_ptr[0] is not NULL). |
size_2 | The size along second axis of the array pointer by tab_ptr (if tab_ptr[0] is not NULL). |
key | The key of the json node to be used (to be read or set), if NULL the node is the array. |
mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
int mbs_tree_cleaner | ( | MbsInfos * | mbs_info, |
int | mission | ||
) |
Correct the parents of joints.
If a joint (called P) is the parent of a body and at the same time the parent of one (or more) joints (called C) the tree is modified. All joints "C" will have as parent the body origin point.
A failure occurs either if at least one of the followong:
[in,out] | mbs_info | The multibody system. |
[in] | mission | The function only do something with the MBS_INFO_READER value. |