H’okay, so this seems to be doing the trick!
#include "application.h"
#include "sd-card-library.h"
// SOFTWARE SPI pin configuration - modify as required
// The default pins are the same as HARDWARE SPI
const uint8_t chipSelect = A2; // Also used for HARDWARE SPI setup
const uint8_t mosiPin = A5;
const uint8_t misoPin = A4;
const uint8_t clockPin = A3;
unsigned long tail = 0;
unsigned long nextTail = 0;
unsigned long head = 0;
SdFile root;
Sd2Card card;
SdVolume volume;
SdFile file;
File myFile;
SYSTEM_MODE(SEMI_AUTOMATIC);
void setup()
{
Serial.begin(115200);
while (!Serial.available()) SPARK_WLAN_Loop();
Serial.print("Initializing SD card...");
// Initialize SOFTWARE SPI
if (!card.init(mosiPin, misoPin, clockPin, chipSelect))
{
Serial.println("initialization failed! 1");
return;
}
if (!SD.begin(mosiPin, misoPin, clockPin, chipSelect))
{
Serial.println("initialization failed! 2");
return;
}
if (!volume.init(card))
{
Serial.println("Could not find FAT16/FAT32 partition.\nMake sure you've formatted the card");
return;
}
Serial.println("initialization done.");
}
void loop()
{
if (Time.second()%30 == 0)
{
root.openRoot(volume);
root.ls(LS_R | LS_DATE | LS_SIZE);
Serial.println();
myFile = SD.open("delete.txt", O_RDWR);
head = myFile.position();
myFile.write("testing 1, delete.\r\n");
myFile.write("testing 2, delete.\r\n");
myFile.write("testing 3, delete.\r\n");
myFile.write("testing 4, delete.\r\n");
myFile.seek(tail);
int r = random(10); // simulate succesful transmission
if(r%2 == 0)
{
Serial.println("Succesful Tranmission");
while(myFile.available())
{
while(myFile.available())
{
char T = myFile.peek();
if (T == '\n')
{
// Make String, to be able to send
break;
}
myFile.read();
}
tail = myFile.position();
if (tail == head)
{
myFile.close();
file.open(root, "delete.txt");
file.truncate(0);
file.close();
root.ls(LS_R | LS_DATE | LS_SIZE);
}
}
}
Serial.println("Unsuccesful Tranmission");
myFile.close();
root.close();
}
}