master/voe_handler.c
changeset 1268 d9599395e89b
parent 1264 e7882f246d7a
child 1312 74853e018898
equal deleted inserted replaced
1267:75900030f0c3 1268:d9599395e89b
    56  */
    56  */
    57 #define EC_VOE_RESPONSE_TIMEOUT 500
    57 #define EC_VOE_RESPONSE_TIMEOUT 500
    58 
    58 
    59 /*****************************************************************************/
    59 /*****************************************************************************/
    60 
    60 
    61 void ec_voe_handler_clear_data(ec_voe_handler_t *);
       
    62 
       
    63 void ec_voe_handler_state_write_start(ec_voe_handler_t *);
    61 void ec_voe_handler_state_write_start(ec_voe_handler_t *);
    64 void ec_voe_handler_state_write_response(ec_voe_handler_t *);
    62 void ec_voe_handler_state_write_response(ec_voe_handler_t *);
    65 
    63 
    66 void ec_voe_handler_state_read_start(ec_voe_handler_t *);
    64 void ec_voe_handler_state_read_start(ec_voe_handler_t *);
    67 void ec_voe_handler_state_read_check(ec_voe_handler_t *);
    65 void ec_voe_handler_state_read_check(ec_voe_handler_t *);
   197 
   195 
   198 /******************************************************************************
   196 /******************************************************************************
   199  * State functions.
   197  * State functions.
   200  *****************************************************************************/
   198  *****************************************************************************/
   201 
   199 
       
   200 /** Start writing VoE data.
       
   201  */
   202 void ec_voe_handler_state_write_start(ec_voe_handler_t *voe)
   202 void ec_voe_handler_state_write_start(ec_voe_handler_t *voe)
   203 {
   203 {
   204     ec_slave_t *slave = voe->config->slave;
   204     ec_slave_t *slave = voe->config->slave;
   205     uint8_t *data;
   205     uint8_t *data;
   206 
   206 
   232     voe->state = ec_voe_handler_state_write_response;
   232     voe->state = ec_voe_handler_state_write_response;
   233 }
   233 }
   234 
   234 
   235 /*****************************************************************************/
   235 /*****************************************************************************/
   236 
   236 
       
   237 /** Wait for the mailbox response.
       
   238  */
   237 void ec_voe_handler_state_write_response(ec_voe_handler_t *voe)
   239 void ec_voe_handler_state_write_response(ec_voe_handler_t *voe)
   238 {
   240 {
   239     ec_datagram_t *datagram = &voe->datagram;
   241     ec_datagram_t *datagram = &voe->datagram;
   240     ec_slave_t *slave = voe->config->slave;
   242     ec_slave_t *slave = voe->config->slave;
   241 
   243 
   280     voe->state = ec_voe_handler_state_end;
   282     voe->state = ec_voe_handler_state_end;
   281 }
   283 }
   282 
   284 
   283 /*****************************************************************************/
   285 /*****************************************************************************/
   284 
   286 
       
   287 /** Start reading VoE data.
       
   288  */
   285 void ec_voe_handler_state_read_start(ec_voe_handler_t *voe)
   289 void ec_voe_handler_state_read_start(ec_voe_handler_t *voe)
   286 {
   290 {
   287     ec_datagram_t *datagram = &voe->datagram;
   291     ec_datagram_t *datagram = &voe->datagram;
   288     ec_slave_t *slave = voe->config->slave;
   292     ec_slave_t *slave = voe->config->slave;
   289 
   293 
   304     voe->state = ec_voe_handler_state_read_check;
   308     voe->state = ec_voe_handler_state_read_check;
   305 }
   309 }
   306 
   310 
   307 /*****************************************************************************/
   311 /*****************************************************************************/
   308 
   312 
       
   313 /** Check for new data in the mailbox.
       
   314  */
   309 void ec_voe_handler_state_read_check(ec_voe_handler_t *voe)
   315 void ec_voe_handler_state_read_check(ec_voe_handler_t *voe)
   310 {
   316 {
   311     ec_datagram_t *datagram = &voe->datagram;
   317     ec_datagram_t *datagram = &voe->datagram;
   312     ec_slave_t *slave = voe->config->slave;
   318     ec_slave_t *slave = voe->config->slave;
   313 
   319 
   354     voe->state = ec_voe_handler_state_read_response;
   360     voe->state = ec_voe_handler_state_read_response;
   355 }
   361 }
   356 
   362 
   357 /*****************************************************************************/
   363 /*****************************************************************************/
   358 
   364 
       
   365 /** Read the pending mailbox data.
       
   366  */
   359 void ec_voe_handler_state_read_response(ec_voe_handler_t *voe)
   367 void ec_voe_handler_state_read_response(ec_voe_handler_t *voe)
   360 {
   368 {
   361     ec_datagram_t *datagram = &voe->datagram;
   369     ec_datagram_t *datagram = &voe->datagram;
   362     ec_slave_t *slave = voe->config->slave;
   370     ec_slave_t *slave = voe->config->slave;
   363     ec_master_t *master = voe->config->master;
   371     ec_master_t *master = voe->config->master;
   417     voe->state = ec_voe_handler_state_end; // success
   425     voe->state = ec_voe_handler_state_end; // success
   418 }
   426 }
   419 
   427 
   420 /*****************************************************************************/
   428 /*****************************************************************************/
   421 
   429 
       
   430 /** Successful termination state function.
       
   431  */
   422 void ec_voe_handler_state_end(ec_voe_handler_t *voe)
   432 void ec_voe_handler_state_end(ec_voe_handler_t *voe)
   423 {
   433 {
   424 }
   434 }
   425 
   435 
   426 /*****************************************************************************/
   436 /*****************************************************************************/
   427 
   437 
       
   438 /** Failure termination state function.
       
   439  */
   428 void ec_voe_handler_state_error(ec_voe_handler_t *voe)
   440 void ec_voe_handler_state_error(ec_voe_handler_t *voe)
   429 {
   441 {
   430 }
   442 }
   431 
   443 
   432 /*****************************************************************************/
   444 /*****************************************************************************/