This PR is to bring the initial development work for OVC Mini to the main project. There are 3 projects in this dev branch:
Benchmarking: This includes a test.py script and a test_server.cpp file.
test.py is a host-side script that manages the entire testing process locally and on the remote machine. It arbitrates this via an ssh connection that is established at the start of the script. It contains 2 tests, iperf and a payload test. The iperf test is based on iperf3 and is meant to benchmark maximum bandwidth and link stability. The payload test is meant to simulate real world performance. This test is cross-compiled for aarch64 on the host machine and scp'd to the remote machine where it is run as a server. The test,py script then connects to this server and receives the "packets" the server is sending.
test_server.cpp is a program meant to run on the remote machine (in this case, an aarch64 box). It is simply a server socket that waits for a connection. As soon as a connection is received, it begins sending packets of a fixed size at fixed intervals. The interval, duration, packet size, and port are fully configurable via CLI (test.py configures these as part of the startup command).
Hardware: Contains an FFC converter between the QSBase3 development board's CSI MIPI output and the PiCam extended MIPI interface.
Firmware: Contains scripts to setup the yocto build environment quickly and efficiently. bitbake and associated setup script don't seem to be too happy with being run from a bash script so build is not really working but upload and setup.sh both work.
At this point, this is the entire OVC Mini project. I think it makes sense to merge this upstream as it's pretty stable (all other work is being handled on various other repositories).
This PR is to bring the initial development work for OVC Mini to the main project. There are 3 projects in this dev branch:
test.py
script and atest_server.cpp
file.test.py
is a host-side script that manages the entire testing process locally and on the remote machine. It arbitrates this via an ssh connection that is established at the start of the script. It contains 2 tests,iperf
and apayload
test. Theiperf
test is based oniperf3
and is meant to benchmark maximum bandwidth and link stability. Thepayload
test is meant to simulate real world performance. This test is cross-compiled foraarch64
on the host machine and scp'd to the remote machine where it is run as a server. Thetest,py
script then connects to this server and receives the "packets" the server is sending.test_server.cpp
is a program meant to run on the remote machine (in this case, anaarch64
box). It is simply a server socket that waits for a connection. As soon as a connection is received, it begins sending packets of a fixed size at fixed intervals. The interval, duration, packet size, and port are fully configurable via CLI (test.py
configures these as part of the startup command).bitbake
and associated setup script don't seem to be too happy with being run from a bash script sobuild
is not really working butupload
andsetup.sh
both work.