master/canopen.h
branchstable-1.3
changeset 1746 72e7507b3f1b
parent 1744 7bc131b92039
equal deleted inserted replaced
1745:07fd94c5119d 1746:72e7507b3f1b
    51 
    51 
    52 /**
    52 /**
    53    CANopen SDO.
    53    CANopen SDO.
    54 */
    54 */
    55 
    55 
    56 typedef struct
    56 struct ec_sdo
    57 {
    57 {
    58     struct kobject kobj; /**< kobject */
    58     struct kobject kobj; /**< kobject */
    59     struct list_head list; /**< list item */
    59     struct list_head list; /**< list item */
    60     ec_slave_t *slave; /**< parent slave */
    60     ec_slave_t *slave; /**< parent slave */
    61     uint16_t index; /**< SDO index */
    61     uint16_t index; /**< SDO index */
    62     uint8_t object_code; /**< object code */
    62     uint8_t object_code; /**< object code */
    63     char *name; /**< SDO name */
    63     char *name; /**< SDO name */
    64     uint8_t subindices; /**< subindices */
    64     uint8_t subindices; /**< subindices */
    65     struct list_head entries; /**< entry list */
    65     struct list_head entries; /**< entry list */
    66 }
    66 };
    67 ec_sdo_t;
       
    68 
    67 
    69 /*****************************************************************************/
    68 /*****************************************************************************/
    70 
    69 
    71 /**
    70 /**
    72    CANopen SDO entry.
    71    CANopen SDO entry.
   107 */
   106 */
   108 
   107 
   109 typedef struct
   108 typedef struct
   110 {
   109 {
   111     struct list_head list; /**< list item */
   110     struct list_head list; /**< list item */
   112     ec_sdo_t *sdo;
   111     ec_sdo_entry_t *entry; /**< SDO entry */
   113     ec_sdo_entry_t *entry;
       
   114     uint8_t *data; /**< pointer to SDO data */
   112     uint8_t *data; /**< pointer to SDO data */
   115     size_t size; /**< size of SDO data */
   113     size_t size; /**< size of SDO data */
   116     ec_request_state_t state;
   114     ec_request_state_t state; /**< SDO request state */
   117 }
   115 }
   118 ec_sdo_request_t;
   116 ec_sdo_request_t;
   119 
   117 
   120 /*****************************************************************************/
   118 /*****************************************************************************/
   121 
   119 
   122 int ec_sdo_init(ec_sdo_t *, uint16_t, ec_slave_t *);
   120 int ec_sdo_init(ec_sdo_t *, uint16_t, ec_slave_t *);
   123 void ec_sdo_destroy(ec_sdo_t *);
   121 void ec_sdo_destroy(ec_sdo_t *);
       
   122 ec_sdo_entry_t *ec_sdo_get_entry(ec_sdo_t *, uint8_t);
   124 
   123 
   125 int ec_sdo_entry_init(ec_sdo_entry_t *, uint8_t, ec_sdo_t *);
   124 int ec_sdo_entry_init(ec_sdo_entry_t *, uint8_t, ec_sdo_t *);
   126 void ec_sdo_entry_destroy(ec_sdo_entry_t *);
   125 void ec_sdo_entry_destroy(ec_sdo_entry_t *);
   127 
   126 
       
   127 void ec_sdo_request_init_read(ec_sdo_request_t *, ec_sdo_entry_t *);
       
   128 void ec_sdo_request_clear(ec_sdo_request_t *);
       
   129 
   128 /*****************************************************************************/
   130 /*****************************************************************************/
   129 
   131 
   130 #endif
   132 #endif