Robotran C Documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
mbs_project_fct_ptr.h
Go to the documentation of this file.
1 
2 #ifndef _MBS_PROJECT_FCT_PTR_H_
3 #define _MBS_PROJECT_FCT_PTR_H_
4 
5 #include <stdint.h> // necessary for uint8_t for user_keyboard_ptr
6 #include <stdio.h>
7 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 typedef struct MbsData MbsData;
20 typedef struct MbsSensor MbsSensor;
21 typedef struct MbsDirdyn MbsDirdyn;
22 typedef struct MbsInvdyn MbsInvdyn;
23 typedef struct MbsEquil MbsEquil;
24 typedef struct MbsLoader MbsLoader;
25 
26 typedef double* (*user_JointForces_ptr)(MbsData*, double);
27 typedef void (*user_load_post_ptr)(MbsData *MBSdata, MbsLoader *mbs_loader);
28 typedef void (*user_free_ptr)(MbsData *MBSdata);
29 typedef void (*user_dirdyn_init_ptr)(MbsData *MBSdata, MbsDirdyn *mbs_dd);
30 typedef void (*user_dirdyn_loop_ptr)(MbsData *MBSdata, MbsDirdyn *mbs_dd);
32 typedef void (*user_invdyn_init_ptr)(MbsData *MBSdata, MbsInvdyn *mbs_invd);
33 typedef void (*user_invdyn_loop_ptr)(MbsData *MBSdata, MbsInvdyn *mbs_invd);
34 typedef void (*user_invdyn_finish_ptr)(MbsData*MBSdata, MbsInvdyn* mbs_invd);
35 typedef void (*user_equil_init_ptr)(MbsData *MBSdata, MbsEquil *mbs_equil);
36 typedef void (*user_equil_loop_ptr)(MbsData *MBSdata, MbsEquil *mbs_equil);
38 typedef void (*user_equil_fxe_ptr)(MbsData*, double* f);
39 typedef void (*user_Derivative_ptr)(MbsData *s);
40 typedef void (*user_DrivenJoints_ptr)(MbsData *s, double tsim);
41 typedef void (*user_cons_hJ_ptr)(double *h, double **Jac, MbsData *s, double tsim);
42 typedef void (*user_cons_jdqd_ptr)(double *jdqd, MbsData *s, double tsim);
43 typedef void (*user_cons_J_accelred_ptr)(MbsData* s, double tsim);
44 typedef double (*user_LinkForces_ptr)(double Z, double Zd, MbsData *mbs_data, double tsim, int ilnk);
45 typedef double* (*user_Link3DForces_ptr)(double PxF[4], double RxF[4][4], double VxF[4], double OMxF[4], double AxF[4], double OMPxF[4], MbsData *s, double tsim,int ixF);
46 typedef double* (*user_ExtForces_ptr)(double PxF[4], double RxF[4][4], double VxF[4], double OMxF[4],
47  double AxF[4], double OMPxF[4], MbsData *s, double tsim,int ixF);
48 
49 typedef double (*user_LinkForces_ptr)(double Z, double Zd, MbsData *mbs_data, double tsim, int ilnk);
50 
51 typedef int(*set_mbs_to_output_ptr)(MbsData *mbs_data);
52 
53 typedef double* (*user_JointForces_d_ptr)(MbsData *mbs_data, double tsim, int index);
54 typedef double* (*user_JointForces_dp_ptr)(MbsData* mbs_data, double tsim);
55 typedef double (*user_LinkForces_d_ptr)(double Z, double d_Z, double Zd, double d_Zd,
56  MbsData *mbs_data, double tsim, int i_link, int index);
57 typedef double (*user_LinkForces_dp_ptr)(double Z, double d_Z, double Zd, double d_Zd,
58  MbsData* mbs_data, double tsim, int i_link);
59 typedef double* (*user_Link3DForces_d_ptr)(double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4],
60  double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4],
61  double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4],
62  MbsData* s, double tsim, int i_link3d, int index);
63 typedef double* (*user_Link3DForces_dp_ptr)(double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4],
64  double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4],
65  double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4],
66  MbsData* s, double tsim, int i_link3d);
67 
68 typedef double* (*user_ExtForces_d_ptr)(double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4],
69  double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4],
70  double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4],
71  MbsData *s, double tsim, int i_force, int index);
72 
73 typedef double* (*user_ExtForces_dp_ptr)(double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4],
74  double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4],
75  double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4],
76  MbsData* s, double tsim, int i_force);
77 
78 typedef struct MbsInfos MbsInfos;
79 
80 typedef UserIO* (*mbs_new_user_IO_ptr)(UserIoInfo* ioInfo);
81 typedef UserModel* (*mbs_new_user_model_ptr)();
82 typedef void (*mbs_delete_user_model_ptr)(UserModel* ums);
83 typedef void (*mbs_delete_user_IO_ptr)(UserIO *uvs);
84 typedef void (*mbs_get_user_IO_size_ptr)(int *n_in, int *n_out, int *n_user_IO);
85 typedef void (*mbs_get_user_model_size_ptr)(int *n_usr_model);
86 typedef void (*mbs_get_user_model_list_ptr)(int *user_model_list);
87 typedef void (*mbs_load_user_model_ptr)(MbsInfos* mbs_infos, UserModel* ums);
88 typedef void (*mbs_bind_user_model_ptr)(MbsInfos* mbs_infos, UserModel* ums);
89 typedef void (*mbs_print_user_model_ptr)(UserModel* ums, FILE *fs);
90 typedef void (*mbs_save_um_ptr)(FILE* stream, UserModel* ums);
91 typedef void (*mbs_print_user_IO_ptr)(UserIO *uio);
92 typedef void (*mbs_save_user_IO_ptr)(FILE* stream, UserIO *uio);
93 
94 
95 typedef struct Realtime_option Realtime_option;
96 typedef void (*user_realtime_options_ptr)(MbsData* mbs_data, Realtime_option *options);
97 typedef struct Simu_realtime Simu_realtime;
98 typedef uint8_t Uint8; // copied from sdl header
99 typedef void (*user_keyboard_ptr)(MbsData* mbs_data, Simu_realtime *realtime, int cur_t_usec, const Uint8 *keystates);
100 typedef void (*user_realtime_plot_ptr)(MbsData* mbs_data);
101 typedef void (*user_joystick_axes_ptr)(MbsData* mbs_data, Simu_realtime *realtime, int nb_joysticks);
102 typedef void (*user_joystick_buttons_ptr)(MbsData* mbs_data, int buttonID);
103 typedef void (*user_realtime_visu_ptr)(MbsData* mbs_data, int nb_models, int *nb_q, double **q_vec);
104 
105 typedef void (*mbs_link_ptr)(double **frc,double **trq,double *Flnk,double *Z,double *Zd,MbsData *s, double tsim);
106 typedef void (*mbs_link3D_ptr)(double **frc,double **trq, MbsData *s, double tsim);
107 typedef void (*mbs_extforces_ptr)(double **frc, double **trq, MbsData *s, double tsim);
108 typedef int (*mbs_accelred_ptr)(MbsData *s, double tsim);
109 typedef void (*mbs_dirdyna_ptr)(double **M,double *c, MbsData *s, double tsim);
110 typedef void (*mbs_invdyna_ptr)(double *Q, MbsData *s, double tsim);
111 typedef void (*mbs_cons_hJ_ptr)(double *h,double **Jac,MbsData *s, double tsim);
112 typedef void (*mbs_cons_jdqd_ptr)(double *Jdqd,MbsData *s, double tsim);
113 typedef void (*mbs_sensor_ptr)(MbsSensor *sens, MbsData *s, int isens);
114 typedef void (*mbs_gensensor_ptr)(MbsSensor *sens, MbsData *s, int isens);
115 typedef int (*mbs_checksymb_ptr)(MbsData *s);
116 typedef void (*mbs_invdynared_d_ptr)(MbsData *s, double tsim);
117 
118 #ifdef __cplusplus
119 }
120 #endif
121 
122 #endif
mbs_link_ptr
void(* mbs_link_ptr)(double **frc, double **trq, double *Flnk, double *Z, double *Zd, MbsData *s, double tsim)
Definition: mbs_project_fct_ptr.h:105
mbs_print_user_IO_ptr
void(* mbs_print_user_IO_ptr)(UserIO *uio)
Definition: mbs_project_fct_ptr.h:91
set_mbs_to_output_ptr
int(* set_mbs_to_output_ptr)(MbsData *mbs_data)
Definition: mbs_project_fct_ptr.h:51
mbs_delete_user_IO_ptr
void(* mbs_delete_user_IO_ptr)(UserIO *uvs)
Definition: mbs_project_fct_ptr.h:83
user_realtime_options_ptr
void(* user_realtime_options_ptr)(MbsData *mbs_data, Realtime_option *options)
Definition: mbs_project_fct_ptr.h:96
Realtime_option
user real-time option
Definition: mbs_realtime_struct.h:86
mbs_link3D_ptr
void(* mbs_link3D_ptr)(double **frc, double **trq, MbsData *s, double tsim)
Definition: mbs_project_fct_ptr.h:106
UserModel
Definition: user_model.h:24
user_LinkForces_d_ptr
double(* user_LinkForces_d_ptr)(double Z, double d_Z, double Zd, double d_Zd, MbsData *mbs_data, double tsim, int i_link, int index)
Definition: mbs_project_fct_ptr.h:55
user_realtime_plot_ptr
void(* user_realtime_plot_ptr)(MbsData *mbs_data)
Definition: mbs_project_fct_ptr.h:100
MbsInvdyn
General structure of the inverse dynamics module.
Definition: mbs_invdyn_struct.h:27
user_invdyn_finish_ptr
void(* user_invdyn_finish_ptr)(MbsData *MBSdata, MbsInvdyn *mbs_invd)
Definition: mbs_project_fct_ptr.h:34
mbs_save_um_ptr
void(* mbs_save_um_ptr)(FILE *stream, UserModel *ums)
Definition: mbs_project_fct_ptr.h:90
UserIoInfo
Contains information about UserIO.
Definition: mbs_user_interface.h:32
mbs_dirdyna_ptr
void(* mbs_dirdyna_ptr)(double **M, double *c, MbsData *s, double tsim)
Definition: mbs_project_fct_ptr.h:109
mbs_checksymb_ptr
int(* mbs_checksymb_ptr)(MbsData *s)
Definition: mbs_project_fct_ptr.h:115
mbs_delete_user_model_ptr
void(* mbs_delete_user_model_ptr)(UserModel *ums)
Definition: mbs_project_fct_ptr.h:82
mbs_save_user_IO_ptr
void(* mbs_save_user_IO_ptr)(FILE *stream, UserIO *uio)
Definition: mbs_project_fct_ptr.h:92
mbs_accelred_ptr
int(* mbs_accelred_ptr)(MbsData *s, double tsim)
Definition: mbs_project_fct_ptr.h:108
UserIO
Definition: user_IO.h:25
MbsInfos
Definition: mbs_infos_struct.h:425
mbs_extforces_ptr
void(* mbs_extforces_ptr)(double **frc, double **trq, MbsData *s, double tsim)
Definition: mbs_project_fct_ptr.h:107
user_cons_hJ_ptr
void(* user_cons_hJ_ptr)(double *h, double **Jac, MbsData *s, double tsim)
Definition: mbs_project_fct_ptr.h:41
user_joystick_buttons_ptr
void(* user_joystick_buttons_ptr)(MbsData *mbs_data, int buttonID)
Definition: mbs_project_fct_ptr.h:102
user_keyboard_ptr
void(* user_keyboard_ptr)(MbsData *mbs_data, Simu_realtime *realtime, int cur_t_usec, const Uint8 *keystates)
Definition: mbs_project_fct_ptr.h:99
MbsEquil
Definition: mbs_equil_struct.h:103
mbs_load_user_model_ptr
void(* mbs_load_user_model_ptr)(MbsInfos *mbs_infos, UserModel *ums)
Definition: mbs_project_fct_ptr.h:87
user_cons_J_accelred_ptr
void(* user_cons_J_accelred_ptr)(MbsData *s, double tsim)
Definition: mbs_project_fct_ptr.h:43
user_LinkForces_ptr
double(* user_LinkForces_ptr)(double Z, double Zd, MbsData *mbs_data, double tsim, int ilnk)
Definition: mbs_project_fct_ptr.h:44
user_Derivative_ptr
void(* user_Derivative_ptr)(MbsData *s)
Definition: mbs_project_fct_ptr.h:39
MbsLoader
Definition: mbs_load_struct.h:93
Uint8
uint8_t Uint8
Definition: mbs_project_fct_ptr.h:98
mbs_invdynared_d_ptr
void(* mbs_invdynared_d_ptr)(MbsData *s, double tsim)
Definition: mbs_project_fct_ptr.h:116
user_realtime_visu_ptr
void(* user_realtime_visu_ptr)(MbsData *mbs_data, int nb_models, int *nb_q, double **q_vec)
Definition: mbs_project_fct_ptr.h:103
user_DrivenJoints_ptr
void(* user_DrivenJoints_ptr)(MbsData *s, double tsim)
Definition: mbs_project_fct_ptr.h:40
user_invdyn_init_ptr
void(* user_invdyn_init_ptr)(MbsData *MBSdata, MbsInvdyn *mbs_invd)
Definition: mbs_project_fct_ptr.h:32
mbs_cons_hJ_ptr
void(* mbs_cons_hJ_ptr)(double *h, double **Jac, MbsData *s, double tsim)
Definition: mbs_project_fct_ptr.h:111
mbs_cons_jdqd_ptr
void(* mbs_cons_jdqd_ptr)(double *Jdqd, MbsData *s, double tsim)
Definition: mbs_project_fct_ptr.h:112
Simu_realtime::tsim
double tsim
current simulation time [s]
Definition: mbs_realtime_struct.h:148
mbs_bind_user_model_ptr
void(* mbs_bind_user_model_ptr)(MbsInfos *mbs_infos, UserModel *ums)
Definition: mbs_project_fct_ptr.h:88
user_invdyn_loop_ptr
void(* user_invdyn_loop_ptr)(MbsData *MBSdata, MbsInvdyn *mbs_invd)
Definition: mbs_project_fct_ptr.h:33
user_LinkForces_dp_ptr
double(* user_LinkForces_dp_ptr)(double Z, double d_Z, double Zd, double d_Zd, MbsData *mbs_data, double tsim, int i_link)
Definition: mbs_project_fct_ptr.h:57
mbs_get_user_model_size_ptr
void(* mbs_get_user_model_size_ptr)(int *n_usr_model)
Definition: mbs_project_fct_ptr.h:85
user_cons_jdqd_ptr
void(* user_cons_jdqd_ptr)(double *jdqd, MbsData *s, double tsim)
Definition: mbs_project_fct_ptr.h:42
user_equil_finish_ptr
void(* user_equil_finish_ptr)(MbsData *, MbsEquil *)
Definition: mbs_project_fct_ptr.h:37
MbsData
Definition: mbs_data.h:247
Simu_realtime
real-time structure
Definition: mbs_realtime_struct.h:133
user_equil_loop_ptr
void(* user_equil_loop_ptr)(MbsData *MBSdata, MbsEquil *mbs_equil)
Definition: mbs_project_fct_ptr.h:36
MbsSensor
Definition: mbs_sensor_struct.h:18
user_dirdyn_loop_ptr
void(* user_dirdyn_loop_ptr)(MbsData *MBSdata, MbsDirdyn *mbs_dd)
Definition: mbs_project_fct_ptr.h:30
user_dirdyn_finish_ptr
void(* user_dirdyn_finish_ptr)(MbsData *, MbsDirdyn *)
Definition: mbs_project_fct_ptr.h:31
mbs_invdyna_ptr
void(* mbs_invdyna_ptr)(double *Q, MbsData *s, double tsim)
Definition: mbs_project_fct_ptr.h:110
user_equil_fxe_ptr
void(* user_equil_fxe_ptr)(MbsData *, double *f)
Definition: mbs_project_fct_ptr.h:38
user_joystick_axes_ptr
void(* user_joystick_axes_ptr)(MbsData *mbs_data, Simu_realtime *realtime, int nb_joysticks)
Definition: mbs_project_fct_ptr.h:101
mbs_get_user_IO_size_ptr
void(* mbs_get_user_IO_size_ptr)(int *n_in, int *n_out, int *n_user_IO)
Definition: mbs_project_fct_ptr.h:84
mbs_gensensor_ptr
void(* mbs_gensensor_ptr)(MbsSensor *sens, MbsData *s, int isens)
Definition: mbs_project_fct_ptr.h:114
mbs_get_user_model_list_ptr
void(* mbs_get_user_model_list_ptr)(int *user_model_list)
Definition: mbs_project_fct_ptr.h:86
user_free_ptr
void(* user_free_ptr)(MbsData *MBSdata)
Definition: mbs_project_fct_ptr.h:28
MbsDirdyn
General structure of the direct dynamic module.
Definition: mbs_dirdyn_struct.h:210
user_equil_init_ptr
void(* user_equil_init_ptr)(MbsData *MBSdata, MbsEquil *mbs_equil)
Definition: mbs_project_fct_ptr.h:35
mbs_sensor_ptr
void(* mbs_sensor_ptr)(MbsSensor *sens, MbsData *s, int isens)
Definition: mbs_project_fct_ptr.h:113
user_dirdyn_init_ptr
void(* user_dirdyn_init_ptr)(MbsData *MBSdata, MbsDirdyn *mbs_dd)
Definition: mbs_project_fct_ptr.h:29
mbs_print_user_model_ptr
void(* mbs_print_user_model_ptr)(UserModel *ums, FILE *fs)
Definition: mbs_project_fct_ptr.h:89
user_load_post_ptr
void(* user_load_post_ptr)(MbsData *MBSdata, MbsLoader *mbs_loader)
Definition: mbs_project_fct_ptr.h:27