Test new algorithms for shortening data for the telemetry system using a file to communicate between a transmitter and receiver program.
A MATLAB program generates data, which can be one or three-channel, smooth or noisy, and then plots the data in a graph and exports it into the Generated_Data.csv file.
Then the Transmitter C++ program takes the data from Generated_Data.csv, processes/compresses(*) it into ProcessedData.csv for reading, and writes it via protobuf into the Transmitted_Data.bin file, representing the data sent through radio.
A Receiver C++ program then takes the binary file data from Transmitted_Data.bin, decodes the compression, and exports that to ReceivedData.csv.
Finally, the MATLAB program can plot the final data from ReceivedData.csv, seeing how it holds up when compared to the original data in Generated_Data.csv.
Data that is collected is sent through
We record the offset, and send (data – offset) through
- Useful for when data hovers around a point
We track the beginning value, and send the difference between the current and last data
- Useful for when the value itself is large, but collecting the derivative is small
Offset but for derivative
https://www.msys2.org/ latest version msys2-x86_64-20230526 C:\msys64\ucrt64\bin\g++
- choco
- make
- protoc
It also may be a good idea to go into environment variables to link necessary paths.
For Bazel C++ compiler: https://stackoverflow.com/a/69962808 solution
installed visual studio community edition use basel to build/run
cmake https://cmake.org/download/
git clone https://github.com/protocolbuffers/protobuf latest version v29.2
git clone https://github.com/abseil/abseil-cpp latest version 20240722.0
bazel build packet_proto packet_cc_proto --verbose_failures
bazel build Transmitter --verbose_failures
bazel build Receiver --verbose_failures
bazel clean
.\bazel-bin\Transmitter.exe
.\bazel-bin\Receiver.exe