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 |