drivers/ec_master.h
changeset 52 c0405659a74a
parent 48 7e75772ea28c
equal deleted inserted replaced
51:b3beaa00640f 52:c0405659a74a
    25    dem zugewiesenen EtherCAT-Gerät.
    25    dem zugewiesenen EtherCAT-Gerät.
    26 */
    26 */
    27 
    27 
    28 struct EtherCAT_master
    28 struct EtherCAT_master
    29 {
    29 {
       
    30   EtherCAT_slave_t *bus_slaves; /**< Array von Slaves auf dem Bus */
       
    31   unsigned int bus_slaves_count; /**< Anzahl Slaves auf dem Bus */
    30   EtherCAT_device_t *dev; /**< Zeiger auf das zugewiesene EtherCAT-Gerät */
    32   EtherCAT_device_t *dev; /**< Zeiger auf das zugewiesene EtherCAT-Gerät */
    31   unsigned char command_index; /**< Aktueller Kommando-Index */
    33   unsigned char command_index; /**< Aktueller Kommando-Index */
    32   unsigned char tx_data[ECAT_FRAME_BUFFER_SIZE]; /**< Statischer Speicher
    34   unsigned char tx_data[ECAT_FRAME_BUFFER_SIZE]; /**< Statischer Speicher
    33                                                     für zu sendende Daten */
    35                                                     für zu sendende Daten */
    34   unsigned int tx_data_length; /**< Länge der Daten im Sendespeicher */
    36   unsigned int tx_data_length; /**< Länge der Daten im Sendespeicher */
    45                                  verlorenen Frames */
    47                                  verlorenen Frames */
    46 };
    48 };
    47 
    49 
    48 /*****************************************************************************/
    50 /*****************************************************************************/
    49 
    51 
       
    52 // Public methods
       
    53 
       
    54 void *EtherCAT_register_slave(EtherCAT_master_t *, unsigned int,
       
    55                               const char *, const char *, unsigned int);
       
    56 int EtherCAT_activate_slave(EtherCAT_master_t *, EtherCAT_slave_t *);
       
    57 int EtherCAT_deactivate_slave(EtherCAT_master_t *, EtherCAT_slave_t *);
       
    58 int EtherCAT_process_data_cycle(EtherCAT_master_t *, unsigned int,
       
    59                                 unsigned int);
       
    60 
       
    61 // Private Methods
       
    62 
    50 // Master creation and deletion
    63 // Master creation and deletion
    51 void EtherCAT_master_init(EtherCAT_master_t *);
    64 void EtherCAT_master_init(EtherCAT_master_t *);
    52 void EtherCAT_master_clear(EtherCAT_master_t *);
    65 void EtherCAT_master_clear(EtherCAT_master_t *);
    53 
    66 
    54 // Registration of devices
    67 // Registration of devices
    59 int EtherCAT_simple_send_receive(EtherCAT_master_t *, EtherCAT_command_t *);
    72 int EtherCAT_simple_send_receive(EtherCAT_master_t *, EtherCAT_command_t *);
    60 int EtherCAT_simple_send(EtherCAT_master_t *, EtherCAT_command_t *);
    73 int EtherCAT_simple_send(EtherCAT_master_t *, EtherCAT_command_t *);
    61 int EtherCAT_simple_receive(EtherCAT_master_t *, EtherCAT_command_t *);
    74 int EtherCAT_simple_receive(EtherCAT_master_t *, EtherCAT_command_t *);
    62 
    75 
    63 // Slave management
    76 // Slave management
    64 int EtherCAT_check_slaves(EtherCAT_master_t *, EtherCAT_slave_t *,
    77 int EtherCAT_scan_for_slaves(EtherCAT_master_t *);
    65                           unsigned int);
       
    66 int EtherCAT_read_slave_information(EtherCAT_master_t *, unsigned short int,
    78 int EtherCAT_read_slave_information(EtherCAT_master_t *, unsigned short int,
    67                                     unsigned short int, unsigned int *);
    79                                     unsigned short int, unsigned int *);
    68 int EtherCAT_activate_slave(EtherCAT_master_t *, EtherCAT_slave_t *);
       
    69 int EtherCAT_deactivate_slave(EtherCAT_master_t *, EtherCAT_slave_t *);
       
    70 int EtherCAT_state_change(EtherCAT_master_t *, EtherCAT_slave_t *,
    80 int EtherCAT_state_change(EtherCAT_master_t *, EtherCAT_slave_t *,
    71                           unsigned char);
    81                           unsigned char);
    72 
    82 
    73 // Process data
    83 // Misc.
    74 int EtherCAT_process_data_cycle(EtherCAT_master_t *, unsigned int,
       
    75                                 unsigned int);
       
    76 
    84 
    77 // Private functions
       
    78 void output_debug_data(const EtherCAT_master_t *);
    85 void output_debug_data(const EtherCAT_master_t *);
    79 void ecat_output_lost_frames(EtherCAT_master_t *);
    86 void ecat_output_lost_frames(EtherCAT_master_t *);
    80 
    87 
    81 /*****************************************************************************/
    88 /*****************************************************************************/
    82 
    89