master/fsm_coe.c
changeset 1907 dd276ae226b4
parent 1831 1875b9fea0ba
child 1921 d9cf40facbc4
equal deleted inserted replaced
1906:96805a6eae3d 1907:dd276ae226b4
    43 
    43 
    44 /** Maximum time in ms to wait for responses when reading out the dictionary.
    44 /** Maximum time in ms to wait for responses when reading out the dictionary.
    45  */
    45  */
    46 #define EC_FSM_COE_DICT_TIMEOUT 1000
    46 #define EC_FSM_COE_DICT_TIMEOUT 1000
    47 
    47 
    48 #define EC_COE_DOWN_REQ_HEADER_SIZE      10
    48 /** CoE download request header size.
    49 #define EC_COE_DOWN_SEG_REQ_HEADER_SIZE  3
    49  */
    50 #define EC_COE_DOWN_SEG_MIN_DATA_SIZE    7
    50 #define EC_COE_DOWN_REQ_HEADER_SIZE 10
    51 
    51 
       
    52 /** CoE download segment request header size.
       
    53  */
       
    54 #define EC_COE_DOWN_SEG_REQ_HEADER_SIZE 3
       
    55 
       
    56 /** Minimum size of download segment.
       
    57  */
       
    58 #define EC_COE_DOWN_SEG_MIN_DATA_SIZE 7
       
    59 
       
    60 /** Enable debug output for CoE retries.
       
    61  */
    52 #define DEBUG_RETRIES 0
    62 #define DEBUG_RETRIES 0
       
    63 
       
    64 /** Enable warning output if transfers take too long.
       
    65  */
    53 #define DEBUG_LONG 0
    66 #define DEBUG_LONG 0
    54 
    67 
    55 /*****************************************************************************/
    68 /*****************************************************************************/
    56 
    69 
    57 void ec_fsm_coe_dict_start(ec_fsm_coe_t *);
    70 void ec_fsm_coe_dict_start(ec_fsm_coe_t *);
  1254     fsm->state = ec_fsm_coe_down_check;
  1267     fsm->state = ec_fsm_coe_down_check;
  1255 }
  1268 }
  1256 
  1269 
  1257 /*****************************************************************************/
  1270 /*****************************************************************************/
  1258 
  1271 
  1259 /**
  1272 /** CoE state: DOWN CHECK.
  1260    CoE state: DOWN CHECK.
  1273  */
  1261 */
       
  1262 
       
  1263 void ec_fsm_coe_down_check(ec_fsm_coe_t *fsm /**< finite state machine */)
  1274 void ec_fsm_coe_down_check(ec_fsm_coe_t *fsm /**< finite state machine */)
  1264 {
  1275 {
  1265     ec_datagram_t *datagram = fsm->datagram;
  1276     ec_datagram_t *datagram = fsm->datagram;
  1266     ec_slave_t *slave = fsm->slave;
  1277     ec_slave_t *slave = fsm->slave;
  1267 
  1278 
  1307     fsm->state = ec_fsm_coe_down_response;
  1318     fsm->state = ec_fsm_coe_down_response;
  1308 }
  1319 }
  1309 
  1320 
  1310 /*****************************************************************************/
  1321 /*****************************************************************************/
  1311 
  1322 
       
  1323 /** Prepare a download segment request.
       
  1324  */
  1312 void ec_fsm_coe_down_prepare_segment_request(
  1325 void ec_fsm_coe_down_prepare_segment_request(
  1313         ec_fsm_coe_t *fsm /**< finite state machine */
  1326         ec_fsm_coe_t *fsm /**< finite state machine */
  1314         )
  1327         )
  1315 {
  1328 {
  1316     ec_datagram_t *datagram = fsm->datagram;
  1329     ec_datagram_t *datagram = fsm->datagram;