- moved fsoeConf initialization to slave preinit function

This commit is contained in:
Sascha Ittner
2019-03-20 18:03:15 +01:00
parent c80964ca5b
commit e18a7d036e
11 changed files with 179 additions and 132 deletions

View File

@@ -53,7 +53,6 @@ typedef struct {
const char *name;
LCEC_SLAVE_TYPE_T type;
const LCEC_CONF_MODPARAM_DESC_T *modParams;
const LCEC_CONF_FSOE_T *fsoeConf;
} LCEC_CONF_TYPELIST_T;
typedef struct {
@@ -67,24 +66,6 @@ static const LCEC_CONF_MODPARAM_DESC_T slaveStMDS5kParams[] = {
{ NULL }
};
static const LCEC_CONF_FSOE_T slaveEL1904FsoeConf = {
.slave_data_len = 1,
.master_data_len = 1,
.data_channels = 1
};
static const LCEC_CONF_FSOE_T slaveEL2904FsoeConf = {
.slave_data_len = 1,
.master_data_len = 1,
.data_channels = 1
};
static const LCEC_CONF_FSOE_T slaveAX5805FsoeConf = {
.slave_data_len = 2,
.master_data_len = 2,
.data_channels = 2
};
static const LCEC_CONF_MODPARAM_DESC_T slaveEL6900Params[] = {
{ "fsoeSlaveIdx", LCEC_EL6900_PARAM_SLAVEID, MODPARAM_TYPE_U32 } ,
{ "stdInName", LCEC_EL6900_PARAM_STDIN_NAME, MODPARAM_TYPE_STRING } ,
@@ -94,134 +75,134 @@ static const LCEC_CONF_MODPARAM_DESC_T slaveEL6900Params[] = {
static const LCEC_CONF_TYPELIST_T slaveTypes[] = {
// bus coupler
{ "EK1100", lcecSlaveTypeEK1100, NULL, NULL },
{ "EK1100", lcecSlaveTypeEK1100, NULL },
// generic device
{ "generic", lcecSlaveTypeGeneric, NULL, NULL },
{ "generic", lcecSlaveTypeGeneric, NULL },
// AX5000 servo drives
{ "AX5203", lcecSlaveTypeAX5203, NULL, NULL },
{ "AX5206", lcecSlaveTypeAX5206, NULL, NULL },
{ "AX5203", lcecSlaveTypeAX5203, NULL },
{ "AX5206", lcecSlaveTypeAX5206, NULL },
// digital in
{ "EL1002", lcecSlaveTypeEL1002, NULL, NULL },
{ "EL1004", lcecSlaveTypeEL1004, NULL, NULL },
{ "EL1008", lcecSlaveTypeEL1008, NULL, NULL },
{ "EL1012", lcecSlaveTypeEL1012, NULL, NULL },
{ "EL1014", lcecSlaveTypeEL1014, NULL, NULL },
{ "EL1018", lcecSlaveTypeEL1018, NULL, NULL },
{ "EL1024", lcecSlaveTypeEL1024, NULL, NULL },
{ "EL1034", lcecSlaveTypeEL1034, NULL, NULL },
{ "EL1084", lcecSlaveTypeEL1084, NULL, NULL },
{ "EL1088", lcecSlaveTypeEL1088, NULL, NULL },
{ "EL1094", lcecSlaveTypeEL1094, NULL, NULL },
{ "EL1098", lcecSlaveTypeEL1098, NULL, NULL },
{ "EL1104", lcecSlaveTypeEL1104, NULL, NULL },
{ "EL1114", lcecSlaveTypeEL1114, NULL, NULL },
{ "EL1124", lcecSlaveTypeEL1124, NULL, NULL },
{ "EL1134", lcecSlaveTypeEL1134, NULL, NULL },
{ "EL1144", lcecSlaveTypeEL1144, NULL, NULL },
{ "EL1252", lcecSlaveTypeEL1252, NULL, NULL },
{ "EL1808", lcecSlaveTypeEL1808, NULL, NULL },
{ "EL1809", lcecSlaveTypeEL1809, NULL, NULL },
{ "EL1002", lcecSlaveTypeEL1002, NULL },
{ "EL1004", lcecSlaveTypeEL1004, NULL },
{ "EL1008", lcecSlaveTypeEL1008, NULL },
{ "EL1012", lcecSlaveTypeEL1012, NULL },
{ "EL1014", lcecSlaveTypeEL1014, NULL },
{ "EL1018", lcecSlaveTypeEL1018, NULL },
{ "EL1024", lcecSlaveTypeEL1024, NULL },
{ "EL1034", lcecSlaveTypeEL1034, NULL },
{ "EL1084", lcecSlaveTypeEL1084, NULL },
{ "EL1088", lcecSlaveTypeEL1088, NULL },
{ "EL1094", lcecSlaveTypeEL1094, NULL },
{ "EL1098", lcecSlaveTypeEL1098, NULL },
{ "EL1104", lcecSlaveTypeEL1104, NULL },
{ "EL1114", lcecSlaveTypeEL1114, NULL },
{ "EL1124", lcecSlaveTypeEL1124, NULL },
{ "EL1134", lcecSlaveTypeEL1134, NULL },
{ "EL1144", lcecSlaveTypeEL1144, NULL },
{ "EL1252", lcecSlaveTypeEL1252, NULL },
{ "EL1808", lcecSlaveTypeEL1808, NULL },
{ "EL1809", lcecSlaveTypeEL1809, NULL },
// digital out
{ "EL2002", lcecSlaveTypeEL2002, NULL, NULL },
{ "EL2004", lcecSlaveTypeEL2004, NULL, NULL },
{ "EL2008", lcecSlaveTypeEL2008, NULL, NULL },
{ "EL2022", lcecSlaveTypeEL2022, NULL, NULL },
{ "EL2024", lcecSlaveTypeEL2024, NULL, NULL },
{ "EL2032", lcecSlaveTypeEL2032, NULL, NULL },
{ "EL2034", lcecSlaveTypeEL2034, NULL, NULL },
{ "EL2042", lcecSlaveTypeEL2042, NULL, NULL },
{ "EL2084", lcecSlaveTypeEL2084, NULL, NULL },
{ "EL2088", lcecSlaveTypeEL2088, NULL, NULL },
{ "EL2124", lcecSlaveTypeEL2124, NULL, NULL },
{ "EL2202", lcecSlaveTypeEL2202, NULL, NULL },
{ "EL2612", lcecSlaveTypeEL2612, NULL, NULL },
{ "EL2622", lcecSlaveTypeEL2622, NULL, NULL },
{ "EL2808", lcecSlaveTypeEL2808, NULL, NULL },
{ "EL2798", lcecSlaveTypeEL2798, NULL, NULL },
{ "EL2809", lcecSlaveTypeEL2809, NULL, NULL },
{ "EL2002", lcecSlaveTypeEL2002, NULL },
{ "EL2004", lcecSlaveTypeEL2004, NULL },
{ "EL2008", lcecSlaveTypeEL2008, NULL },
{ "EL2022", lcecSlaveTypeEL2022, NULL },
{ "EL2024", lcecSlaveTypeEL2024, NULL },
{ "EL2032", lcecSlaveTypeEL2032, NULL },
{ "EL2034", lcecSlaveTypeEL2034, NULL },
{ "EL2042", lcecSlaveTypeEL2042, NULL },
{ "EL2084", lcecSlaveTypeEL2084, NULL },
{ "EL2088", lcecSlaveTypeEL2088, NULL },
{ "EL2124", lcecSlaveTypeEL2124, NULL },
{ "EL2202", lcecSlaveTypeEL2202, NULL },
{ "EL2612", lcecSlaveTypeEL2612, NULL },
{ "EL2622", lcecSlaveTypeEL2622, NULL },
{ "EL2808", lcecSlaveTypeEL2808, NULL },
{ "EL2798", lcecSlaveTypeEL2798, NULL },
{ "EL2809", lcecSlaveTypeEL2809, NULL },
{ "EP2028", lcecSlaveTypeEP2028, NULL, NULL },
{ "EP2028", lcecSlaveTypeEP2028, NULL },
// analog in, 2ch, 16 bits
{ "EL3102", lcecSlaveTypeEL3102, NULL, NULL },
{ "EL3112", lcecSlaveTypeEL3112, NULL, NULL },
{ "EL3122", lcecSlaveTypeEL3122, NULL, NULL },
{ "EL3142", lcecSlaveTypeEL3142, NULL, NULL },
{ "EL3152", lcecSlaveTypeEL3152, NULL, NULL },
{ "EL3162", lcecSlaveTypeEL3162, NULL, NULL },
{ "EL3102", lcecSlaveTypeEL3102, NULL },
{ "EL3112", lcecSlaveTypeEL3112, NULL },
{ "EL3122", lcecSlaveTypeEL3122, NULL },
{ "EL3142", lcecSlaveTypeEL3142, NULL },
{ "EL3152", lcecSlaveTypeEL3152, NULL },
{ "EL3162", lcecSlaveTypeEL3162, NULL },
// analog in, 5ch, 16 bits
{ "EL3255", lcecSlaveTypeEL3255, NULL, NULL },
{ "EL3255", lcecSlaveTypeEL3255, NULL },
// analog out, 1ch, 12 bits
{ "EL4001", lcecSlaveTypeEL4001, NULL, NULL },
{ "EL4011", lcecSlaveTypeEL4011, NULL, NULL },
{ "EL4021", lcecSlaveTypeEL4021, NULL, NULL },
{ "EL4031", lcecSlaveTypeEL4031, NULL, NULL },
{ "EL4001", lcecSlaveTypeEL4001, NULL },
{ "EL4011", lcecSlaveTypeEL4011, NULL },
{ "EL4021", lcecSlaveTypeEL4021, NULL },
{ "EL4031", lcecSlaveTypeEL4031, NULL },
// analog out, 2ch, 12 bits
{ "EL4002", lcecSlaveTypeEL4002, NULL, NULL },
{ "EL4012", lcecSlaveTypeEL4012, NULL, NULL },
{ "EL4022", lcecSlaveTypeEL4022, NULL, NULL },
{ "EL4032", lcecSlaveTypeEL4032, NULL, NULL },
{ "EL4002", lcecSlaveTypeEL4002, NULL },
{ "EL4012", lcecSlaveTypeEL4012, NULL },
{ "EL4022", lcecSlaveTypeEL4022, NULL },
{ "EL4032", lcecSlaveTypeEL4032, NULL },
// analog out, 2ch, 16 bits
{ "EL4102", lcecSlaveTypeEL4102, NULL, NULL },
{ "EL4112", lcecSlaveTypeEL4112, NULL, NULL },
{ "EL4122", lcecSlaveTypeEL4122, NULL, NULL },
{ "EL4132", lcecSlaveTypeEL4132, NULL, NULL },
{ "EL4102", lcecSlaveTypeEL4102, NULL },
{ "EL4112", lcecSlaveTypeEL4112, NULL },
{ "EL4122", lcecSlaveTypeEL4122, NULL },
{ "EL4132", lcecSlaveTypeEL4132, NULL },
// analog out, 4ch, 16 bits
{ "EL4104", lcecSlaveTypeEL4104, NULL, NULL },
{ "EL4104", lcecSlaveTypeEL4104, NULL },
// analog out, 8ch, 12 bits
{ "EL4008", lcecSlaveTypeEL4008, NULL, NULL },
{ "EL4018", lcecSlaveTypeEL4018, NULL, NULL },
{ "EL4028", lcecSlaveTypeEL4028, NULL, NULL },
{ "EL4038", lcecSlaveTypeEL4038, NULL, NULL },
{ "EL4008", lcecSlaveTypeEL4008, NULL },
{ "EL4018", lcecSlaveTypeEL4018, NULL },
{ "EL4028", lcecSlaveTypeEL4028, NULL },
{ "EL4038", lcecSlaveTypeEL4038, NULL },
// encoder inputs
{ "EL5101", lcecSlaveTypeEL5101, NULL, NULL },
{ "EL5151", lcecSlaveTypeEL5151, NULL, NULL },
{ "EL5152", lcecSlaveTypeEL5152, NULL, NULL },
{ "EL5101", lcecSlaveTypeEL5101, NULL },
{ "EL5151", lcecSlaveTypeEL5151, NULL },
{ "EL5152", lcecSlaveTypeEL5152, NULL },
// pulse train (stepper) output
{ "EL2521", lcecSlaveTypeEL2521, NULL, NULL },
{ "EL2521", lcecSlaveTypeEL2521, NULL },
// stepper
{ "EL7041-1000", lcecSlaveTypeEL7041_1000, NULL, NULL },
{ "EL7041-1000", lcecSlaveTypeEL7041_1000, NULL },
// ac servo
{ "EL7211", lcecSlaveTypeEL7211, NULL, NULL },
{ "EL7211", lcecSlaveTypeEL7211, NULL },
// dc servo
{ "EL7342", lcecSlaveTypeEL7342, NULL, NULL },
{ "EL7342", lcecSlaveTypeEL7342, NULL },
// power suppply
{ "EL9505", lcecSlaveTypeEL9505, NULL, NULL },
{ "EL9508", lcecSlaveTypeEL9508, NULL, NULL },
{ "EL9510", lcecSlaveTypeEL9510, NULL, NULL },
{ "EL9512", lcecSlaveTypeEL9512, NULL, NULL },
{ "EL9515", lcecSlaveTypeEL9515, NULL, NULL },
{ "EL9505", lcecSlaveTypeEL9505, NULL },
{ "EL9508", lcecSlaveTypeEL9508, NULL },
{ "EL9510", lcecSlaveTypeEL9510, NULL },
{ "EL9512", lcecSlaveTypeEL9512, NULL },
{ "EL9515", lcecSlaveTypeEL9515, NULL },
// FSoE devices
{ "EL6900", lcecSlaveTypeEL6900, slaveEL6900Params, NULL },
{ "EL1904", lcecSlaveTypeEL1904, NULL, &slaveEL1904FsoeConf },
{ "EL2904", lcecSlaveTypeEL2904, NULL, &slaveEL2904FsoeConf },
{ "AX5805", lcecSlaveTypeAX5805, NULL, &slaveAX5805FsoeConf },
{ "EL6900", lcecSlaveTypeEL6900, slaveEL6900Params },
{ "EL1904", lcecSlaveTypeEL1904, NULL },
{ "EL2904", lcecSlaveTypeEL2904, NULL },
{ "AX5805", lcecSlaveTypeAX5805, NULL },
// multi axis interface
{ "EM7004", lcecSlaveTypeEM7004, NULL, NULL },
{ "EM7004", lcecSlaveTypeEM7004, NULL },
// stoeber MDS5000 series
{ "StMDS5k", lcecSlaveTypeStMDS5k, slaveStMDS5kParams, NULL },
{ "StMDS5k", lcecSlaveTypeStMDS5k, slaveStMDS5kParams },
// Delta ASDA series
{ "DeASDA", lcecSlaveTypeDeASDA, NULL, NULL },
{ "DeASDA", lcecSlaveTypeDeASDA, NULL },
{ NULL }
};
@@ -516,9 +497,6 @@ static void parseSlaveAttrs(LCEC_CONF_XML_INST_T *inst, int next, const char **a
return;
}
p->type = slaveType->type;
if (slaveType->fsoeConf != NULL) {
memcpy(&p->fsoeConf, slaveType->fsoeConf, sizeof(LCEC_CONF_FSOE_T));
}
continue;
}
}