| 1 | /* |
| 2 | * freediag - Vehicle Diagnostic Utility |
| 3 | * |
| 4 | * Copyright (C) 2017-2018 fenugrec |
| 5 | * |
| 6 | * Test L2 driver. Only intended for use by diag_test.c |
| 7 | * to exercise low-level libdiag code paths. |
| 8 | * |
| 9 | */ |
| 10 | |
| 11 | |
| 12 | #include "diag.h" |
| 13 | #include "diag_l2.h" |
| 14 | #include "diag_err.h" |
| 15 | #include "diag_os.h" |
| 16 | |
| 17 | #define TEST_TIMER_DURATION 500 /** time (ms) before returning from timer callback func */ |
| 18 | |
| 19 | |
| 20 | int dl2p_test_startcomms( struct diag_l2_conn *dl2c, flag_type flags, |
| 21 | unsigned int bitrate, target_type target, source_type source) { |
| 22 | (void) dl2c; |
| 23 | (void) flags; |
| 24 | (void) bitrate; |
| 25 | (void) target; |
| 26 | (void) source; |
| 27 | return 0; |
| 28 | } |
| 29 | |
| 30 | /* |
| 31 | */ |
| 32 | |
| 33 | int dl2p_test_stopcomms(struct diag_l2_conn *pX) { |
| 34 | (void) pX; |
| 35 | return 0; |
| 36 | } |
| 37 | |
| 38 | int dl2p_test_send(struct diag_l2_conn *d_l2_conn, struct diag_msg *msg) { |
| 39 | (void) d_l2_conn; |
| 40 | (void) msg; |
| 41 | return diag_iseterr(DIAG_ERR_BADVAL); |
| 42 | } |
| 43 | |
| 44 | int dl2p_test_recv(struct diag_l2_conn *d_l2_conn, unsigned int timeout, |
| 45 | void (*callback)(void *handle, struct diag_msg *msg), void *handle) { |
| 46 | (void) d_l2_conn; |
| 47 | (void) timeout; |
| 48 | (void) callback; |
| 49 | (void) handle; |
| 50 | return diag_iseterr(DIAG_ERR_BADVAL); |
| 51 | } |
| 52 | |
| 53 | struct diag_msg * dl2p_test_request(struct diag_l2_conn *d_l2_conn, struct diag_msg *msg, |
| 54 | int *errval) { |
| 55 | (void) d_l2_conn; |
| 56 | (void) msg; |
| 57 | *errval = DIAG_ERR_GENERAL; |
| 58 | return diag_pseterr(DIAG_ERR_BADVAL); |
| 59 | } |
| 60 | |
| 61 | void dl2p_test_timer(struct diag_l2_conn *dl2c) { |
| 62 | (void) dl2c; |
| 63 | diag_os_millisleep(TEST_TIMER_DURATION); |
| 64 | return; |
| 65 | } |
| 66 | |
| 67 | const struct diag_l2_proto diag_l2_proto_test = { |
| 68 | DIAG_L2_PROT_TEST, |
| 69 | "TEST", |
| 70 | 0, |
| 71 | dl2p_test_startcomms, |
| 72 | dl2p_test_stopcomms, |
| 73 | dl2p_test_send, |
| 74 | dl2p_test_recv, |
| 75 | dl2p_test_request, |
| 76 | dl2p_test_timer |
| 77 | }; |
| 78 | |