| 1 | /* |
|---|
| 2 | * Copyright (C) 2011 Department of Robotics Brain and Cognitive Sciences - Istituto Italiano di Tecnologia |
|---|
| 3 | * Author: Marco Accame |
|---|
| 4 | * email: marco.accame@iit.it |
|---|
| 5 | * website: www.robotcub.org |
|---|
| 6 | * Permission is granted to copy, distribute, and/or modify this program |
|---|
| 7 | * under the terms of the GNU General Public License, version 2 or any |
|---|
| 8 | * later version published by the Free Software Foundation. |
|---|
| 9 | * |
|---|
| 10 | * A copy of the license can be found at |
|---|
| 11 | * http://www.robotcub.org/icub/license/gpl.txt |
|---|
| 12 | * |
|---|
| 13 | * This program is distributed in the hope that it will be useful, but |
|---|
| 14 | * WITHOUT ANY WARRANTY; without even the implied warranty of |
|---|
| 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
|---|
| 16 | * Public License for more details |
|---|
| 17 | */ |
|---|
| 18 | |
|---|
| 19 | // - include guard ---------------------------------------------------------------------------------------------------- |
|---|
| 20 | |
|---|
| 21 | #ifndef _EOCFG_NVSEP_MC_LEFTLEG_CON_H_ |
|---|
| 22 | #define _EOCFG_NVSEP_MC_LEFTLEG_CON_H_ |
|---|
| 23 | |
|---|
| 24 | |
|---|
| 25 | |
|---|
| 26 | |
|---|
| 27 | /** @file eOcfg_nvsEP_mc_leftleg_con.h |
|---|
| 28 | @brief This header file gives the constant configuration for the NVs in the endpoint left leg |
|---|
| 29 | @author marco.accame@iit.it |
|---|
| 30 | @date 04/05/2012 |
|---|
| 31 | **/ |
|---|
| 32 | |
|---|
| 33 | /** @defgroup eo_asfdgr234 Configuation of the NVs for the updater |
|---|
| 34 | Tcecece |
|---|
| 35 | |
|---|
| 36 | @{ |
|---|
| 37 | **/ |
|---|
| 38 | |
|---|
| 39 | |
|---|
| 40 | |
|---|
| 41 | // - external dependencies -------------------------------------------------------------------------------------------- |
|---|
| 42 | |
|---|
| 43 | #include "EOconstvector.h" |
|---|
| 44 | #include "EOarray.h" |
|---|
| 45 | #include "EOnv.h" |
|---|
| 46 | |
|---|
| 47 | #include "EoMotionControl.h" |
|---|
| 48 | #include "eOcfg_nvsEP_mc_any_con_bodypart.h" |
|---|
| 49 | #include "eOcfg_nvsEP_mc_any_con_jxx.h" |
|---|
| 50 | #include "eOcfg_nvsEP_mc_any_con_mxx.h" |
|---|
| 51 | |
|---|
| 52 | |
|---|
| 53 | |
|---|
| 54 | // - public #define -------------------------------------------------------------------------------------------------- |
|---|
| 55 | |
|---|
| 56 | #define EOK_cfg_nvsEP_mc_leftleg_NUMofJOINTS (6) |
|---|
| 57 | #define EOK_cfg_nvsEP_mc_leftleg_NUMofMOTORS (6) |
|---|
| 58 | |
|---|
| 59 | |
|---|
| 60 | // the 16bit value to use to identify the endpoint |
|---|
| 61 | #define EOK_cfg_nvsEP_mc_leftleg_EP (0x0010) |
|---|
| 62 | |
|---|
| 63 | // the total number of nv in the endpoint |
|---|
| 64 | #define EOK_cfg_nvsEP_leftleg_NUMofVARS ((EOK_cfg_nvsEP_mc_any_con_jxx_jnvindex_TOTALnumber*EOK_cfg_nvsEP_mc_leftleg_NUMofJOINTS)+(EOK_cfg_nvsEP_mc_any_con_mxx_mnvindex_TOTALnumber*EOK_cfg_nvsEP_mc_leftleg_NUMofMOTORS)) |
|---|
| 65 | |
|---|
| 66 | #if 0 |
|---|
| 67 | #warning --> so far we prefer using the names coming from eOcfg_nvsEP_mc_any_con_bodypart.h, however we could add in here more specific names for the kneee, ankle, etc. |
|---|
| 68 | // the 16bit used to identify the network variable inside the endpoint. they are function of the joint or motor number (jth or mth) |
|---|
| 69 | #define EOK_cfg_nvsEP_mc_leftleg_NVID_jconfig(jth) EOK_cfg_nvsEP_mc_any_con_bodypart_NVID_jxx_jconfig(jth) |
|---|
| 70 | #define EOK_cfg_nvsEP_mc_leftleg_NVID_jconfig__pidposition(jth) EOK_cfg_nvsEP_mc_any_con_bodypart_NVID_jxx_jconfig__pidposition(jth) |
|---|
| 71 | #define EOK_cfg_nvsEP_mc_leftleg_NVID_jconfig__pidvelocity(jth) EOK_cfg_nvsEP_mc_any_con_bodypart_NVID_jxx_jconfig__pidvelocity(jth) |
|---|
| 72 | #define EOK_cfg_nvsEP_mc_leftleg_NVID_jconfig__pidtorque(jth) EOK_cfg_nvsEP_mc_any_con_bodypart_NVID_jxx_jconfig__pidtorque(jth) |
|---|
| 73 | #define EOK_cfg_nvsEP_mc_leftleg_NVID_jconfig__minpositionofjoint(jth) EOK_cfg_nvsEP_mc_any_con_bodypart_NVID_jxx_jconfig__minpositionofjoint(jth) |
|---|
| 74 | #define EOK_cfg_nvsEP_mc_leftleg_NVID_jconfig__maxpositionofjoint(jth) EOK_cfg_nvsEP_mc_any_con_bodypart_NVID_jxx_jconfig__maxpositionofjoint(jth) |
|---|
| 75 | #define EOK_cfg_nvsEP_mc_leftleg_NVID_jconfig__velocitysetpointtimeout(jth) EOK_cfg_nvsEP_mc_any_con_bodypart_NVID_jxx_jconfig__velocitysetpointtimeout(jth) |
|---|
| 76 | #define EOK_cfg_nvsEP_mc_leftleg_NVID_jconfig__upto02descrforchameleon02(jth) EOK_cfg_nvsEP_mc_any_con_bodypart_NVID_jxx_jconfig__upto02descrforchameleon02(jth) |
|---|
| 77 | #define EOK_cfg_nvsEP_mc_leftleg_NVID__jstatus(jth) EOK_cfg_nvsEP_mc_any_con_bodypart_NVID_jxx__jstatus(jth) |
|---|
| 78 | #define EOK_cfg_nvsEP_mc_leftleg_NVID__calibrator(jth) EOK_cfg_nvsEP_mc_any_con_bodypart_NVID_jxx__calibrator(jth) |
|---|
| 79 | #define EOK_cfg_nvsEP_mc_leftleg_NVID__setpoint(jth) EOK_cfg_nvsEP_mc_any_con_bodypart_NVID_jxx__setpoint(jth) |
|---|
| 80 | #define EOK_cfg_nvsEP_mc_leftleg_NVID__controlmode(jth) EOK_cfg_nvsEP_mc_any_con_bodypart_NVID_jxx__controlmode(jth) |
|---|
| 81 | #endif |
|---|
| 82 | |
|---|
| 83 | |
|---|
| 84 | |
|---|
| 85 | |
|---|
| 86 | // - declaration of public user-defined types ------------------------------------------------------------------------- |
|---|
| 87 | |
|---|
| 88 | |
|---|
| 89 | |
|---|
| 90 | // - very important information: on ARM alignment is done using "#pragma pack(8)", thus ... there are rules to follow |
|---|
| 91 | |
|---|
| 92 | typedef struct |
|---|
| 93 | { |
|---|
| 94 | eOmc_joint_t joints[EOK_cfg_nvsEP_mc_leftleg_NUMofJOINTS]; |
|---|
| 95 | eOmc_motor_t motors[EOK_cfg_nvsEP_mc_leftleg_NUMofMOTORS]; |
|---|
| 96 | } eo_cfg_nvsEP_mc_leftleg_t; EO_VERIFYsizeof(eo_cfg_nvsEP_mc_leftleg_t, 864); |
|---|
| 97 | |
|---|
| 98 | |
|---|
| 99 | // - declaration of extern public variables, ... but better using use _get/_set instead ------------------------------- |
|---|
| 100 | |
|---|
| 101 | //extern const eo_cfg_nvsEP_mc_leftleg_t eo_cfg_nvsEP_mc_leftleg_default; |
|---|
| 102 | |
|---|
| 103 | // EOconstvector where each element is a EOtreenode whose data field is a EOnv_con_t object (id, capacity, valuedef, offset) |
|---|
| 104 | extern const EOconstvector* const eo_cfg_nvsEP_mc_leftleg_constvector_of_treenodes_EOnv_con; |
|---|
| 105 | |
|---|
| 106 | // if not NULL it contains a mapping from IDs to index inside eo_cfg_nvsEP_mc_leftleg_constvector_of_treenodes_EOnv_con |
|---|
| 107 | extern const eOuint16_fp_uint16_t eo_cfg_nvsEP_mc_leftleg_fptr_hashfunction_id2index; |
|---|
| 108 | |
|---|
| 109 | |
|---|
| 110 | |
|---|
| 111 | // - declaration of extern public functions --------------------------------------------------------------------------- |
|---|
| 112 | |
|---|
| 113 | extern uint16_t eo_cfg_nvsEP_mc_leftleg_hashfunction_id2index(uint16_t id); |
|---|
| 114 | |
|---|
| 115 | |
|---|
| 116 | |
|---|
| 117 | |
|---|
| 118 | |
|---|
| 119 | /** @} |
|---|
| 120 | end of group eo_asfdgr234 |
|---|
| 121 | **/ |
|---|
| 122 | |
|---|
| 123 | #endif // include-guard |
|---|
| 124 | |
|---|
| 125 | |
|---|
| 126 | // - end-of-file (leave a blank line after)---------------------------------------------------------------------------- |
|---|
| 127 | |
|---|
| 128 | |
|---|
| 129 | |
|---|
| 130 | |
|---|
| 131 | |
|---|
| 132 | |
|---|
| 133 | |
|---|