This example shows how to handle files using Waspmote SD
File:
"WaspSD_1_handlingFiles.pde"
/*
* ------Waspmote SD Handling Files Example--------
*
* Explanation: This example shows how to handle files using Waspmote
* SD
*
* Copyright (C) 2009 Libelium Comunicaciones Distribuidas S.L.
* http://www.libelium.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Version: 0.1
* Design: David Gascón
* Implementation: Alberto Bielsa
*/
const char* command="Folder1";
const char* command2="Folder2";
const char* command3="Test4";
const char* filename="file3.txt";
void setup() {
USB.begin();
USB.println("Start WASP FAT 16 SD-Card Test\n");
// Set SD ON
SD.ON();
}
void loop()
{
// Init SD
USB.println("DISK INFO: ");
USB.println(SD.print_disk_info());
// Getting Disk Size
USB.print("Disk Size: ");
USB.println(SD.getDiskSize());
USB.print("Disk Free: ");
USB.println(SD.getDiskFree());
// Listing Root Directory. Initially empty
USB.println("List root Directory: ");
USB.println(SD.ls());
// Creating Files
if(SD.create("Test_File_1")) USB.println("Created a file called 'Test_File_1'");
if(SD.create("Test_File_2")) USB.println("Created a file called 'Test_File_2'");
// Listing Atributes of files
USB.println("List attributes of second file in root directory: ");
USB.println(SD.ls(1,1,ATTRIBUTES));
USB.println("List second file in root directory: ");
USB.println(SD.ls(1));
USB.print("Amount of files in root directory: ");
USB.println(SD.numFiles(),DEC);
//Writing ang reading File
if(SD.create("FileText.txt")) USB.println("'FileText.txt' created");
if(SD.appendln("FileText.txt","aaaaa\nbbbbb\nccccc")) USB.println("Write to 'FileText.txt' ");
USB.println("Show 'FileText.txt': ");
USB.println(SD.cat("FileText.txt",0,17));
USB.println("List root Directory: ");
USB.println(SD.ls());
if(SD.writeSD("FileText.txt","byeee",6)) USB.println("Insert 'byeee' in FileText.txt");
USB.println("Show 'FileText.txt': ");
USB.println(SD.cat("FileText.txt",0,17));
USB.print("Number of lines of 'FileText.txt': ");
USB.println(SD.numln("FileText.txt"),DEC);
USB.print("Size of 'FileText.txt': ");
USB.println(SD.getFileSize("FileText.txt"),DEC);
USB.print("Attributes of 'FileText.txt': ");
USB.println(SD.getAttributes("FileText.txt"));
//Writing ang reading File
if(SD.create("FileText2.txt")) USB.println("'FileText2.txt' created");
if(SD.appendln("FileText2.txt","aaaaa\nbbbbb")) USB.println("Write to 'FileText2.txt' ");
USB.println("Show 'FileText2.txt': ");
USB.println(SD.cat("FileText2.txt",0,11));
USB.println("List root Directory: ");
USB.println(SD.ls());
if(SD.writeSD("FileText2.txt","byeee",6)) USB.println("Insert 'byeee' in FileText2.txt");
USB.println("Show 'FileText2.txt': ");
USB.println(SD.cat("FileText2.txt",0,11));
USB.print("Number of lines of 'FileText2.txt': ");
USB.println(SD.numln("FileText2.txt"),DEC);
USB.print("Size of 'FileText2.txt': ");
USB.println(SD.getFileSize("FileText2.txt"),DEC);
USB.print("Attributes of 'FileText2.txt': ");
USB.println(SD.getAttributes("FileText2.txt"));
//Writing ang reading File
if(SD.create("FileText3.txt")) USB.println("'FileText3.txt' created");
if(SD.appendln("FileText3.txt","aaaaa")) USB.println("Write to 'FileText3.txt' ");
USB.println("Show 'FileText3.txt': ");
USB.println(SD.cat("FileText3.txt",0,5));
USB.println("List root Directory: ");
USB.println(SD.ls());
if(SD.writeSD("FileText3.txt","byeee",0)) USB.println("Insert 'byeee' in FileText3.txt");
USB.println("Show 'FileText3.txt': ");
USB.println(SD.cat("FileText3.txt",0,5));
USB.print("Number of lines of 'FileText3.txt': ");
USB.println(SD.numln("FileText3.txt"),DEC);
USB.print("Size of 'FileText3.txt': ");
USB.println(SD.getFileSize("FileText3.txt"),DEC);
USB.print("Attributes of 'FileText3.txt': ");
USB.println(SD.getAttributes("FileText3.txt"));
//Writing ang reading File
if(SD.create("FileText4.txt")) USB.println("'FileText4.txt' created");
if(SD.appendln("FileText4.txt","000000000011111111112222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000111111111122222222223333333333444444444455555555556666666666777777777778888888888999999999900000000001111111111222222222233333333334444444444")) USB.println("Write to 'FileText3.txt' ");
USB.println("Show 'FileText4.txt': ");
USB.println(SD.cat("FileText4.txt",0,255));
USB.println("List root Directory: ");
USB.println(SD.ls());
if(SD.writeSD("FileText4.txt","byeee",0)) USB.println("Insert 'byeee' in FileText3.txt");
USB.println("Show 'FileText4.txt': ");
USB.println(SD.cat("FileText4.txt",0,255));
USB.print("Number of lines of 'FileText4.txt': ");
USB.println(SD.numln("FileText4.txt"),DEC);
USB.print("Size of 'FileText4.txt': ");
USB.println(SD.getFileSize("FileText4.txt"),DEC);
USB.print("Attributes of 'FileText4.txt': ");
USB.println(SD.getAttributes("FileText4.txt"));
// Opening and closing a file using other functions
struct fat_file_struct* fp=SD.openFile("FileText3.txt");
if(fp) USB.println("OK");
SD.closeFile(fp);
// Finding patterns in a file
USB.println("Show 2nd and 3rd Lines of 'FileText.txt' ");
USB.println(SD.catln("FileText.txt",1,2));
USB.print("Pattern '11' is found in 'FileText4' at possition: ");
USB.println(SD.indexOf("FileText4.txt","11",0),DEC);
// Deleting all created files
USB.println("List root Directory: ");
USB.println(SD.ls());
if(SD.del("FileText4.txt")) USB.println("File 'FileText4.txt' deleted");
if(SD.del("FileText3.txt")) USB.println("File 'FileText3.txt' deleted");
if(SD.del("FileText2.txt")) USB.println("File 'FileText2.txt' deleted");
if(SD.del("FileText.txt")) USB.println("File 'FileText1.txt' deleted");
if(SD.del("Test_File_1")) USB.println("File 'Test_File_1' deleted");
if(SD.del("Test_File_2")) USB.println("File 'Test_File_2' deleted");
// Same disk free as when starting the example
USB.println("List root directory: ");
USB.println(SD.ls());
USB.print("Disk Free: ");
USB.println(SD.getDiskFree());
delay(5000);
}
You can download the code of this example.