You can interact with files on the microSD card (you can not interact with files on the V5 brain’s flash) through standard C/C++ file I/O methods. For the most part, you can follow along with any standard C tutorial for file I/O and it will work with PROS. Here are a couple of recommended tutorials:
The only additional detail needed for interacting with the filesystem in PROS is that any files on
the microSD card must be prefaced with
/usd/. A file on the microSD card can be written to
in the following manner:
FILE* usd_file_write = fopen("/usd/example.txt", "w"); fputs("Example text", usd_file_write); fclose(usd_file_write); FILE* usd_file_read = fopen("/usd/example.txt", "r"); char buf; // This just needs to be larger than the contents of the file fread(buf, 1, 50, usd_file_read); // passing 1 because a `char` is 1 byte, and 50 b/c it's the length of buf printf("%s\n", buf); // print the string read from the file // Should print "Example text" to the terminal fclose(usd_file_read); // always close files when you're done with them
The microSD card must be fat32 in order to work.
It’s also possible to interact with the serial communications (
stdout, etc.) through
the filesystem drivers. You can write and read from these streams in the same manner
as a file, but using the four character stream identifiers.
For instance, you can write to
stderr in the following manner:
FILE* stderr = fopen("serr", "w"); fputs("Example text", stderr); fclose(stderr);
There are also a number of methods for controlling serial communication behavior
exposed in apix.h. These methods can be accessed
serctl() function. At the moment two actions are supported -
activating/deactivating the streams, and enabling/disabling COBS
. If you want to read the serial comms yourself
pros terminal), then you’ll want to disable COBS.