master/command.h
changeset 73 9f4ea66d89a3
parent 72 7c986b717411
child 74 9bf603942791
--- a/master/command.h	Wed Feb 22 17:36:28 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-/******************************************************************************
- *
- *  c o m m a n d . h
- *
- *  Struktur für ein EtherCAT-Kommando.
- *
- *  $Id$
- *
- *****************************************************************************/
-
-#ifndef _EC_COMMAND_H_
-#define _EC_COMMAND_H_
-
-#include "globals.h"
-
-/*****************************************************************************/
-
-/**
-   Status eines EtherCAT-Kommandos.
-*/
-
-typedef enum
-{
-  EC_COMMAND_STATE_READY, EC_COMMAND_STATE_SENT, EC_COMMAND_STATE_RECEIVED
-}
-ec_command_state_t;
-
-/*****************************************************************************/
-
-/**
-   EtherCAT-Adresse.
-
-   Im EtherCAT-Rahmen sind 4 Bytes für die Adresse reserviert, die je nach
-   Kommandotyp, eine andere Bedeutung haben können: Bei Autoinkrementbefehlen
-   sind die ersten zwei Bytes die (negative) Autoinkrement-Adresse, bei Knoten-
-   adressierten Befehlen entsprechen sie der Knotenadresse. Das dritte und
-   vierte Byte entspricht in diesen Fällen der physikalischen Speicheradresse
-   auf dem Slave. Bei einer logischen Adressierung entsprechen alle vier Bytes
-   der logischen Adresse.
-*/
-
-typedef union
-{
-  struct
-  {
-    union
-    {
-      short pos; /**< (Negative) Ring-Position des Slaves */
-      unsigned short node; /**< Konfigurierte Knotenadresse */
-    }
-    dev;
-
-    unsigned short mem; /**< Physikalische Speicheradresse im Slave */
-  }
-  phy; /**< Physikalische Adresse */
-
-  unsigned long logical; /**< Logische Adresse */
-  unsigned char raw[4]; /**< Rohdaten für die Generierung des Frames */
-}
-ec_address_t;
-
-/*****************************************************************************/
-
-/**
-   EtherCAT-Kommando.
-*/
-
-typedef struct ec_command
-{
-  ec_command_type_t type; /**< Typ des Kommandos (APRD, NPWR, etc) */
-  ec_address_t address; /**< Adresse des/der Empfänger */
-  unsigned int data_length; /**< Länge der zu sendenden und/oder
-                               empfangenen Daten */
-  ec_command_state_t state; /**< Zustand des Kommandos
-                           (bereit, gesendet, etc) */
-  unsigned char index; /**< Kommando-Index, mit der das Kommando gesendet
-                          wurde (wird vom Master beim Senden gesetzt. */
-  unsigned int working_counter; /**< Working-Counter bei Empfang (wird
-                                   vom Master gesetzt) */
-  unsigned char data[EC_FRAME_SIZE]; /**< Kommandodaten */
-}
-ec_command_t;
-
-/*****************************************************************************/
-
-void ec_command_read(ec_command_t *, unsigned short, unsigned short,
-                     unsigned int);
-void ec_command_write(ec_command_t *, unsigned short, unsigned short,
-                      unsigned int, const unsigned char *);
-void ec_command_position_read(ec_command_t *, short, unsigned short,
-                              unsigned int);
-void ec_command_position_write(ec_command_t *, short, unsigned short,
-                               unsigned int, const unsigned char *);
-void ec_command_broadcast_read(ec_command_t *, unsigned short, unsigned int);
-void ec_command_broadcast_write(ec_command_t *, unsigned short, unsigned int,
-                                const unsigned char *);
-void ec_command_logical_read_write(ec_command_t *, unsigned int, unsigned int,
-                                   unsigned char *);
-
-/*****************************************************************************/
-
-#endif