Arianna autonomous DAQ firmware

Dependencies:   mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW

Revision:
122:c1b5023eac69
Parent:
103:0ea896a0953a
--- a/SnSDUtils.cpp	Thu Nov 30 06:26:18 2017 +0000
+++ b/SnSDUtils.cpp	Fri Dec 01 16:29:10 2017 +0000
@@ -522,6 +522,39 @@
     return fgCurFile;
 }
 
+bool SnSDUtils::CopyFileToSD(const char* const infn,
+                             const char* const outfn,
+                             char* const buf,
+                             const uint32_t bsize) {
+    // bsize must be >1
+#ifdef DEBUG
+    printf("copying [%s] to [%s]\r\n", infn, outfn);
+#endif
+    Watchdog::kick(); // don't reset
+    if (InitSDCard()) {
+        FILE* inf  = fopen(infn, "rb");
+        FILE* outf = OpenSDFile(outfn, "wb", false);
+        if ( (inf>0) & (outf>0) ) {
+            size_t nread(0);
+            while ( nread=fread(buf, sizeof(char), bsize-1, inf), nread>0) {
+                const char* b = buf;
+                size_t nwritten(0);
+                do {
+                    nwritten = fwrite(b, sizeof(char), nread, outf);
+                    nread -= nwritten;
+                    b     += nwritten;
+                } while (nread>0);
+            }
+            fclose(inf);
+            fclose(outf);
+            if (nread==0) {
+                return true;
+            }
+        }
+    }
+    return false;
+}
+
 void SnSDUtils::PrintFilesInDirs(const char* dirname) {
     Watchdog::kick(); // don't reset
     if (InitSDCard()) {