FBRLogger final version

Dependencies:   EthernetInterface MSCAN Nanopb SDFileSystem mbed-rtos mbed

main.cpp

Committer:
intrinseca
Date:
2012-10-07
Revision:
0:6f69ea2839fa
Child:
1:5f51069d5e09

File content as of revision 0:6f69ea2839fa:

#include "SDHCFileSystem.h"

SDFileSystem sd(p5, p6, p7, p8, "sd"); // the pinout on the mbed Cool Components workshop board
FILE *logFile;

CAN can1(p30, p29); //Needs to be CAN1 - SD takes CAN0

void can_interrupt()
{
    CANMessage msg;

    if(can1.read(msg))
    {
        fprintf(logFile, "Message Received\r\n");
    }
}

bool file_exists(const char * filename)
{
    if (FILE * file = fopen(filename, "r"))
    {
        fclose(file);
        return true;
    }
    return false;
}

int main() {
    char logIndex = 0;
    char logFileName[50];
    
    printf("Hello World!\r\n");

    mkdir("/sd/fbr", 0777);
    
    can1.attach(&can_interrupt);
    
    do
    {
        sprintf(&logFileName[0], "/sd/fbr/log.%d", logIndex);
        logIndex++;
    } while(file_exists(&logFileName[0]));
        
    printf(&logFileName[0]);
    
    logFile = fopen(&logFileName[0], "w");
    
    if(logFile == NULL) {
        error("Could not open file for write\r\n");
    }
    
    fprintf(logFile, "FBR CAN Log File");

    while(true)
    {
        __wfi();
    }
}