Added --enable-wildcards to use 0xffffffff as wildcard for vendor ID and

product code.
This commit is contained in:
Florian Pose 2011-11-04 12:21:09 +01:00
parent 4fce05d24c
commit 3dbe764174
3 changed files with 49 additions and 6 deletions

2
NEWS
View File

@ -76,6 +76,8 @@ Changes in 1.5:
* ethercat tool is now able to handle multiple masters. The --masters option
supports ranges like '0,3,8-10'.
* A sync manager is always enabled, if it contains registered process data.
* Added a configuration switch --enable-wildcards to use 0xffffffff as a
* wildcard for vendor ID and product code.
Changes in 1.4.0:

View File

@ -658,6 +658,31 @@ AC_ARG_ENABLE([tty],
AM_CONDITIONAL(ENABLE_TTY, test "x$tty" = "x1")
AC_SUBST(ENABLE_TTY,[$tty])
#------------------------------------------------------------------------------
# Slave identification wildcards
#------------------------------------------------------------------------------
AC_ARG_ENABLE([wildcards],
AS_HELP_STRING([--enable-wildcards],
[Enable vendor ID / product code wildcards (default: no)]),
[
case "${enableval}" in
yes) wildcards=1
;;
no) wildcards=0
;;
*) AC_MSG_ERROR([Invalid value for --enable-wildcards])
;;
esac
],
[wildcards=0]
)
if test "x${wildcards}" = "x1"; then
AC_DEFINE([EC_IDENT_WILDCARDS], [1],
[Use vendor id / product code wildcards])
fi
#------------------------------------------------------------------------------
AC_CONFIG_FILES([

View File

@ -214,12 +214,28 @@ int ec_slave_config_attach(
return -EEXIST;
}
if (slave->sii.vendor_id != sc->vendor_id
|| slave->sii.product_code != sc->product_code) {
EC_CONFIG_DBG(sc, 1, "Slave %u has an invalid type (0x%08X/0x%08X)"
" for configuration (0x%08X/0x%08X).\n",
slave->ring_position, slave->sii.vendor_id,
slave->sii.product_code, sc->vendor_id, sc->product_code);
if (
#ifdef EC_IDENT_WILDCARDS
sc->vendor_id != 0xffffffff &&
#endif
slave->sii.vendor_id != sc->vendor_id
) {
EC_CONFIG_DBG(sc, 1, "Slave %u has no matching vendor ID (0x%08X)"
" for configuration (0x%08X).\n",
slave->ring_position, slave->sii.vendor_id, sc->vendor_id);
return -EINVAL;
}
if (
#ifdef EC_IDENT_WILDCARDS
sc->product_code != 0xffffffff &&
#endif
slave->sii.product_code != sc->product_code
) {
EC_CONFIG_DBG(sc, 1, "Slave %u has no matching product code (0x%08X)"
" for configuration (0x%08X).\n",
slave->ring_position, slave->sii.product_code,
sc->product_code);
return -EINVAL;
}