BMP binary file on SD-card¶
The BMP binary file on SD-card library saves the screen as a BMP file on the SD-card and loads a BMP file into the frame-buffer, ready to be displayed. Everything is performed dynamically at run-time.
The BMP binary file on SD-card supports all the screens, monochrome and colour.
Info
This method is not recommended for MCUs, as the management of the SD-card is rather slow and prone to interferences.
The BMP file on SD-card library is available on the Commercial edition. The file is RGB 5-5-5 coded.
Configure¶
Warning
Ensure the screen is declared and initialised according to the configuration procedure.
#include "hV_File_BMP.h"
The pre-processor statement includes the file library. It should be mentioned after the statement for the screen library.
Danger
This library requires the external SD library to manage the SD-card.
Ensure the external SD library is installed and configured properly.
File_BMP myFile(&myScreen);
The constructor File_BMP()
sets the link to the screen. It should be mentioned after the constructor of the screen.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
beginFileSystem()
checks an SD-card is available and initialises it.
The required parameter is
- The first line sets the pin for selecting the SD-card.
It is easily provided with myScreen.getBoardPins().cardCS
.
The optional parameters are
-
The second line sets the number of the SPI port,
0
by default; -
The third line sets the pin for the detect signal,
NOT_CONNECTED
or-1
par default; -
The fourth line sets the level of detect signal,
LOW
by default.
The function returns RESULT_SUCCESS
if successful, RESULT_ERROR
otherwise.
To obtain the pin for selecting the SD-card, use
uint8_t pinCardCS = myScreen.getBoardPins().cardCS;
uint8_t result = myFile.beginFileSystem(pinCardCS);
setFolder()
sets the name of the folder for the files, and creates it if it does not exists.
By default, the files are located under the folder img
.
The function returns RESULT_SUCCESS
if successful, RESULT_ERROR
otherwise.
Use¶
Save¶
1 2 |
|
saveScreen()
saves the screen on the SD-card as a BMP file. The file is RGB 5-5-5 coded.
The function returns RESULT_SUCCESS
if successful, RESULT_ERROR
otherwise.
The required parameter is
- The first line provides the name of the file without the
.BMP
extension.
The optional parameter is
- The second line sets the multiplier,
1
by default.
The default value of 1
is recommended for medium and large screens, and 2
for small screens.
saveWindow()
save a window on a BMP file.
The function returns RESULT_SUCCESS
if successful, RESULT_ERROR
otherwise.
Read¶
1 2 |
|
readScreen()
loads a BMP file from the SD-card on the frame-buffer, to be displayed with flush()
.
The required parameter is
- The first line provides the name of the file without the
.BMP
extension.
The optional parameter is
- The second line sets the multiplier,
1
by default.
The function doesn’t check the size or the multiplier of the image.
The function returns RESULT_SUCCESS
if successful, RESULT_ERROR
otherwise.
Terminate¶
uint8_t result = myFile.endFileSystem();
endFileSystem()
closes the SD-card.
The function returns RESULT_SUCCESS
if successful, RESULT_ERROR
otherwise.
Example¶
This is the core of the code from example File_BMP.ino
.
void fileWriteReadBMP()
{
// Initialise
uint8_t result;
result = myFile.beginFileSystem(5);
if (result != RESULT_SUCCESS)
{
hV_HAL_log(LEVEL_ERROR, "SD-card error");
hV_HAL_Serial_crlf();
return;
}
myScreen.setOrientation(myOrientation);
myScreen.selectFont(fontLarge);
myScreen.clear();
myScreen.gText(8, 8, "File BMP");
myScreen.flushFast();
// Write to SD-card
result = myFile.saveScreen("File_BMP");
wait(4);
myScreen.clear();
myScreen.gText(4, 4, "Reading the file back...");
myScreen.flushFast();
wait(4);
// Read from SD-card
myScreen.clear();
result = myFile.readScreen("File_BMP");
if (result == RESULT_SUCCESS)
{
myScreen.flush();
wait(4);
}
}