equal
deleted
inserted
replaced
1 /****************************************************************************** |
1 /****************************************************************************** |
2 * |
2 * |
3 * $Id$ |
3 * $Id$ |
4 * |
4 * |
5 * Copyright (C) 2006-2008 Florian Pose, Ingenieurgemeinschaft IgH |
5 * Copyright (C) 2006-2012 Florian Pose, Ingenieurgemeinschaft IgH |
6 * |
6 * |
7 * This file is part of the IgH EtherCAT Master. |
7 * This file is part of the IgH EtherCAT Master. |
8 * |
8 * |
9 * The IgH EtherCAT Master is free software; you can redistribute it and/or |
9 * The IgH EtherCAT Master is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU General Public License version 2, as |
10 * modify it under the terms of the GNU General Public License version 2, as |
56 uint16_t offset; /**< SII word offset. */ |
56 uint16_t offset; /**< SII word offset. */ |
57 size_t nwords; /**< Number of words. */ |
57 size_t nwords; /**< Number of words. */ |
58 const uint16_t *words; /**< Pointer to the data words. */ |
58 const uint16_t *words; /**< Pointer to the data words. */ |
59 ec_internal_request_state_t state; /**< State of the request. */ |
59 ec_internal_request_state_t state; /**< State of the request. */ |
60 } ec_sii_write_request_t; |
60 } ec_sii_write_request_t; |
61 |
|
62 /*****************************************************************************/ |
|
63 |
|
64 /** Register request. |
|
65 */ |
|
66 typedef struct { |
|
67 struct list_head list; /**< List head. */ |
|
68 ec_slave_t *slave; /**< EtherCAT slave. */ |
|
69 ec_direction_t dir; /**< Direction. */ |
|
70 uint16_t offset; /**< Register address. */ |
|
71 size_t length; /**< Number of bytes. */ |
|
72 uint8_t *data; /**< Data to write / memory for read data. */ |
|
73 ec_internal_request_state_t state; /**< State of the request. */ |
|
74 } ec_reg_request_t; |
|
75 |
61 |
76 /*****************************************************************************/ |
62 /*****************************************************************************/ |
77 |
63 |
78 /** Slave/SDO request record for master's SDO request list. |
64 /** Slave/SDO request record for master's SDO request list. |
79 */ |
65 */ |
130 every device. */ |
116 every device. */ |
131 ec_slave_t *slave; /**< current slave */ |
117 ec_slave_t *slave; /**< current slave */ |
132 ec_sii_write_request_t *sii_request; /**< SII write request */ |
118 ec_sii_write_request_t *sii_request; /**< SII write request */ |
133 off_t sii_index; /**< index to SII write request data */ |
119 off_t sii_index; /**< index to SII write request data */ |
134 ec_sdo_request_t *sdo_request; /**< SDO request to process. */ |
120 ec_sdo_request_t *sdo_request; /**< SDO request to process. */ |
135 ec_reg_request_t *reg_request; /**< Register request to process. */ |
|
136 |
121 |
137 ec_fsm_coe_t fsm_coe; /**< CoE state machine */ |
122 ec_fsm_coe_t fsm_coe; /**< CoE state machine */ |
138 ec_fsm_pdo_t fsm_pdo; /**< PDO configuration state machine. */ |
123 ec_fsm_pdo_t fsm_pdo; /**< PDO configuration state machine. */ |
139 ec_fsm_change_t fsm_change; /**< State change state machine */ |
124 ec_fsm_change_t fsm_change; /**< State change state machine */ |
140 ec_fsm_slave_config_t fsm_slave_config; /**< slave state machine */ |
125 ec_fsm_slave_config_t fsm_slave_config; /**< slave state machine */ |