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 |
27 * |
27 * |
28 *****************************************************************************/ |
28 *****************************************************************************/ |
29 |
29 |
30 /** |
30 /** |
31 \file |
31 \file |
32 EtherCAT slave request (SDO) state machine. |
32 EtherCAT slave request state machine. |
33 */ |
33 */ |
34 |
34 |
35 /*****************************************************************************/ |
35 /*****************************************************************************/ |
|
36 |
36 #ifndef __EC_FSM_SLAVE_H__ |
37 #ifndef __EC_FSM_SLAVE_H__ |
37 #define __EC_FSM_SLAVE_H__ |
38 #define __EC_FSM_SLAVE_H__ |
38 |
39 |
39 #include "globals.h" |
40 #include "globals.h" |
40 #include "datagram.h" |
41 #include "datagram.h" |
41 #include "sdo_request.h" |
42 #include "sdo_request.h" |
|
43 #include "reg_request.h" |
42 #include "fsm_coe.h" |
44 #include "fsm_coe.h" |
43 #include "fsm_foe.h" |
45 #include "fsm_foe.h" |
44 #include "fsm_soe.h" |
46 #include "fsm_soe.h" |
|
47 |
|
48 /*****************************************************************************/ |
45 |
49 |
46 typedef struct ec_fsm_slave ec_fsm_slave_t; /**< \see ec_fsm_slave */ |
50 typedef struct ec_fsm_slave ec_fsm_slave_t; /**< \see ec_fsm_slave */ |
47 |
51 |
48 /** Finite state machine of an EtherCAT slave. |
52 /** Finite state machine of an EtherCAT slave. |
49 */ |
53 */ |
51 ec_slave_t *slave; /**< slave the FSM runs on */ |
55 ec_slave_t *slave; /**< slave the FSM runs on */ |
52 ec_datagram_t *datagram; /**< datagram used in the state machine */ |
56 ec_datagram_t *datagram; /**< datagram used in the state machine */ |
53 |
57 |
54 void (*state)(ec_fsm_slave_t *); /**< master state function */ |
58 void (*state)(ec_fsm_slave_t *); /**< master state function */ |
55 ec_sdo_request_t *sdo_request; /**< SDO request to process. */ |
59 ec_sdo_request_t *sdo_request; /**< SDO request to process. */ |
|
60 ec_reg_request_t *reg_request; /**< Register request to process. */ |
56 ec_foe_request_t *foe_request; /**< FoE request to process. */ |
61 ec_foe_request_t *foe_request; /**< FoE request to process. */ |
57 off_t foe_index; /**< index to FoE write request data */ |
62 off_t foe_index; /**< index to FoE write request data */ |
58 ec_soe_request_t *soe_request; /**< SoE request to process. */ |
63 ec_soe_request_t *soe_request; /**< SoE request to process. */ |
59 |
64 |
60 ec_fsm_coe_t fsm_coe; /**< CoE state machine */ |
65 ec_fsm_coe_t fsm_coe; /**< CoE state machine */ |