master/canopen.c
changeset 104 052bc82d5442
parent 101 b0c19892145a
child 111 9963537ec776
equal deleted inserted replaced
103:d2a8adde27c4 104:052bc82d5442
    10 
    10 
    11 #include <linux/delay.h>
    11 #include <linux/delay.h>
    12 #include <linux/slab.h>
    12 #include <linux/slab.h>
    13 #include <linux/module.h>
    13 #include <linux/module.h>
    14 
    14 
    15 #include "../include/EtherCAT_si.h"
       
    16 #include "master.h"
    15 #include "master.h"
    17 
    16 
    18 /*****************************************************************************/
    17 /*****************************************************************************/
    19 
    18 
    20 /**
    19 /**
    21    Schreibt ein CANopen-SDO (service data object).
    20    Schreibt ein CANopen-SDO (service data object).
    22  */
    21  */
    23 
    22 
    24 int EtherCAT_rt_canopen_sdo_write(ec_slave_t *slave, /**< EtherCAT-Slave */
    23 int ecrt_slave_sdo_write(ec_slave_t *slave, /**< EtherCAT-Slave */
    25                          uint16_t sdo_index, /**< SDO-Index */
    24                          uint16_t sdo_index, /**< SDO-Index */
    26                          uint8_t sdo_subindex, /**< SDO-Subindex */
    25                          uint8_t sdo_subindex, /**< SDO-Subindex */
    27                          uint32_t value, /**< Neuer Wert */
    26                          uint32_t value, /**< Neuer Wert */
    28                          size_t size /**< Größe des Datenfeldes */
    27                          size_t size /**< Größe des Datenfeldes */
    29                          )
    28                          )
   112 
   111 
   113 /**
   112 /**
   114    Liest ein CANopen-SDO (service data object).
   113    Liest ein CANopen-SDO (service data object).
   115  */
   114  */
   116 
   115 
   117 int EtherCAT_rt_canopen_sdo_read(ec_slave_t *slave, /**< EtherCAT-Slave */
   116 int ecrt_slave_sdo_read(ec_slave_t *slave, /**< EtherCAT-Slave */
   118                         uint16_t sdo_index, /**< SDO-Index */
   117                         uint16_t sdo_index, /**< SDO-Index */
   119                         uint8_t sdo_subindex, /**< SDO-Subindex */
   118                         uint8_t sdo_subindex, /**< SDO-Subindex */
   120                         uint32_t *value /**< Speicher für gel. Wert */
   119                         uint32_t *value /**< Speicher für gel. Wert */
   121                         )
   120                         )
   122 {
   121 {
   196 /*****************************************************************************/
   195 /*****************************************************************************/
   197 
   196 
   198 /**
   197 /**
   199    Schweibt ein CANopen-SDO (Variante mit Angabe des Masters und der Adresse).
   198    Schweibt ein CANopen-SDO (Variante mit Angabe des Masters und der Adresse).
   200 
   199 
   201    Siehe EtherCAT_rt_canopen_sdo_write()
   200    Siehe ecrt_slave_sdo_write()
   202 
   201 
   203    \return 0 wenn alles ok, < 0 bei Fehler
   202    \return 0 wenn alles ok, < 0 bei Fehler
   204  */
   203  */
   205 
   204 
   206 int EtherCAT_rt_canopen_sdo_addr_write(ec_master_t *master,
   205 int ecrt_master_sdo_write(ec_master_t *master,
   207                                        /**< EtherCAT-Master */
   206                           /**< EtherCAT-Master */
   208                                        const char *addr,
   207                           const char *addr,
   209                                        /**< Addresse, siehe
   208                           /**< Addresse, siehe ec_master_slave_address() */
   210                                           ec_master_slave_address() */
   209                           uint16_t index,
   211                                        uint16_t index,
   210                           /**< SDO-Index */
   212                                        /**< SDO-Index */
   211                           uint8_t subindex,
   213                                        uint8_t subindex,
   212                           /**< SDO-Subindex */
   214                                        /**< SDO-Subindex */
   213                           uint32_t value,
   215                                        uint32_t value,
   214                           /**< Neuer Wert */
   216                                        /**< Neuer Wert */
   215                           size_t size
   217                                        size_t size
   216                           /**< Größe des Datenfeldes */
   218                                        /**< Größe des Datenfeldes */
   217                           )
   219                                        )
       
   220 {
   218 {
   221     ec_slave_t *slave;
   219     ec_slave_t *slave;
   222     if (!(slave = ec_master_slave_address(master, addr))) return -1;
   220     if (!(slave = ec_master_slave_address(master, addr))) return -1;
   223     return EtherCAT_rt_canopen_sdo_write(slave, index, subindex, value, size);
   221     return ecrt_slave_sdo_write(slave, index, subindex, value, size);
   224 }
   222 }
   225 
   223 
   226 /*****************************************************************************/
   224 /*****************************************************************************/
   227 
   225 
   228 /**
   226 /**
   229    Liest ein CANopen-SDO (Variante mit Angabe des Masters und der Adresse).
   227    Liest ein CANopen-SDO (Variante mit Angabe des Masters und der Adresse).
   230 
   228 
   231    Siehe EtherCAT_rt_canopen_sdo_read()
   229    Siehe ecrt_slave_sdo_read()
   232 
   230 
   233    \return 0 wenn alles ok, < 0 bei Fehler
   231    \return 0 wenn alles ok, < 0 bei Fehler
   234  */
   232  */
   235 
   233 
   236 int EtherCAT_rt_canopen_sdo_addr_read(ec_master_t *master,
   234 int ecrt_master_sdo_read(ec_master_t *master,
   237                                       /**< EtherCAT-Slave */
   235                          /**< EtherCAT-Slave */
   238                                       const char *addr,
   236                          const char *addr,
   239                                       /**< Addresse, siehe
   237                          /**< Addresse, siehe ec_master_slave_address() */
   240                                          ec_master_slave_address() */
   238                          uint16_t index,
   241                                       uint16_t index,
   239                          /**< SDO-Index */
   242                                       /**< SDO-Index */
   240                          uint8_t subindex,
   243                                       uint8_t subindex,
   241                          /**< SDO-Subindex */
   244                                       /**< SDO-Subindex */
   242                          uint32_t *value
   245                                       uint32_t *value
   243                          /**< Speicher für gel. Wert */
   246                                       /**< Speicher für gel. Wert */
   244                          )
   247                                       )
       
   248 {
   245 {
   249     ec_slave_t *slave;
   246     ec_slave_t *slave;
   250     if (!(slave = ec_master_slave_address(master, addr))) return -1;
   247     if (!(slave = ec_master_slave_address(master, addr))) return -1;
   251     return EtherCAT_rt_canopen_sdo_read(slave, index, subindex, value);
   248     return ecrt_slave_sdo_read(slave, index, subindex, value);
   252 }
   249 }
   253 
   250 
   254 /*****************************************************************************/
   251 /*****************************************************************************/
   255 
   252 
   256 EXPORT_SYMBOL(EtherCAT_rt_canopen_sdo_write);
   253 EXPORT_SYMBOL(ecrt_slave_sdo_write);
   257 EXPORT_SYMBOL(EtherCAT_rt_canopen_sdo_read);
   254 EXPORT_SYMBOL(ecrt_slave_sdo_read);
   258 EXPORT_SYMBOL(EtherCAT_rt_canopen_sdo_addr_write);
   255 EXPORT_SYMBOL(ecrt_master_sdo_write);
   259 EXPORT_SYMBOL(EtherCAT_rt_canopen_sdo_addr_read);
   256 EXPORT_SYMBOL(ecrt_master_sdo_read);
   260 
   257 
   261 /*****************************************************************************/
   258 /*****************************************************************************/
   262 
   259 
   263 /* Emacs-Konfiguration
   260 /* Emacs-Konfiguration
   264 ;;; Local Variables: ***
   261 ;;; Local Variables: ***