--- a/master/slave.c Tue Jan 17 18:28:15 2006 +0000
+++ b/master/slave.c Fri Jan 20 13:32:31 2006 +0000
@@ -28,171 +28,27 @@
void ec_slave_init(ec_slave_t *slave)
{
- slave->type = 0;
- slave->revision = 0;
- slave->build = 0;
+ slave->base_type = 0;
+ slave->base_revision = 0;
+ slave->base_build = 0;
slave->ring_position = 0;
slave->station_address = 0;
- slave->vendor_id = 0;
- slave->product_code = 0;
- slave->revision_number = 0;
- slave->serial_number = 0;
- slave->desc = NULL;
+ slave->sii_vendor_id = 0;
+ slave->sii_product_code = 0;
+ slave->sii_revision_number = 0;
+ slave->sii_serial_number = 0;
+ slave->type = NULL;
slave->logical_address = 0;
- slave->current_state = EC_SLAVE_STATE_UNKNOWN;
- slave->requested_state = EC_SLAVE_STATE_UNKNOWN;
slave->process_data = NULL;
+ slave->private_data = NULL;
+ slave->configure = NULL;
+ slave->registered = 0;
slave->domain = 0;
slave->error_reported = 0;
}
/*****************************************************************************/
-#if 0
-/**
- Liest einen bestimmten Kanal des Slaves als Integer-Wert.
-
- Prüft zuerst, ob der entsprechende Slave eine
- bekannte Beschreibung besitzt, ob dort eine
- read()-Funktion hinterlegt ist und ob die angegebene
- Kanalnummer gültig ist. Wenn ja, wird der dekodierte
- Wert zurückgegeben, sonst ist der Wert 0.
-
- @param slave EtherCAT-Slave
- @param channel Kanalnummer
-
- @return Gelesener Wert bzw. 0
-*/
-
-int EtherCAT_read_value(EtherCAT_slave_t *slave,
- unsigned int channel)
-{
- if (unlikely(!slave->desc)) {
- if (likely(slave->error_reported)) {
- printk(KERN_WARNING "EtherCAT: Reading failed on slave %04X (addr %0X)"
- " - Slave has no description.\n",
- slave->station_address, (unsigned int) slave);
- slave->error_reported = 1;
- }
- return 0;
- }
-
- if (unlikely(!slave->desc->read)) {
- if (likely(slave->error_reported)) {
- printk(KERN_WARNING "EtherCAT: Reading failed on slave %04X (addr %0X)"
- " - Slave type (%s %s) has no read method.\n",
- slave->station_address, (unsigned int) slave,
- slave->desc->vendor_name, slave->desc->product_name);
- slave->error_reported = 1;
- }
- return 0;
- }
-
- if (unlikely(channel >= slave->desc->channel_count)) {
- if (likely(slave->error_reported)) {
- printk(KERN_WARNING "EtherCAT: Reading failed on slave %4X (addr %0X)"
- " - Type (%s %s) has no channel %i.\n",
- slave->station_address, (unsigned int) slave,
- slave->desc->vendor_name, slave->desc->product_name,
- channel);
- slave->error_reported = 1;
- }
- return 0;
- }
-
- if (unlikely(!slave->process_data)) {
- if (likely(slave->error_reported)) {
- printk(KERN_WARNING "EtherCAT: Reading failed on slave %4X (addr %0X)"
- " - Slave does not belong to any process data object!\n",
- slave->station_address, (unsigned int) slave);
- slave->error_reported = 1;
- }
- return 0;
- }
-
- if (unlikely(slave->error_reported))
- slave->error_reported = 0;
-
- return slave->desc->read(slave->process_data, channel);
-}
-
-/*****************************************************************************/
-
-/**
- Schreibt einen bestimmten Kanal des Slaves als Integer-Wert .
-
- Prüft zuerst, ob der entsprechende Slave eine
- bekannte Beschreibung besitzt, ob dort eine
- write()-Funktion hinterlegt ist und ob die angegebene
- Kanalnummer gültig ist. Wenn ja, wird der Wert entsprechend
- kodiert und geschrieben.
-
- @param slave EtherCAT-Slave
- @param channel Kanalnummer
- @param value Zu schreibender Wert
-*/
-
-void EtherCAT_write_value(EtherCAT_slave_t *slave,
- unsigned int channel,
- int value)
-{
- if (unlikely(!slave->desc)) {
- if (likely(slave->error_reported)) {
- printk(KERN_WARNING "EtherCAT: Writing failed on slave %04X (addr %0X)"
- " - Slave has no description.\n",
- slave->station_address, (unsigned int) slave);
- slave->error_reported = 1;
- }
- return;
- }
-
- if (unlikely(!slave->desc->write)) {
- if (likely(slave->error_reported)) {
- printk(KERN_WARNING "EtherCAT: Writing failed on slave %04X (addr %0X)"
- " - Type (%s %s) has no write method.\n",
- slave->station_address, (unsigned int) slave,
- slave->desc->vendor_name, slave->desc->product_name);
- slave->error_reported = 1;
- }
- return;
- }
-
- if (unlikely(channel >= slave->desc->channel_count)) {
- if (likely(slave->error_reported)) {
- printk(KERN_WARNING "EtherCAT: Writing failed on slave %4X (addr %0X)"
- " - Type (%s %s) has no channel %i.\n",
- slave->station_address, (unsigned int) slave,
- slave->desc->vendor_name, slave->desc->product_name,
- channel);
- slave->error_reported = 1;
- }
- return;
- }
-
- if (unlikely(!slave->process_data)) {
- if (likely(slave->error_reported)) {
- printk(KERN_WARNING "EtherCAT: Writing failed on slave %4X (addr %0X)"
- " - Slave does not belong to any process data object!\n",
- slave->station_address, (unsigned int) slave);
- slave->error_reported = 1;
- }
- return;
- }
-
- if (unlikely(slave->error_reported))
- slave->error_reported = 0;
-
- slave->desc->write(slave->process_data, channel, value);
-}
-
-/*****************************************************************************/
-
-EXPORT_SYMBOL(EtherCAT_write_value);
-EXPORT_SYMBOL(EtherCAT_read_value);
-#endif
-
-/*****************************************************************************/
-
/* Emacs-Konfiguration
;;; Local Variables: ***
;;; c-basic-offset:2 ***