yuppie2

Dependencies:   SDFileSystem mbed

Fork of rtcfinalcodehet by Pradeep Kotipalli

rtsc.cpp

Committer:
pradeepvk2208
Date:
2015-02-03
Revision:
5:3979ca24777a
Parent:
4:374c51671a69

File content as of revision 5:3979ca24777a:

#include "rtsc.h"
SPI spi(PTD6, PTD7, PTD5);
DigitalOut cs(PTD2);

SDFileSystem sd(PTD6, PTD7, PTD5, D10,"sd");

 void spiwrite(int a)
    {
        cs=1;
        cs=0;
        spi.write(a);
        spi.write(0x01);
    }
    
    int spiread(int a)
    {
        cs=1;
        cs=0;
        spi.write(a);
        return(spi.write(0x00));
    }
    char* getname(int year1,int month1,int date1,int day1,int hours1,int minutes1,int seconds1)
{
    year1= hexint(year1);
    month1=hexint(month1);
    date1=hexint(date1);
    day1=hexint(day1);
    hours1=hexint(hours1);
    minutes1=hexint(minutes1);
    seconds1=hexint(seconds1);
    char time[15];
    sprintf(time,"%02d%02d%02d%02d%02d%02d%02d",year1,month1,date1,day1,hours1,minutes1,seconds1);
    
    return(time);
    
}

int hexint(int a)
{
    a=(a/16)*10+(a%16);
    return a;
}
//storedata stores the dummy structure in the file with timestamp as the filename in HK directory
void storedata(void)
{
    spi.format(8,3);
    spi.frequency(1000000);
    spiwrite(0x80);           //write seconds to 01
    spiwrite(0x81);           //write minutes t0 01
    spiwrite(0x82);           //write hours  to 01
    spiwrite(0x83);           //write day of week to 01
    spiwrite(0x84);           //write day of month to 01
    spiwrite(0x85);           //write month to 01
    spiwrite(0x86);           //write year to 01
    for(int i=0;i<1000000;i++){
    int seconds=spiread(0x00);     //read seconds
    int minutes =spiread(0x01);    //read minutes
    int hours =spiread(0x02);      //read hours
    int day =spi.write(0x03);      //read day of the week
    int date =spiread(0x04);       //read day of the month
    int month =spiread(0x05);      //read month
    int year =spiread(0x06);       //read year
    cs = 1;
    
    //Assigning dummy values to the structure
    
    SensorData Sensor;
    
    printf("Writing dummy values\n");
    strcpy( Sensor.Voltage, "49");
    strcpy( Sensor.Current, "83");
    Sensor.Temperature ='5';
    strcpy( Sensor.PanelTemperature, "4");
    Sensor.Vcell_soc='9';
    Sensor.alerts= '4';
    Sensor.crate='7';
    Sensor.BatteryTemperature='6';      
    Sensor.faultpoll='4';            
    Sensor.faultir='g';              
    Sensor.power_mode='k';           
    strcpy( Sensor.AngularSpeed, "9");
    strcpy(Sensor.Bnewvalue,"6");
    printf("Done writing dummy values\n");
    mkdir("/sd/hk", 0777);
    char date2[100]="/sd/hk/";
    strcat(date2,getname(year,month,date,day,hours,minutes,seconds));
    strcat(date2,".txt");
    FILE *fp ;
    fp= fopen(date2, "w");
    if(fp == NULL) {
        error("Could not open file for write\n");
    }
    else
    {
    fprintf(fp, "%s -", Sensor.Voltage);
    fprintf(fp,"%s -",Sensor.Current);
    fprintf(fp,"%c -",Sensor.Temperature);
    fprintf(fp,"%s -",Sensor.PanelTemperature);
    fprintf(fp,"%c -",Sensor.Vcell_soc);            //printing the contents of the strucure in a single line in the file
    fprintf(fp,"%c -",Sensor.alerts);
    fprintf(fp,"%c -",Sensor.crate);
    fprintf(fp,"%c -",Sensor.BatteryTemperature);
    fprintf(fp,"%c -",Sensor.faultpoll);
    fprintf(fp,"%c -",Sensor.faultir);
    fprintf(fp,"%c -",Sensor.power_mode);
    fprintf(fp,"%s -",Sensor.AngularSpeed);
    fprintf(fp,"%s",Sensor.Bnewvalue);
    fclose(fp);
    printf("%s",getname(year,month,date,day,hours,minutes,seconds));
    wait(10);
    
    
    }
    }}