Baseline for testing

Dependents:   mbed_escm2000

Committer:
foxbrianr
Date:
Thu Jul 25 00:43:28 2019 +0000
Revision:
0:929bb73983c5
Child:
1:aaddf80105fe
Baseline for testing

Who changed what in which revision?

UserRevisionLine numberNew contents of line
foxbrianr 0:929bb73983c5 1
foxbrianr 0:929bb73983c5 2 #include "mbed.h"
foxbrianr 0:929bb73983c5 3 #include "EventLog.h"
foxbrianr 0:929bb73983c5 4
foxbrianr 0:929bb73983c5 5
foxbrianr 0:929bb73983c5 6 ESCM_EventLog::ESCM_EventLog() {
foxbrianr 0:929bb73983c5 7 full_=false;
foxbrianr 0:929bb73983c5 8 head_=0;
foxbrianr 0:929bb73983c5 9 tail_=0;
foxbrianr 0:929bb73983c5 10
foxbrianr 0:929bb73983c5 11 }
foxbrianr 0:929bb73983c5 12
foxbrianr 0:929bb73983c5 13 ESCM_EventLog::~ESCM_EventLog() {
foxbrianr 0:929bb73983c5 14 }
foxbrianr 0:929bb73983c5 15
foxbrianr 0:929bb73983c5 16 void ESCM_EventLog::init()
foxbrianr 0:929bb73983c5 17 {
foxbrianr 0:929bb73983c5 18 full_=false;
foxbrianr 0:929bb73983c5 19 head_=0;
foxbrianr 0:929bb73983c5 20 tail_=0;
foxbrianr 0:929bb73983c5 21
foxbrianr 0:929bb73983c5 22 printf("Initializing Event Log\n\r");
foxbrianr 0:929bb73983c5 23
foxbrianr 0:929bb73983c5 24 memset ( events,0,sizeof(ESCM_Event)*MAX_EVENTS);
foxbrianr 0:929bb73983c5 25 }
foxbrianr 0:929bb73983c5 26
foxbrianr 0:929bb73983c5 27 int ESCM_EventLog::load()
foxbrianr 0:929bb73983c5 28 {
foxbrianr 0:929bb73983c5 29 #if 1
foxbrianr 0:929bb73983c5 30 char * filename = "/local/event_log.bin";
foxbrianr 0:929bb73983c5 31 FILE *input = fopen(filename, "rb");
foxbrianr 0:929bb73983c5 32 if(input){
foxbrianr 0:929bb73983c5 33
foxbrianr 0:929bb73983c5 34 printf("Reading %s\n\r",filename );
foxbrianr 0:929bb73983c5 35 int size = MAX_EVENTS;
foxbrianr 0:929bb73983c5 36
foxbrianr 0:929bb73983c5 37 fread(&size, sizeof(uint32_t),1,input);
foxbrianr 0:929bb73983c5 38
foxbrianr 0:929bb73983c5 39 for (int i=0;i<MAX_EVENTS;i++)
foxbrianr 0:929bb73983c5 40 {
foxbrianr 0:929bb73983c5 41 printf("." );
foxbrianr 0:929bb73983c5 42 fread( &events[i].address, sizeof(uint32_t),1 , input);
foxbrianr 0:929bb73983c5 43 fread( events[i].timeStr, sizeof(char) ,40, input);
foxbrianr 0:929bb73983c5 44 }
foxbrianr 0:929bb73983c5 45 fclose(input);
foxbrianr 0:929bb73983c5 46 return 1;
foxbrianr 0:929bb73983c5 47 }
foxbrianr 0:929bb73983c5 48 else
foxbrianr 0:929bb73983c5 49 {
foxbrianr 0:929bb73983c5 50 printf("Could not Read %s\n\r",filename );
foxbrianr 0:929bb73983c5 51 return 0;
foxbrianr 0:929bb73983c5 52 }
foxbrianr 0:929bb73983c5 53 #endif
foxbrianr 0:929bb73983c5 54 }
foxbrianr 0:929bb73983c5 55
foxbrianr 0:929bb73983c5 56 void ESCM_EventLog::save()
foxbrianr 0:929bb73983c5 57 {
foxbrianr 0:929bb73983c5 58 #if 1
foxbrianr 0:929bb73983c5 59 char * filename = "/local/event_log.bin";
foxbrianr 0:929bb73983c5 60 FILE *output = fopen(filename, "wb");
foxbrianr 0:929bb73983c5 61
foxbrianr 0:929bb73983c5 62 printf("Saving %s\n\r",filename );
foxbrianr 0:929bb73983c5 63 int size = MAX_EVENTS;
foxbrianr 0:929bb73983c5 64
foxbrianr 0:929bb73983c5 65 fwrite(&size, sizeof(uint32_t),1,output);
foxbrianr 0:929bb73983c5 66
foxbrianr 0:929bb73983c5 67 for (int i=0;i<MAX_EVENTS;i++)
foxbrianr 0:929bb73983c5 68 {
foxbrianr 0:929bb73983c5 69 printf("." );
foxbrianr 0:929bb73983c5 70 fwrite( &events[i].address, sizeof(uint32_t),1 , output);
foxbrianr 0:929bb73983c5 71 fwrite( events[i].timeStr, sizeof(char) ,40, output);
foxbrianr 0:929bb73983c5 72 }
foxbrianr 0:929bb73983c5 73 fflush(output);
foxbrianr 0:929bb73983c5 74 fclose(output);
foxbrianr 0:929bb73983c5 75
foxbrianr 0:929bb73983c5 76 #endif
foxbrianr 0:929bb73983c5 77
foxbrianr 0:929bb73983c5 78 printf("Done \n\r" );
foxbrianr 0:929bb73983c5 79 }
foxbrianr 0:929bb73983c5 80
foxbrianr 0:929bb73983c5 81 void ESCM_EventLog::display(Serial *pc)
foxbrianr 0:929bb73983c5 82 {
foxbrianr 0:929bb73983c5 83 int j = tail_;
foxbrianr 0:929bb73983c5 84 int i = head_;
foxbrianr 0:929bb73983c5 85 int count = 0 ;
foxbrianr 0:929bb73983c5 86
foxbrianr 0:929bb73983c5 87 pc->printf("\n\r");
foxbrianr 0:929bb73983c5 88 pc->printf("-----------------------------\n\r");
foxbrianr 0:929bb73983c5 89 pc->printf("- Event Log \n\r");
foxbrianr 0:929bb73983c5 90 pc->printf("-----------------------------\n\r");
foxbrianr 0:929bb73983c5 91 pc->printf("%d %d %d \n\r", i,j, full_);
foxbrianr 0:929bb73983c5 92
foxbrianr 0:929bb73983c5 93
foxbrianr 0:929bb73983c5 94 while ( count < size() )
foxbrianr 0:929bb73983c5 95 {
foxbrianr 0:929bb73983c5 96 pc->printf("%02d > %02d :: %s\n\r", count, events[i].address, events[i].timeStr );
foxbrianr 0:929bb73983c5 97 if ( --i <= 0) {
foxbrianr 0:929bb73983c5 98 i =( max_size_ - 1 );
foxbrianr 0:929bb73983c5 99 }
foxbrianr 0:929bb73983c5 100 count++;
foxbrianr 0:929bb73983c5 101 }
foxbrianr 0:929bb73983c5 102 pc->printf("-----------------------------\n\r");
foxbrianr 0:929bb73983c5 103 }
foxbrianr 0:929bb73983c5 104
foxbrianr 0:929bb73983c5 105 void ESCM_EventLog::add(int address)
foxbrianr 0:929bb73983c5 106 {
foxbrianr 0:929bb73983c5 107 ESCM_Event newEvent;
foxbrianr 0:929bb73983c5 108 newEvent.address = address;
foxbrianr 0:929bb73983c5 109 sprintf ( newEvent.timeStr , "%s", "===");
foxbrianr 0:929bb73983c5 110
foxbrianr 0:929bb73983c5 111 put( newEvent );
foxbrianr 0:929bb73983c5 112 }
foxbrianr 0:929bb73983c5 113
foxbrianr 0:929bb73983c5 114 void ESCM_EventLog::add(int address, char* timeStamp)
foxbrianr 0:929bb73983c5 115 {
foxbrianr 0:929bb73983c5 116 ESCM_Event newEvent;
foxbrianr 0:929bb73983c5 117 newEvent.address = address;
foxbrianr 0:929bb73983c5 118 sprintf ( newEvent.timeStr , "%-16s", timeStamp);
foxbrianr 0:929bb73983c5 119
foxbrianr 0:929bb73983c5 120 put( newEvent );
foxbrianr 0:929bb73983c5 121 }
foxbrianr 0:929bb73983c5 122