This header includes the functions to bind the JSON information to the MbsInfos structure. More...
#include "mbs_binder_public.h"
#include "json.h"
#include "mbs_load_struct.h"
#include "mbs_saver_struct.h"
Go to the source code of this file.
Functions | |
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... | |
JsonNode * | load_and_create_json (const char *mbs_json_filename, int *err) |
int | mbs_info_json_binder (MbsInfos *mbs_infos, JsonNode *root_node, int mission, int verbose) |
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, int verbose) |
Read or update a user model parameter json node with the infos. More... | |
int | mbs_info_user_model_json_binder (MbsInfoUserModel *um_info, JsonNode *um_node, int mission, int verbose) |
Read or update a user model json node with the infos. More... | |
int | mbs_info_user_models_json_binder (MbsInfoUserModels *ums_info, JsonNode *ums_node, int mission, int verbose) |
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 verbose) |
Read the user Input output variables list json node with the infos. More... | |
int | mbs_info_user_cstr_json_binder (MbsInfoUserCstr *mbs_info_user_cstr, 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, int verbose) |
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) |
To Be Defined. More... | |
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, int verbose) |
Init and bind the MBS information contained in the .json file. More... | |
int | mbs_json_info_to_loader (MbsLoader *mbs_loader, const char *filename) |
Load and store the specified json file into the MbsLoader. More... | |
JsonNode * | mbs_info_init_and_binderJSON_rtn (MbsInfos *mbs_infos, const char *mbs_json_name, int *err, int mission, int verbose) |
Init and bind the MBS information contained in the .json file. More... | |
int | mbs_json_parent (JsonNode *node, MbsInfoRefPoint **point_parent, char **joint_parent, int mission, const char *key) |
Link between a parent infomation and a parent node. More... | |
int | json_is_on_base (JsonNode *parent) |
Check if a parent node (of body or joint) is the base. More... | |
JsonNode * | json_get_basebody (JsonNode *bodies_node, int create, int *err) |
Find the first body linked to the base inside the bodies list. More... | |
JsonNode * | json_get_body (JsonNode *bodies_node, char *body_name, int create, int *err) |
Find the first body with matching name inside the bodies list. More... | |
JsonNode * | json_get_body_3Dshapes (JsonNode *body_node, int create, int *err) |
Return the shapes array on the provided body node. More... | |
JsonNode * | json_get_shape (JsonNode *shapes_node, char *shape_name, char *geometry, int allow_new, int *err) |
Return the shape matching the name and geometry from the given list. More... | |
int | mbs_info_synch_shape (JsonNode *shape, UpdateInline *up_in, UpdateShape *up_sh) |
Synchronize, or fill with default value, a shape Json object node. More... | |
int | mbs_info_update_shapes_json (MbsLoader *mbs_loader, UpdateInline *up_in, UpdateShape *up_sh, int allow_new) |
Update, or create this shape/inline and all next in the linked list. More... | |
This header includes the functions to bind the JSON information to the MbsInfos structure.
Declaration of mbs utilities function for json manipulations.
Find the first body linked to the base inside the bodies list.
NOT IMPLEMENTED: Creation of missing base body.
Invalid members (not a body json node) in the list will be ignored (will not cause error).
[in] | bodies_node | The JSON_ARRAY node containing the list of bodies. |
[in] | create | NOT IMPLEMENTED, a new body linked to the base can be created if none is existing. |
[out] | err | Pointer to error code, NULL can be provided. The error code is MBS_INFO_FAILURE, the success code is MBS_INFO_SUCCESS (macro in mbs_define.h). |
Find the first body with matching name inside the bodies list.
NOT IMPLEMENTED: Creation of missing body.
Invalid members (not a body json node) in the list will be ignored (will not cause error).
[in] | bodies_node | The JSON_ARRAY node containing the list of bodies. |
[in] | body_name | The name of the body. |
[in] | create | NOT IMPLEMENTED, a new body can be created if none is existing. The body mandatory fields (parent...) must be added by the caller as they are not provided as argument of this function. |
[out] | err | Pointer to error code, NULL can be provided. The error code is MBS_INFO_FAILURE, the success code is MBS_INFO_SUCCESS (macro in mbs_define.h). |
Return the shapes array on the provided body node.
[in,out] | body_node | The JSON_OBJECT node containing the body. |
[in] | create | Allow to create missing node(s) in the body. |
[out] | err | Pointer to error code, NULL can be provided. The error code is MBS_INFO_FAILURE, the success code is MBS_INFO_SUCCESS (macro in mbs_define.h). |
JsonNode* json_get_shape | ( | JsonNode * | shapes_node, |
char * | shape_name, | ||
char * | geometry, | ||
int | allow_new, | ||
int * | err | ||
) |
Return the shape matching the name and geometry from the given list.
Invalid members (not a shape json node) in the list will be ignored (will not cause error).
[in,out] | shapes_node | The JSON_ARRAY node containing the list of shape. |
[in] | shape_name | The name of the shape |
[in] | geometry | The name of the geometry, any contents (except NULL) will be considered as valid (no check from a pre-defined set of names). |
[in] | allow_new | Allow to create a new shape in the list if none is matching. Only the shape name and geometry are created, the caller must create other mandatory fields (position...). The function mbs_info_synch_shape() can be used by provinding NULL in both update parameters. The error code is set to MBS_INFO_WARNING. |
[in,out] | err | Pointer to error code (macro in mbs_define.h). NULL can be provided. The values are:
|
int json_is_on_base | ( | JsonNode * | parent | ) |
Check if a parent node (of body or joint) is the base.
A parent is the base if it is a JSON_STRING node whose content is MBS_BASENAME (macro in mbs_define.h).
[in] | parent | The node defining a parent. Invalid node (ie: not a JSON_STRING) will just generate the return associated to "not the base". |
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 | verbose | ||
) |
Init and bind the MBS information contained in the .json file.
It calls mbs_info_init_and_binderJSON_rtn
[in,out] | mbs_infos | The MbsInfos structure, already allocated. |
[in] | mbs_json_name | The filename of the json to be opened. |
[in] | mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
[in] | verbose | Verbosity level, from only errors (MBS_VERBOSE_ERROR) to full verbose (MBS_VERBOSE_DEBUG). |
JsonNode* mbs_info_init_and_binderJSON_rtn | ( | MbsInfos * | mbs_infos, |
const char * | mbs_json_name, | ||
int * | err, | ||
int | mission, | ||
int | verbose | ||
) |
Init and bind the MBS information contained in the .json file.
Returns a newly allocated JsonNode that must be freed by the caller.
[in,out] | mbs_infos | The MbsInfos structure, already allocated. |
[in] | mbs_json_name | The filename of the json to be opened. |
[in,out] | err | The error, MBS_INFO_SUCCESS, MBS_INFO_WARNING or MBS_INFO_FAILURE. |
[in] | mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
[in] | verbose | Verbosity level, from only errors (MBS_VERBOSE_ERROR) to full verbose (MBS_VERBOSE_DEBUG). |
int mbs_info_joint_json_binder | ( | MbsInfoJoint * | mbs_info_joint, |
JsonNode * | node, | ||
int | mission, | ||
int | verbose | ||
) |
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. | |
[in] | verbose | Verbosity level, from only errors (0) to full verbose (2). |
To Be Defined.
mbs_infos | The MbsInfos 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.
[in,out] | mbs_infos | The MbsInfo structure. |
[in,out] | root_node | The Json node of the base. |
[in] | mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
[in] | verbose | Verbosity level, from only errors (MBS_VERBOSE_ERROR) to full verbose (MBS_VERBOSE_DEBUG). |
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, | ||
int | verbose | ||
) |
Read or update a user model parameter json node with the infos.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
[in,out] | param_info | The Info for the parameter. |
[in,out] | param_node | The node of parameter (a JSON_OBJECT). |
[in] | mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
[in] | verbose | Verbosity level, from only errors (MBS_VERBOSE_ERROR) to full verbose (MBS_VERBOSE_DEBUG). |
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.
[in,out] | 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; |
[in,out] | node | The Json node being a JSON_OBJECT containing a "points" key. |
[in] | mission | The mission, not-implemented mission print a warning but returns success code. |
[in] | body_name | The name of the body. |
[in,out] | n_point | The current size of the point list array. It is set during COUNTER and READER mission. It must matche the node "points" JSON_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. |
int mbs_info_synch_shape | ( | JsonNode * | shape, |
UpdateInline * | up_in, | ||
UpdateShape * | up_sh | ||
) |
Synchronize, or fill with default value, a shape Json object node.
Only one of up_in
and up_sh
can be non-NULL. Both up_in
and up_sh
can be NULL, then the shape missing keys are completed.
[in,out] | shape | The shape JSON_OBJECT node. |
[in] | up_in | Provide the INLINE shape modifications to be applied on the Json node. It must be NULL when up_sh is provided. |
[in] | up_sh | Provide the BOX/CYLINDER/SPHERE/CONE shape modifications to be applied on the Json node. It must be NULL when up_in is provided. |
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_update_shapes_json | ( | MbsLoader * | mbs_loader, |
UpdateInline * | up_in, | ||
UpdateShape * | up_sh, | ||
int | allow_new | ||
) |
Update, or create this shape/inline and all next in the linked list.
The UpdateInline or UpdateShape is a linked list, the function will parse all the UpdateInline::next / UpdateShape::next items for updates until reaching the end of the list.
Only the shape or inline can be provided at one call.
[in,out] | mbs_loader | The MbsLoader that contains all informations. |
[in] | up_in | The descriptions of the modification to set on the inline(s). If non-NULL, up_sh must be NULL; |
[in] | up_sh | The descriptions of the modification to set on the shape(s). If non-NULL, up_in must be NULL; |
[in] | allow_new | Allow to create the shape/inline. |
int mbs_info_user_cstr_json_binder | ( | MbsInfoUserCstr * | mbs_info_user_cstr, |
JsonNode * | node, | ||
int | mission | ||
) |
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 | verbose | ||
) |
Read the user Input output variables list json node with the infos.
Non-implemented missions raise a message and return a MBS_INFO_WARNING. The UPDATER mission does nothing, but raises a message if the verbosity level is at least set to MBS_VERBOSE_WARNING.
[out] | mbs_info_user_IOs | The Infos for the user IO variables listing. |
[in] | node | The node named "user_ios" in the multibody node. |
[in] | mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
[in] | verbose | The verbosity option. |
mbs_strcmp((const char*)cur_node->key, "user_variable"))
int mbs_info_user_model_json_binder | ( | MbsInfoUserModel * | um_info, |
JsonNode * | um_node, | ||
int | mission, | ||
int | verbose | ||
) |
Read or update a user model json node with the infos.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
[in,out] | um_info | The Info for the user model. |
[in,out] | um_node | The node of user model (a JSON_OBJECT). |
[in] | mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
[in] | verbose | Verbosity level, from only errors (MBS_VERBOSE_ERROR) to full verbose (MBS_VERBOSE_DEBUG). |
int mbs_info_user_models_json_binder | ( | MbsInfoUserModels * | ums_info, |
JsonNode * | ums_node, | ||
int | mission, | ||
int | verbose | ||
) |
Read or update the user models list json node with the infos.
Non-implemented missions raise a message and return a MBS_INFO_WARNING.
[in,out] | ums_info | The Info for the user models. |
[in,out] | ums_node | The node of users models (a JSON_ARRAY). |
[in] | mission | The mission, implemented are MBS_INFO_READER and MBS_INFO_UPDATER. |
[in] | verbose | Verbosity level, from only errors (MBS_VERBOSE_ERROR) to full verbose (MBS_VERBOSE_DEBUG). |
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_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_info_to_loader | ( | MbsLoader * | mbs_loader, |
const char * | filename | ||
) |
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_parent | ( | JsonNode * | node, |
MbsInfoRefPoint ** | point_parent, | ||
char ** | joint_parent, | ||
int | mission, | ||
const char * | key | ||
) |
Link between a parent infomation and a parent node.
Support READER and UPDATER.
[in,out] | node | The Json node describing a parent. The nature of the node is a JSON_STRING for a joint parent, or a JSON_OBJECT for a point (on a body) parent :
|
[in,out] | point_parent | The description of the parent point. |
[in,out] | joint_parent | The name of the parent joint (or NULL). |
[in] | mission | The mission id. |
[in] | key | The key name of the parent description in the node . |
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. |