This example shows how to use all the functions included in Waspmote SD API
File:
"WaspSD_3_completeExample.pde"
/*
* ------Waspmote SD Complete Example--------
*
* Explanation: This example shows how to use all the functions included
* in Waspmote SD API
*
* 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("... Init SD Card");
USB.println(SD.init());
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);
// Creating Files and getting attributes
if(SD.mkdir("Folder")) USB.println("Created directory 'Folder'");
if(SD.mkdir("Folder2")) USB.println("Created directory 'Folder2'");
USB.println("List root Directory: ");
USB.println(SD.ls());
if(!SD.isFile("Folder")) USB.println("'Folder' is not a file");
if(SD.isDir("Folder")) USB.println("'Folder' is a dir");
USB.print("Attributes of 'Folder': ");
USB.println(SD.getAttributes("Folder"));
// Getting into directory 'Folder'
if(SD.cd("Folder")) USB.println("Entering into 'Folder' ");
// Writing and reading in 'FileText.txt' 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 'Folder': ");
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 and reading in 'FileText2.txt' 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 'Folder': ");
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 and reading in 'FileText3.txt' 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 'Folder': ");
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 and reading in 'FileText4.txt' 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 'Folder': ");
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);
// Listinf 'Folder'
USB.println("List Folder: ");
USB.println(SD.ls());
// 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 'FileText.txt'
if(SD.del("FileText.txt")) USB.println("'FileText.txt' deleted");
USB.println("List 'Folder'");
USB.println(SD.ls());
if(SD.cd("..")) USB.println("Getting out of 'Folder' ");
// Working with 'Folder2' directory
USB.println("List root Directory: ");
USB.println(SD.ls());
if(SD.cd("Folder2")) USB.println("Entering into 'Folder2' ");
if(SD.create("FileText5.txt")) USB.println("'FileText5.txt' created");
USB.println("List 'Folder2' Directory: ");
USB.println(SD.ls());
if(SD.del(".")) USB.println("Content of 'Folder2' deleted");
USB.println("List 'Folder2' Directory: ");
USB.println(SD.ls());
if(SD.cd("..")) USB.println("Getting out of 'Folder2' ");
// Delete directory 'Folder' and 'Folder2'
if(SD.del("Folder")) USB.println("'Folder' deleted");
USB.println("List root directory: ");
USB.println(SD.ls());
if(SD.del("Folder2")) USB.println("'Folder2' 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.