Tests ===== Simple read/write ----------------- Command:: vtest("--rwtest 1000 0 1000 1 1000 1000") Example of output:: ************vtest 2009-04-22 started**************** opening /dev/vcan or /dev/vcan4 : file-handle: 7 8 bytes will be written, content of these 8 bytes: 1 2 3 4 5 6 7 8 set write-mode for object 1000, port 0 ...(timeout 1000) done set read-mode for object 1000, port 1 ...(timeout 1000) done now writing the data...done message-status: VCAN_OK now reading the data...done message-content: counter:1, datasize:8, data: 0: 1 2 3 4 5 6 7 8 " " closing /dev/vcan value = 0 = 0x0 Read and write on two hosts --------------------------- Command on host 2:: vtest("--read 1000 0 10000") Command on host 1:: vtest("--write 1000 0 1000") Output on host 1:: ************vtest 2009-04-22 started**************** opening /dev/vcan or /dev/vcan4 : file-handle: 11 defining write-object... done writing 0, 4 bytes closing /dev/vcan Output on host 2:: ************vtest 2009-04-22 started**************** opening /dev/vcan or /dev/vcan4 : vwhost:bash: /dev/vcan: No such file or directory file-handle: 9 defining read-object... done received: cnt:1, data: 0: 0 0 0 0 " " closing /dev/vcan4 value = 0 = 0x0 Read timeout ------------ Command:: vtest("--read 1000 0 5000") Output (note that the last lines are printed after 5 seconds):: ************vtest 2009-04-22 started**************** opening /dev/vcan or /dev/vcan4 : vwhost:bash: /dev/vcan: No such file or directory file-handle: 9 defining read-object... done received: cnt:0, data: message-status-flags:VCAN_OLD message-error-code:VCAN_NO_ERROR closing /dev/vcan4 value = 0 = 0x0 readnow ------- Command on host 1:: vtest("--readnow 1000 0 5000 --loop 1000 --sleep 0.5") Command on host 2 (run this while cmd 1 runs):: vtest("--write 1000 0 1000 --loop 3 -q 4") Output on host 1 (part of it):: received: cnt:0, data: message-status-flags:VCAN_OLD message-error-code:VCAN_NO_ERROR received: cnt:2, data: 0: 0 0 0 1 " " message-status-flags:VCAN_LOST message-error-code:VCAN_NO_ERROR received: cnt:2, data: 0: 0 0 0 1 " " message-status-flags:VCAN_OLD message-error-code:VCAN_NO_ERROR received: cnt:2, data: 0: 0 0 0 1 " " message-status-flags:VCAN_OLD message-error-code:VCAN_NO_ERROR received: cnt:2, data: 0: 0 0 0 1 Fast read and write on two hosts with loop ------------------------------------------ Command on host 1:: vtest("--read 1000 0 10000 --check --loop 50000 -q 3") Command on host 2:: vtest("--write 1000 0 1000 --loop 50000 -q 3") Output on host 1 (part of it):: ************vtest 2009-04-22 started**************** opening /dev/vcan or /dev/vcan4 : vwhost:bash: /dev/vcan: No such file or directory file-handle: 13 defining read-object... done one 'T' are 1000 loops! TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT closing /dev/vcan4 Note: if the sender is too fast for the receiver, the output may look like this:: 7b6,b7b3|a7]L[b7ba,b7b7|ab]L[b7bd,b7bb|ae]L[b7c1,b7be|b2]L[b7c5,b7c2|b6]L [b7ca,b7c6|bb]L[b7cd,b7cb|be]L[b7d1,b7ce|c2]L[b7d5,b7d2|c6]L Try "-q 1" on the sender in this case. Note on sender speeds: mvme162: 360us / frame mv2100 : 180us / frame writenow -------- Command on host 1:: vtest("--read 1000 0 10000 --check --loop 50000 -q 3") Command on host 2:: vtest("--writenow-w 1000 0 1000 --loop 50000 -q 3") Output on host 2:: opening /dev/vcan or /dev/vcan4 : file-handle: 11 defining write-object... done one 'T' are 1000 loops! TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT closing /dev/vcan Output on host 1 (sample):: 7b6,b7b3|a7]L[b7ba,b7b7|ab]L[b7bd,b7bb|ae]L[b7c1,b7be|b2]L[b7c5,b7c2|b6]L [b7ca,b7c6|bb]L[b7cd,b7cb|be]L[b7d1,b7ce|c2]L[b7d5,b7d2|c6]L Now a slower test, Command on host 1:: vtest("--read 1000 0 10000 --loop 10") Command on host 2:: vtest("--writenow-w 1000 0 1000 --loop 10") Output on host 1 (sample):: received: cnt:1, data: 0: 0 0 0 0 " " received: cnt:2, data: 0: 0 0 0 1 " " received: cnt:3, data: 0: 0 0 0 2 " " received: cnt:4, data: 0: 0 0 0 3 Output on host 2 (sample):: ************vtest 2009-04-22 started**************** opening /dev/vcan or /dev/vcan4 : file-handle: 11 defining write-object... done writing 0, 4 bytes writing 1, 4 bytes writing 2, 4 bytes writetimed ---------- Command on host 1:: vtest("--read 1000 0 10000 --check --loop 50000 -q 3") Command on host 2:: vtest("--writetimed 1000 0 1000 200 --loop 50000 -q 3") Output on host 1: opening /dev/vcan or /dev/vcan4 : file-handle: 11 defining read-object... done one 'T' are 1000 loops! TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT closing /dev/vcan Time measurements: Command (example):: vtest("--writetimed 1000 0 1000 800 --loop 25000 -q 3") loops inhibit loop-time-mv162[us] loop-time-mv2100[us] 100000 100 370 280 100000 200 450 380 50000 400 660 580 25000 800 1040 960 remote-read ----------- Command on host 1:: vtest("--read 1000 0 10000 --remote --loop 10") Command on host 2:: vtest("--write 1000 0 1000 --loop 10000000 -q 4 --remote --consistence") Output on host 1:: received: cnt:3, data: 0: A6 A6 A6 A6 A6 A6 A6 A6 " " received: cnt:4, data: 0: B3 B3 B3 B3 B3 B3 B3 B3 " " Due to a bug on the VCAN4 card, there (if host2 uses a VCAN4 card) looks like this (only the first 4 bytes are valid):: received: cnt:6, data: 0: E0 E0 E0 E0 0 0 7F FF " " received: cnt:7, data: 0: F1 F1 F1 F1 0 0 7F FF " " remote-read with timeout ------------------------ Command on host:: vtest("--read 1000 0 5000 --remote --loop 2") Output:: ************vtest 2009-04-22 started**************** opening /dev/vcan or /dev/vcan4 : vwhost:bash: /dev/vcan: No such file or directory file-handle: 13 defining read-object... done received: cnt:467, data: 0: 0 16 90 4C " L" message-status-flags:VCAN_TM_OUT VCAN_TX_ERR message-error-code:VCAN_TX_TM_OUT received: cnt:467, data: 0: 0 16 90 4C " L" message-status-flags:VCAN_TM_OUT VCAN_TX_ERR message-error-code:VCAN_TX_TM_OUT closing /dev/vcan4 value = 0 = 0x0 queue-read ---------- Command on host 1:: vtest("--queue_read 0 5000 1000 1001 --loop 10") Command on host 2:: vtest("--write 1000 0 1000 --loop 5") vtest("--write 1001 0 1000 --loop 5") Output on host 1:: ************vtest 2009-04-22 started**************** vwhost:bash: /dev/vcan: No such file or directory opening /dev/vcan or /dev/vcan4 : vwhost:bash: /dev/vcan: No such file or directory file-handle: 13 defining read-objects... done the counter-semaphore mechanism will be used defining signal-objects... done received on 1000: cnt:1, data: 0: 0 0 0 0 " " received on 1000: cnt:2, data: 0: 0 0 0 1 " " received on 1000: cnt:3, data: 0: 0 0 0 2 " " received on 1000: cnt:4, data: 0: 0 0 0 3 " " received on 1000: cnt:5, data: 0: 0 0 0 4 " " received on 1001: cnt:1, data: 0: 0 0 0 0 " " received on 1001: cnt:2, data: 0: 0 0 0 1 " " received on 1001: cnt:3, data: 0: 0 0 0 2 " " received on 1001: cnt:4, data: 0: 0 0 0 3 " " received on 1001: cnt:5, data: 0: 0 0 0 4 " " closing /dev/vcan4 value = 0 = 0x0 test consistency ---------------- Command on host 1:: vtest("--read 1000 0 10000 --remote --loop 100000 -q 3 --consistence") Command on host 2:: vtest("--write 1000 0 1000 --loop 100000 -q 3 --consistence")