merged add-ax5100 into ms300
This commit is contained in:
@@ -37,11 +37,19 @@
|
||||
#include "lcec_el70x1.h"
|
||||
#include "lcec_el7411.h"
|
||||
|
||||
typedef enum {
|
||||
MODPARAM_TYPE_BIT,
|
||||
MODPARAM_TYPE_U32,
|
||||
MODPARAM_TYPE_S32,
|
||||
MODPARAM_TYPE_FLOAT,
|
||||
MODPARAM_TYPE_STRING
|
||||
} LCEC_CONF_MODPARAM_TYPE_T;
|
||||
|
||||
|
||||
typedef struct {
|
||||
const char *name;
|
||||
int id;
|
||||
hal_type_t type;
|
||||
int pdoMappingCount;
|
||||
LCEC_CONF_MODPARAM_TYPE_T type;
|
||||
} LCEC_CONF_MODPARAM_DESC_T;
|
||||
|
||||
typedef struct {
|
||||
@@ -56,13 +64,15 @@ typedef struct {
|
||||
} LCEC_CONF_HAL_T;
|
||||
|
||||
static const LCEC_CONF_MODPARAM_DESC_T slaveStMDS5kParams[] = {
|
||||
{ "isMultiturn", LCEC_STMDS5K_PARAM_MULTITURN, HAL_BIT, 0 } ,
|
||||
{ "extEnc", LCEC_STMDS5K_PARAM_EXTENC, HAL_U32, LCEC_STMDS5K_EXTINC_PDOS } ,
|
||||
{ "isMultiturn", LCEC_STMDS5K_PARAM_MULTITURN, MODPARAM_TYPE_BIT } ,
|
||||
{ "extEnc", LCEC_STMDS5K_PARAM_EXTENC, MODPARAM_TYPE_U32 } ,
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
static const LCEC_CONF_MODPARAM_DESC_T slaveEL6900Params[] = {
|
||||
{ "fsoeSlaveIdx", LCEC_EL6900_PARAM_SLAVEID, HAL_U32, LCEC_EL6900_PARAM_SLAVEID_PDOS } ,
|
||||
{ "fsoeSlaveIdx", LCEC_EL6900_PARAM_SLAVEID, MODPARAM_TYPE_U32 } ,
|
||||
{ "stdInName", LCEC_EL6900_PARAM_STDIN_NAME, MODPARAM_TYPE_STRING } ,
|
||||
{ "stdOutName", LCEC_EL6900_PARAM_STDOUT_NAME, MODPARAM_TYPE_STRING } ,
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
@@ -116,6 +126,7 @@ static const LCEC_CONF_TYPELIST_T slaveTypes[] = {
|
||||
{ "generic", lcecSlaveTypeGeneric, NULL },
|
||||
|
||||
// AX5000 servo drives
|
||||
{ "AX5112", lcecSlaveTypeAX5112, NULL },
|
||||
{ "AX5203", lcecSlaveTypeAX5203, NULL },
|
||||
{ "AX5206", lcecSlaveTypeAX5206, NULL },
|
||||
|
||||
@@ -249,6 +260,7 @@ static const LCEC_CONF_TYPELIST_T slaveTypes[] = {
|
||||
{ "EL1918_LOGIC", lcecSlaveTypeEL1918_LOGIC, slaveEL1918_LOGICParams },
|
||||
{ "EL1904", lcecSlaveTypeEL1904, NULL },
|
||||
{ "EL2904", lcecSlaveTypeEL2904, NULL },
|
||||
{ "AX5805", lcecSlaveTypeAX5805, NULL },
|
||||
|
||||
// multi axis interface
|
||||
{ "EM7004", lcecSlaveTypeEM7004, NULL },
|
||||
@@ -1477,7 +1489,7 @@ static void parseModParamAttrs(LCEC_CONF_XML_INST_T *inst, int next, const char
|
||||
// try to parse value
|
||||
char *s = NULL;
|
||||
switch (modParams->type) {
|
||||
case HAL_BIT:
|
||||
case MODPARAM_TYPE_BIT:
|
||||
if ((strcmp("1", pval) == 0) || (strcasecmp("TRUE", pval) == 0)) {
|
||||
p->value.bit = 1;
|
||||
} else if ((strcmp("0", pval) == 0) || (strcasecmp("FALSE", pval)) == 0) {
|
||||
@@ -1488,7 +1500,8 @@ static void parseModParamAttrs(LCEC_CONF_XML_INST_T *inst, int next, const char
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case HAL_U32:
|
||||
|
||||
case MODPARAM_TYPE_U32:
|
||||
p->value.u32 = strtoul(pval, &s, 0);
|
||||
if (*s != 0) {
|
||||
fprintf(stderr, "%s: ERROR: Invalid modParam u32 value '%s' for param '%s'\n", modname, pval, pname);
|
||||
@@ -1496,7 +1509,8 @@ static void parseModParamAttrs(LCEC_CONF_XML_INST_T *inst, int next, const char
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case HAL_S32:
|
||||
|
||||
case MODPARAM_TYPE_S32:
|
||||
p->value.s32 = strtol(pval, &s, 0);
|
||||
if (*s != 0) {
|
||||
fprintf(stderr, "%s: ERROR: Invalid modParam s32 value '%s' for param '%s'\n", modname, pval, pname);
|
||||
@@ -1504,7 +1518,8 @@ static void parseModParamAttrs(LCEC_CONF_XML_INST_T *inst, int next, const char
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case HAL_FLOAT:
|
||||
|
||||
case MODPARAM_TYPE_FLOAT:
|
||||
p->value.flt = strtod(pval, &s);
|
||||
if (*s != 0) {
|
||||
fprintf(stderr, "%s: ERROR: Invalid modParam float value '%s' for param '%s'\n", modname, pval, pname);
|
||||
@@ -1512,12 +1527,16 @@ static void parseModParamAttrs(LCEC_CONF_XML_INST_T *inst, int next, const char
|
||||
return;
|
||||
}
|
||||
break;
|
||||
|
||||
case MODPARAM_TYPE_STRING:
|
||||
strncpy(p->value.str, pval, LCEC_CONF_STR_MAXLEN - 1);
|
||||
break;
|
||||
|
||||
default:
|
||||
p->value.u32 = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
(state->currSlave->pdoMappingCount) += modParams->pdoMappingCount;
|
||||
(state->currSlave->modParamCount)++;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user