Rihards Balass / 4DGL-mbed-32PTU
Revision:
26:c6a803706a42
Parent:
25:015631f9e875
Child:
27:dbf79d116497
--- a/demo.cpp	Tue Sep 27 11:49:34 2016 +0000
+++ b/demo.cpp	Wed Sep 28 12:41:32 2016 +0000
@@ -6,13 +6,14 @@
 #define LONG_WAIT 1000
 
 // local declarations
-void clearBuf(char *);
+void clearBuf(char*, int);
 
 //**************************************************************************
 // Demo program that goes through file system based functions
 //**************************************************************************
 void PICASO_4DGL :: fileSystemDemo() {
     
+    short h1;
     int i;
     cls();
     screenMode(landscape); // set orientation to landscape
@@ -23,8 +24,9 @@
     if (file_Mount()) puts("\rFAT16 Mount: OK");
     else puts("\rFAT16 Mount: FAIL");
     char buf[100];
-    sprintf(buf, "\n\rFAT16 Error = %i", file_Error());
+    sprintf(buf, "\n\rFAT16 Error = %i\n", file_Error());
     puts(buf);
+    /*
     sprintf(buf, "\n\rFile count on disc = %i\n\r", file_Count("*.*"));
     puts(buf);
     sprintf(buf, "\n\rFound %i files maching 1*.*", file_Dir("1*.*"));
@@ -49,6 +51,102 @@
     else  puts("\n\r3.TXT : DOES NOT EXIST");
     if (file_Exists("4.TXT")) puts("\n\r4.TXT : EXISTS");
     else  puts("\n\r4.TXT : DOES NOT EXIST");
+    wait_ms(LONG_WAIT);
+    cls();
+    */
+    
+    h1 = file_Open("file.txt", OPEN_READ);
+    short err = file_Error();
+    if (err == 0) sprintf(buf, "\r\file.txt handle = %i", h1);
+    else sprintf(buf, "\rFile Open error = %i", err);
+    puts(buf);
+    short count = file_Read(31, h1);
+    if (count == 31) sprintf(buf, "\r\nRead %i bytes from %i", count, h1);
+    else sprintf(buf, "\r\nError = %i\n\rMax data count = %i", file_Error(), count);
+    puts(buf);
+    sprintf(buf, "\r\nData: %s", fileReadBuf);
+    puts(buf);
+    
+    clearBuf(fileReadBuf, BUFFER_SIZE);
+    short hi = 0, lo = 5;
+    sprintf(buf, "\r\nSetting pointer to %i = %s", lo, file_Seek(h1, hi, lo) ? "true" : "false");
+    puts(buf);
+    file_Read(1, h1);
+    sprintf(buf, "\r\nRead char = %c", fileReadBuf[0]);
+    puts(buf);
+    
+    clearBuf(fileReadBuf, BUFFER_SIZE);
+    short recNum = 2;
+    sprintf(buf, "\r\nIndex pointer to %i = %s", lo, file_Index(h1, hi, lo, recNum) ? "true" : "false");
+    puts(buf);
+    file_Read(1, h1);
+    sprintf(buf, "\r\nRead char = %c", fileReadBuf[0]);
+    puts(buf);
+    
+    int pointer = file_Tell(h1);
+    if (pointer >= 0) sprintf(buf, "\r\nPointer = %i", pointer);
+    else sprintf(buf, "\r\nError = %i", file_Error());
+    puts(buf);
+    
+    sprintf(buf, "\r\nFile %i Close = %s", h1, file_Close(h1) ? "true" : "false");
+    puts(buf);
+    
+    h1 = file_Open("newfile.txt", OPEN_READ);
+    err = file_Error();
+    if (err == 0) sprintf(buf, "\r\nnewfile.txt handle = %i", h1);
+    else sprintf(buf, "\rFile Open error = %i", err);
+    puts(buf);
+    
+    clearBuf(fileReadBuf, BUFFER_SIZE);
+    count = file_Read(18, h1);
+    if (count == 18) sprintf(buf, "\r\nRead %i bytes from %i", count, h1);
+    else sprintf(buf, "\r\nError = %i\n\rMax data count = %i", file_Error(), count);
+    puts(buf);
+    sprintf(buf, "\r\nData: %s", fileReadBuf);
+    puts(buf);
+    
+    sprintf(buf, "\r\nFile %i size = %i", h1, file_Size(h1));
+    puts(buf);
+    
+    sprintf(buf, "\r\nFile %i Close = %s", h1, file_Close(h1) ? "true" : "false");
+    puts(buf);
+    
+    short h2 = file_Open("scr.png", OPEN_APPEND);
+    file_ScreenCapture(10, 10, 200, 100, h2);
+    file_Close(h2);
+    
+    wait_ms(LONG_WAIT);
+    cls();
+    
+    h2 = file_Open("pic.bmp", OPEN_READ);
+    file_Image(5, 5, h2);
+    
+    /*
+    h1 = file_Open("newfile.txt", OPEN_APPEND); // try appending to file
+    err = file_Error();
+    if (err == 0) sprintf(buf, "\r\nnewfile.txt handle = %i", h1);
+    else sprintf(buf, "\rFile Open error = %i", err);
+    puts(buf);
+    
+    count = file_Write(13, " My Precious!", h1); // add data
+    file_Close(h1); // close file
+    h1 = file_Open("newfile.txt", OPEN_READ); // open in read mode again
+    err = file_Error();
+    if (err != 0) {
+        sprintf(buf, "\rFile Open error = %i", err);
+        puts(buf);
+    }
+    
+    clearBuf(fileReadBuf, BUFFER_SIZE); // clear buffer 
+    count = file_Read(18, h1); // read bytes
+    if (count != 18) {
+        sprintf(buf, "\r\nError = %i\n\rMax data count = %i", file_Error(), count);
+        puts(buf);
+    }
+    sprintf(buf, "\r\nData: %s", fileReadBuf);
+    puts(buf);
+    */
+    
     
 }
 //**************************************************************************
@@ -745,8 +843,9 @@
 
 }
 
-void clearBuf(char *str) {
+void clearBuf(char *str, int size) {
     int i;
-    for (i = 0; i < strlen(str); i++) 
+    for (i = 0; i < size; i++) {
         str[i] = 0;
+    }
 }
\ No newline at end of file