| *** Variables *** |
| ${UART} sysbus.lpuart2 |
| ${CAN} sysbus.can0 |
| ${CAN_HUB} canHub |
| ${URI} https://dl.antmicro.com/projects/renode/ |
| |
| ${CAN_COUNTER_ELF} @${URI}/mr_canhubk3--zephyr-can-counter.elf-s_1959844-b2284bfd7adff900c7d6ac7fa06bb5ba3291b0e4 |
| ${CAN_COUNTER_NO_LOOPBACK_ELF} @${URI}/mr_canhubk3--zephyr-can-counter--no-loopback.elf-s_1959384-b17eb95f04cb75ef5a7781cdaad708db8a7f7449 |
| |
| *** Keywords *** |
| Create CAN Hub |
| Execute Command emulation CreateCANHub "${CAN_HUB}" False |
| |
| Create MR CANHUBK3 Machine |
| [Arguments] ${binary} ${name}=machine-0 |
| Execute Command $name="${name}" |
| Execute Command $bin=${binary} |
| Execute Command include @tests/peripherals/mr_canhubk3.resc |
| Execute Command connector Connect ${CAN} ${CAN_HUB} |
| |
| *** Test Cases *** |
| Should Receive CAN Frames On Loopback |
| Create CAN Hub |
| Create MR CANHUBK3 Machine ${CAN_COUNTER_ELF} |
| Create Terminal Tester ${UART} |
| |
| # Wait for several successful transmissions |
| ${cnt}= Set Variable 40 |
| FOR ${i} IN RANGE 0 ${cnt} |
| Wait For Line On Uart Counter received: ${i} |
| END |
| |
| Should Exchange CAN Frames Between Machines |
| Create CAN Hub |
| Create MR CANHUBK3 Machine ${CAN_COUNTER_NO_LOOPBACK_ELF} name=machine-0 |
| ${tester-0}= Create Terminal Tester ${UART} machine=machine-0 |
| |
| Create MR CANHUBK3 Machine ${CAN_COUNTER_NO_LOOPBACK_ELF} name=machine-1 |
| ${tester-1}= Create Terminal Tester ${UART} machine=machine-1 |
| |
| # Lower quantum to keep synchronization between machines |
| Execute Command emulation SetGlobalQuantum "0.000025" |
| Execute Command emulation SetGlobalSerialExecution True |
| |
| # Wait for several successful transmissions |
| ${cnt}= Set Variable 40 |
| FOR ${i} IN RANGE 0 ${cnt} |
| Wait For Line On Uart Counter received: ${i} testerId=${tester-0} |
| Wait For Line On Uart Counter received: ${i} testerId=${tester-1} |
| END |