equal
deleted
inserted
replaced
69 void ec_fsm_soe_write_check(ec_fsm_soe_t *); |
69 void ec_fsm_soe_write_check(ec_fsm_soe_t *); |
70 void ec_fsm_soe_write_response(ec_fsm_soe_t *); |
70 void ec_fsm_soe_write_response(ec_fsm_soe_t *); |
71 |
71 |
72 void ec_fsm_soe_end(ec_fsm_soe_t *); |
72 void ec_fsm_soe_end(ec_fsm_soe_t *); |
73 void ec_fsm_soe_error(ec_fsm_soe_t *); |
73 void ec_fsm_soe_error(ec_fsm_soe_t *); |
|
74 |
|
75 /*****************************************************************************/ |
|
76 |
|
77 extern const ec_code_msg_t soe_error_codes[]; |
|
78 |
|
79 /*****************************************************************************/ |
|
80 |
|
81 /** Outputs an SoE error code. |
|
82 */ |
|
83 void ec_print_soe_error(uint16_t error_code) |
|
84 { |
|
85 const ec_code_msg_t *error_msg; |
|
86 |
|
87 for (error_msg = soe_error_codes; error_msg->code; error_msg++) { |
|
88 if (error_msg->code == error_code) { |
|
89 EC_ERR("SoE error 0x%04X: \"%s\".\n", |
|
90 error_msg->code, error_msg->message); |
|
91 return; |
|
92 } |
|
93 } |
|
94 |
|
95 EC_ERR("Unknown SoE error 0x%04X.\n", error_code); |
|
96 } |
74 |
97 |
75 /*****************************************************************************/ |
98 /*****************************************************************************/ |
76 |
99 |
77 /** Constructor. |
100 /** Constructor. |
78 */ |
101 */ |
351 return; |
374 return; |
352 } |
375 } |
353 |
376 |
354 if (error_flag) { |
377 if (error_flag) { |
355 req->error_code = EC_READ_U16(data + rec_size - 2); |
378 req->error_code = EC_READ_U16(data + rec_size - 2); |
356 EC_ERR("Received error response: 0x%04x.\n", |
379 EC_ERR("Received error response:\n"); |
357 req->error_code); |
380 ec_print_soe_error(req->error_code); |
358 fsm->state = ec_fsm_soe_error; |
381 fsm->state = ec_fsm_soe_error; |
359 return; |
382 return; |
360 } else { |
383 } else { |
361 req->error_code = 0x0000; |
384 req->error_code = 0x0000; |
362 } |
385 } |
656 if (rec_size < EC_SOE_WRITE_RESPONSE_SIZE + 2) { |
679 if (rec_size < EC_SOE_WRITE_RESPONSE_SIZE + 2) { |
657 EC_ERR("Received corrupted error response - error flag set," |
680 EC_ERR("Received corrupted error response - error flag set," |
658 " but received size is %zu.\n", rec_size); |
681 " but received size is %zu.\n", rec_size); |
659 } else { |
682 } else { |
660 req->error_code = EC_READ_U16(data + EC_SOE_WRITE_RESPONSE_SIZE); |
683 req->error_code = EC_READ_U16(data + EC_SOE_WRITE_RESPONSE_SIZE); |
661 EC_ERR("Received error response: 0x%04x.\n", |
684 EC_ERR("Received error response:\n"); |
662 req->error_code); |
685 ec_print_soe_error(req->error_code); |
663 } |
686 } |
664 ec_print_data(data, rec_size); |
687 ec_print_data(data, rec_size); |
665 fsm->state = ec_fsm_soe_error; |
688 fsm->state = ec_fsm_soe_error; |
666 return; |
689 return; |
667 } else { |
690 } else { |