Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: Adafruit_GFX_128x64 DS3231 PinDetect SDFileSystem USBDevice mbed RealtimeMath MODSERIAL
sync.cpp@22:9350752f5414, 2014-06-07 (annotated)
- Committer:
- ellingjp
- Date:
- Sat Jun 07 07:46:38 2014 +0000
- Revision:
- 22:9350752f5414
- Parent:
- 21:2fa676f214fe
- Parent:
- 18:06b718f8e6fd
- Child:
- 23:80083138d609
Another merge;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| ellingjp | 9:a711b5b34d73 | 1 | #include "mbed.h" |
| ellingjp | 9:a711b5b34d73 | 2 | #include "sync.h" |
| paulbartell | 13:227a6cfd2097 | 3 | #include "DS3231.h" |
| paulbartell | 13:227a6cfd2097 | 4 | #include "Timeout.h" |
| paulbartell | 14:006d9087d76c | 5 | #include "SDFileSystem.h" |
| briggsa | 18:06b718f8e6fd | 6 | #include "MODSERIAL.h" |
| briggsa | 18:06b718f8e6fd | 7 | #include "debug.h" |
| briggsa | 18:06b718f8e6fd | 8 | #include <string> |
| briggsa | 18:06b718f8e6fd | 9 | #include <string.h> |
| briggsa | 18:06b718f8e6fd | 10 | #include <stdlib.h> |
| briggsa | 18:06b718f8e6fd | 11 | #include <stdio.h> |
| briggsa | 18:06b718f8e6fd | 12 | #include <limits.h> |
| briggsa | 18:06b718f8e6fd | 13 | #include "comms.h" |
| briggsa | 18:06b718f8e6fd | 14 | |
| paulbartell | 13:227a6cfd2097 | 15 | enum state {IDLE, CAPTURE, SYNC}; |
| paulbartell | 13:227a6cfd2097 | 16 | extern enum state State; |
| paulbartell | 13:227a6cfd2097 | 17 | extern DS3231 rtc; |
| paulbartell | 13:227a6cfd2097 | 18 | Timeout t; |
| ellingjp | 9:a711b5b34d73 | 19 | |
| briggsa | 18:06b718f8e6fd | 20 | //MODSERIAL bt(P0_19, P0_18); // tx, rx |
| briggsa | 18:06b718f8e6fd | 21 | Comms btComm; |
| paulbartell | 13:227a6cfd2097 | 22 | uint16_t packetSeq = 0; |
| ellingjp | 9:a711b5b34d73 | 23 | |
| briggsa | 18:06b718f8e6fd | 24 | bool sync_init() |
| briggsa | 18:06b718f8e6fd | 25 | { |
| ellingjp | 9:a711b5b34d73 | 26 | return true; |
| ellingjp | 9:a711b5b34d73 | 27 | } |
| ellingjp | 9:a711b5b34d73 | 28 | |
| paulbartell | 13:227a6cfd2097 | 29 | |
| briggsa | 18:06b718f8e6fd | 30 | |
| briggsa | 18:06b718f8e6fd | 31 | //void setRtc(packet *p) |
| briggsa | 18:06b718f8e6fd | 32 | //{ |
| briggsa | 18:06b718f8e6fd | 33 | // int dayOfWeek=0, date, month, year, hours, minutes, seconds; |
| briggsa | 18:06b718f8e6fd | 34 | // uint16_t len; |
| briggsa | 18:06b718f8e6fd | 35 | // len = getLen(); |
| briggsa | 18:06b718f8e6fd | 36 | // int i = 0; |
| briggsa | 18:06b718f8e6fd | 37 | // for(i = 0; i < len; i++) |
| briggsa | 18:06b718f8e6fd | 38 | // { |
| briggsa | 18:06b718f8e6fd | 39 | // buff[i] = bt.getc(); |
| briggsa | 18:06b718f8e6fd | 40 | // } |
| briggsa | 18:06b718f8e6fd | 41 | // buff[i] = 0; // end the string with a zero |
| briggsa | 18:06b718f8e6fd | 42 | // sscanf(buff, "%04d-%02d-%02d %02d:%02d:%02d",&year,&month,&date,&hours,&minutes,&seconds); |
| briggsa | 18:06b718f8e6fd | 43 | // rtc.setDate(dayOfWeek, date, month, year); |
| briggsa | 18:06b718f8e6fd | 44 | // rtc.setTime(hours, minutes, seconds); |
| briggsa | 18:06b718f8e6fd | 45 | // //sendResponse(CMD_RTCSET, ACK); |
| briggsa | 18:06b718f8e6fd | 46 | //} |
| paulbartell | 13:227a6cfd2097 | 47 | |
| briggsa | 18:06b718f8e6fd | 48 | //void listSessions() |
| briggsa | 18:06b718f8e6fd | 49 | //{ //todo buffer this with buff |
| briggsa | 18:06b718f8e6fd | 50 | // DIR *dp; |
| briggsa | 18:06b718f8e6fd | 51 | // struct dirent *dirp; |
| briggsa | 18:06b718f8e6fd | 52 | // dp = opendir("/sd/"); |
| briggsa | 18:06b718f8e6fd | 53 | // while((dirp = readdir(dp)) != NULL) { |
| briggsa | 18:06b718f8e6fd | 54 | // bt.puts(dirp->d_name); |
| briggsa | 18:06b718f8e6fd | 55 | // bt.putc(','); |
| briggsa | 18:06b718f8e6fd | 56 | // //todo: put size here? |
| briggsa | 18:06b718f8e6fd | 57 | // bt.puts("\r\\n"); |
| briggsa | 18:06b718f8e6fd | 58 | // } |
| briggsa | 18:06b718f8e6fd | 59 | // closedir(dp); |
| briggsa | 18:06b718f8e6fd | 60 | //} |
| briggsa | 18:06b718f8e6fd | 61 | |
| briggsa | 18:06b718f8e6fd | 62 | //void syncSession() |
| briggsa | 18:06b718f8e6fd | 63 | //{ |
| briggsa | 18:06b718f8e6fd | 64 | // //sendResponse(buf[0], resp); |
| briggsa | 18:06b718f8e6fd | 65 | // //populate packet: |
| briggsa | 18:06b718f8e6fd | 66 | // //1 byte CMD_SYNCSESSION 0x03 |
| briggsa | 18:06b718f8e6fd | 67 | // //2 bytes packet number |
| briggsa | 18:06b718f8e6fd | 68 | // //2 bytes current packet's data's length |
| briggsa | 18:06b718f8e6fd | 69 | // //2 bytes checksum |
| briggsa | 18:06b718f8e6fd | 70 | //} |
| briggsa | 18:06b718f8e6fd | 71 | // |
| briggsa | 18:06b718f8e6fd | 72 | |
| briggsa | 18:06b718f8e6fd | 73 | /* Sends a file over BT stream. Returns |
| briggsa | 18:06b718f8e6fd | 74 | * true on success, false on failure. */ |
| briggsa | 18:06b718f8e6fd | 75 | bool sendFile(string filename) |
| paulbartell | 13:227a6cfd2097 | 76 | { |
| briggsa | 18:06b718f8e6fd | 77 | PC_PRINTLNF("sendFile: Trying to open file %s", filename.c_str()); |
| briggsa | 18:06b718f8e6fd | 78 | FILE *fp = fopen(filename.c_str(), "r"); |
| briggsa | 18:06b718f8e6fd | 79 | if (fp == NULL) { |
| briggsa | 18:06b718f8e6fd | 80 | PC_PRINTLNF("sendFile: Error opening file %s", filename.c_str()); |
| briggsa | 18:06b718f8e6fd | 81 | return false; |
| briggsa | 18:06b718f8e6fd | 82 | } |
| briggsa | 18:06b718f8e6fd | 83 | |
| briggsa | 18:06b718f8e6fd | 84 | uint8_t *d = new uint8_t[PACKET_MAX_DATA]; |
| paulbartell | 13:227a6cfd2097 | 85 | |
| ellingjp | 21:2fa676f214fe | 86 | if (fp == NULL) { |
| ellingjp | 21:2fa676f214fe | 87 | PC_PRINTLNF("sendFile: Error opening file %s", filename.c_str()); |
| ellingjp | 21:2fa676f214fe | 88 | return false; |
| ellingjp | 21:2fa676f214fe | 89 | } |
| ellingjp | 21:2fa676f214fe | 90 | |
| ellingjp | 21:2fa676f214fe | 91 | fseek(fp, 0L, SEEK_END); |
| ellingjp | 21:2fa676f214fe | 92 | int file_size = ftell(fp); |
| ellingjp | 21:2fa676f214fe | 93 | fseek(fp, 0L, SEEK_SET); |
| ellingjp | 21:2fa676f214fe | 94 | |
| ellingjp | 21:2fa676f214fe | 95 | Packet *firstPacket = Packet::create(CMD_SYNCOLDEST, 0x00, sizeof(file_size), (uint8_t *) &file_size); |
| ellingjp | 21:2fa676f214fe | 96 | btComm.sendPacket(firstPacket); |
| ellingjp | 21:2fa676f214fe | 97 | |
| ellingjp | 21:2fa676f214fe | 98 | PC_PRINTLNF("sendFile: first packet checksum = %x", firstPacket->checkSum); |
| ellingjp | 21:2fa676f214fe | 99 | |
| ellingjp | 21:2fa676f214fe | 100 | delete firstPacket; |
| ellingjp | 9:a711b5b34d73 | 101 | |
| ellingjp | 21:2fa676f214fe | 102 | Packet *res; |
| ellingjp | 21:2fa676f214fe | 103 | int n = btComm.receivePacket(&res, TIMEOUT); |
| ellingjp | 21:2fa676f214fe | 104 | if (n <= 0) { |
| ellingjp | 21:2fa676f214fe | 105 | PC_PRINTLN("sendFile: timeout waiting for ack!"); |
| ellingjp | 21:2fa676f214fe | 106 | fclose(fp); |
| ellingjp | 21:2fa676f214fe | 107 | return false; |
| ellingjp | 21:2fa676f214fe | 108 | } |
| ellingjp | 21:2fa676f214fe | 109 | |
| ellingjp | 21:2fa676f214fe | 110 | if (res->cmd != ACK) { |
| ellingjp | 21:2fa676f214fe | 111 | PC_PRINTLN("sendFile: packet received was not an ack!"); |
| ellingjp | 21:2fa676f214fe | 112 | delete res; |
| ellingjp | 21:2fa676f214fe | 113 | fclose(fp); |
| ellingjp | 21:2fa676f214fe | 114 | return false; |
| ellingjp | 21:2fa676f214fe | 115 | } |
| ellingjp | 21:2fa676f214fe | 116 | |
| ellingjp | 21:2fa676f214fe | 117 | delete res; |
| ellingjp | 21:2fa676f214fe | 118 | |
| ellingjp | 21:2fa676f214fe | 119 | uint8_t *d = new uint8_t[PACKET_MAX_DATA]; |
| ellingjp | 21:2fa676f214fe | 120 | |
| briggsa | 18:06b718f8e6fd | 121 | PC_PRINTLN("sendFile: created buffer"); |
| briggsa | 18:06b718f8e6fd | 122 | int len; |
| ellingjp | 21:2fa676f214fe | 123 | int numPackets = 0; |
| ellingjp | 22:9350752f5414 | 124 | |
| briggsa | 18:06b718f8e6fd | 125 | while ( (len = fread(d, 1, PACKET_MAX_DATA, fp) ) > 0 ) { |
| ellingjp | 21:2fa676f214fe | 126 | PC_PRINTLNF("sendFile: packet number: %d ", numPackets); |
| ellingjp | 21:2fa676f214fe | 127 | PC_PRINTLNF("length: %d", len); |
| briggsa | 18:06b718f8e6fd | 128 | PC_PRINTLNF("sendFile: sending packet of length %d", len); |
| briggsa | 18:06b718f8e6fd | 129 | |
| briggsa | 18:06b718f8e6fd | 130 | Packet *p = Packet::create(CMD_SYNCOLDEST, 0x00, len, d); |
| ellingjp | 21:2fa676f214fe | 131 | PC_PRINTLNF("sendFile: packet checksum = %x", p->checkSum); |
| briggsa | 18:06b718f8e6fd | 132 | btComm.sendPacket(p); |
| briggsa | 18:06b718f8e6fd | 133 | delete p; |
| paulbartell | 13:227a6cfd2097 | 134 | |
| ellingjp | 21:2fa676f214fe | 135 | for (int i = 0; i < len; i++) { |
| ellingjp | 21:2fa676f214fe | 136 | PC_PRINTLNF("sendFile: packet[%d] = ", i); |
| ellingjp | 21:2fa676f214fe | 137 | PC_PRINTLNF("%x", d[i]); |
| ellingjp | 21:2fa676f214fe | 138 | } |
| ellingjp | 21:2fa676f214fe | 139 | |
| briggsa | 18:06b718f8e6fd | 140 | PC_PRINTLNF("sendFile: sent packet of length %d", len); |
| ellingjp | 21:2fa676f214fe | 141 | PC_PRINTLN("sendFile: waiting for ack..."); |
| ellingjp | 21:2fa676f214fe | 142 | |
| ellingjp | 21:2fa676f214fe | 143 | Packet *resp; |
| ellingjp | 21:2fa676f214fe | 144 | int n = btComm.receivePacket(&resp, TIMEOUT); |
| ellingjp | 21:2fa676f214fe | 145 | if (n <= 0) { |
| ellingjp | 21:2fa676f214fe | 146 | PC_PRINTLN("sendFile: timeout waiting for ack!"); |
| ellingjp | 21:2fa676f214fe | 147 | fclose(fp); |
| ellingjp | 21:2fa676f214fe | 148 | return false; |
| ellingjp | 21:2fa676f214fe | 149 | } |
| ellingjp | 21:2fa676f214fe | 150 | |
| ellingjp | 21:2fa676f214fe | 151 | if (resp->cmd != ACK) { |
| ellingjp | 21:2fa676f214fe | 152 | PC_PRINTLN("sendFile: packet received was not an ack!"); |
| ellingjp | 21:2fa676f214fe | 153 | delete resp; |
| ellingjp | 21:2fa676f214fe | 154 | fclose(fp); |
| ellingjp | 21:2fa676f214fe | 155 | return false; |
| ellingjp | 21:2fa676f214fe | 156 | } |
| ellingjp | 21:2fa676f214fe | 157 | |
| ellingjp | 21:2fa676f214fe | 158 | delete resp; |
| ellingjp | 21:2fa676f214fe | 159 | |
| ellingjp | 21:2fa676f214fe | 160 | PC_PRINTLN("sendFile: received ack!"); |
| ellingjp | 21:2fa676f214fe | 161 | numPackets++; |
| briggsa | 18:06b718f8e6fd | 162 | } |
| briggsa | 18:06b718f8e6fd | 163 | delete[] d; |
| briggsa | 18:06b718f8e6fd | 164 | |
| ellingjp | 21:2fa676f214fe | 165 | PC_PRINTLNF("sendFile: done sending %s in ", filename.c_str()); |
| ellingjp | 21:2fa676f214fe | 166 | PC_PRINTLNF("%d packets.", numPackets); |
| briggsa | 18:06b718f8e6fd | 167 | PC_PRINTLNF("sendFile: done sending %s", filename.c_str()); |
| briggsa | 18:06b718f8e6fd | 168 | // Appears to be a bug where feof isn't defined, so no error checking :( |
| briggsa | 18:06b718f8e6fd | 169 | // if (!feof(fp)) { |
| briggsa | 18:06b718f8e6fd | 170 | // PC_PRINTLNF("sendFile: Error reading file %s", absolute_filename.c_str()); |
| briggsa | 18:06b718f8e6fd | 171 | // return false; |
| briggsa | 18:06b718f8e6fd | 172 | // } |
| briggsa | 18:06b718f8e6fd | 173 | |
| briggsa | 18:06b718f8e6fd | 174 | fclose(fp); |
| briggsa | 18:06b718f8e6fd | 175 | return true; |
| paulbartell | 13:227a6cfd2097 | 176 | } |
| paulbartell | 13:227a6cfd2097 | 177 | |
| briggsa | 18:06b718f8e6fd | 178 | /* Returns absolute filename of the oldest log file on the SD card */ |
| briggsa | 18:06b718f8e6fd | 179 | bool getOldestFile(string *oldest) |
| paulbartell | 13:227a6cfd2097 | 180 | { |
| briggsa | 18:06b718f8e6fd | 181 | |
| briggsa | 18:06b718f8e6fd | 182 | PC_PRINTLN("Finding oldest file..."); |
| paulbartell | 13:227a6cfd2097 | 183 | |
| briggsa | 18:06b718f8e6fd | 184 | // Ensure all fields get set to zero |
| briggsa | 18:06b718f8e6fd | 185 | long long file_time = {0}; |
| briggsa | 18:06b718f8e6fd | 186 | long long oldest_time = LLONG_MAX; // ensures first file gets set to oldest |
| briggsa | 18:06b718f8e6fd | 187 | string oldest_file; |
| briggsa | 18:06b718f8e6fd | 188 | |
| paulbartell | 14:006d9087d76c | 189 | DIR *dp; |
| paulbartell | 14:006d9087d76c | 190 | struct dirent *dirp; |
| paulbartell | 14:006d9087d76c | 191 | dp = opendir("/sd/"); |
| paulbartell | 13:227a6cfd2097 | 192 | |
| briggsa | 18:06b718f8e6fd | 193 | if (dp == NULL) { |
| briggsa | 18:06b718f8e6fd | 194 | PC_PRINTLN("syncOldestSession: Error opening directory"); |
| briggsa | 18:06b718f8e6fd | 195 | return false; |
| briggsa | 18:06b718f8e6fd | 196 | } |
| paulbartell | 13:227a6cfd2097 | 197 | |
| briggsa | 18:06b718f8e6fd | 198 | while((dirp = readdir(dp)) != NULL) { |
| briggsa | 18:06b718f8e6fd | 199 | char *strp = dirp->d_name; |
| ellingjp | 9:a711b5b34d73 | 200 | |
| briggsa | 18:06b718f8e6fd | 201 | // Verify we are looking at a .log file |
| briggsa | 18:06b718f8e6fd | 202 | char ext[5]; |
| briggsa | 18:06b718f8e6fd | 203 | memcpy(ext, strp+strlen(strp) - 4, 5); |
| briggsa | 18:06b718f8e6fd | 204 | if (strncmp(ext, ".log", 4) == 0) { |
| briggsa | 18:06b718f8e6fd | 205 | PC_PRINTLNF("syncOldestSession: reading file %s", dirp->d_name); |
| briggsa | 18:06b718f8e6fd | 206 | |
| briggsa | 18:06b718f8e6fd | 207 | file_time = strtoll(strp, NULL, 10); |
| briggsa | 18:06b718f8e6fd | 208 | |
| briggsa | 18:06b718f8e6fd | 209 | // If file time is older than oldest time, set the oldest file |
| briggsa | 18:06b718f8e6fd | 210 | // to the current file |
| briggsa | 18:06b718f8e6fd | 211 | if (file_time < oldest_time) { |
| briggsa | 18:06b718f8e6fd | 212 | PC_PRINTLN("syncOldestSession: updating oldest file"); |
| briggsa | 18:06b718f8e6fd | 213 | oldest_time = file_time; |
| briggsa | 18:06b718f8e6fd | 214 | oldest_file = strp; |
| paulbartell | 13:227a6cfd2097 | 215 | } |
| paulbartell | 13:227a6cfd2097 | 216 | } |
| ellingjp | 9:a711b5b34d73 | 217 | } |
| briggsa | 18:06b718f8e6fd | 218 | |
| briggsa | 18:06b718f8e6fd | 219 | PC_PRINTLNF("getOldestFile: prepending /sd/ to %s", oldest_file.c_str()); |
| briggsa | 18:06b718f8e6fd | 220 | *oldest = "/sd/"; |
| briggsa | 18:06b718f8e6fd | 221 | *oldest += oldest_file; |
| briggsa | 18:06b718f8e6fd | 222 | |
| briggsa | 18:06b718f8e6fd | 223 | closedir(dp); |
| briggsa | 18:06b718f8e6fd | 224 | return true; |
| briggsa | 18:06b718f8e6fd | 225 | } |
| briggsa | 18:06b718f8e6fd | 226 | |
| briggsa | 18:06b718f8e6fd | 227 | bool syncOldestSession() |
| briggsa | 18:06b718f8e6fd | 228 | { |
| briggsa | 18:06b718f8e6fd | 229 | string oldest; |
| briggsa | 18:06b718f8e6fd | 230 | |
| briggsa | 18:06b718f8e6fd | 231 | if (getOldestFile(&oldest)) |
| briggsa | 18:06b718f8e6fd | 232 | return sendFile(oldest); |
| briggsa | 18:06b718f8e6fd | 233 | |
| briggsa | 18:06b718f8e6fd | 234 | return false; |
| briggsa | 18:06b718f8e6fd | 235 | } |
| briggsa | 18:06b718f8e6fd | 236 | |
| briggsa | 18:06b718f8e6fd | 237 | bool deleteOldestSession() |
| briggsa | 18:06b718f8e6fd | 238 | { |
| briggsa | 18:06b718f8e6fd | 239 | string oldest; |
| briggsa | 18:06b718f8e6fd | 240 | |
| briggsa | 18:06b718f8e6fd | 241 | if (getOldestFile(&oldest)) { |
| briggsa | 18:06b718f8e6fd | 242 | PC_PRINTLNF("deleteOldestSession: deleting %s", oldest.c_str()); |
| briggsa | 18:06b718f8e6fd | 243 | |
| briggsa | 18:06b718f8e6fd | 244 | if (remove(oldest.c_str()) == 0) { |
| briggsa | 18:06b718f8e6fd | 245 | PC_PRINTLN("deleteOldestSession: delete success"); |
| briggsa | 18:06b718f8e6fd | 246 | // send ack |
| briggsa | 18:06b718f8e6fd | 247 | return true; |
| briggsa | 18:06b718f8e6fd | 248 | } |
| briggsa | 18:06b718f8e6fd | 249 | } |
| briggsa | 18:06b718f8e6fd | 250 | |
| briggsa | 18:06b718f8e6fd | 251 | // send ack |
| briggsa | 18:06b718f8e6fd | 252 | |
| briggsa | 18:06b718f8e6fd | 253 | return false; |
| briggsa | 18:06b718f8e6fd | 254 | } |
| briggsa | 18:06b718f8e6fd | 255 | |
| briggsa | 18:06b718f8e6fd | 256 | void sync() |
| briggsa | 18:06b718f8e6fd | 257 | { |
| briggsa | 18:06b718f8e6fd | 258 | PC_PRINTLN("Entered sync mode..."); |
| briggsa | 18:06b718f8e6fd | 259 | while(State == SYNC) { |
| briggsa | 18:06b718f8e6fd | 260 | PC_PRINTLN("Waiting for packet...") |
| briggsa | 18:06b718f8e6fd | 261 | Packet *p; |
| ellingjp | 22:9350752f5414 | 262 | |
| ellingjp | 21:2fa676f214fe | 263 | int ret = btComm.receivePacket(&p, TIMEOUT); |
| briggsa | 18:06b718f8e6fd | 264 | if (ret == 0) { |
| briggsa | 18:06b718f8e6fd | 265 | PC_PRINTLN("Timeout!"); |
| briggsa | 18:06b718f8e6fd | 266 | continue; |
| briggsa | 18:06b718f8e6fd | 267 | } else if (ret < 0) { |
| briggsa | 18:06b718f8e6fd | 268 | PC_PRINTLN("Received bad packet :("); |
| briggsa | 18:06b718f8e6fd | 269 | continue; |
| briggsa | 18:06b718f8e6fd | 270 | } |
| briggsa | 18:06b718f8e6fd | 271 | |
| briggsa | 18:06b718f8e6fd | 272 | PC_PRINTLNF("cmd: %x", p->cmd); |
| briggsa | 18:06b718f8e6fd | 273 | PC_PRINTLNF("pnum: %x", p->packetNumber); |
| briggsa | 18:06b718f8e6fd | 274 | PC_PRINTLNF("len: %x", p->dataLength); |
| briggsa | 18:06b718f8e6fd | 275 | for (int i = 0; i < p->dataLength; i++) { |
| briggsa | 18:06b718f8e6fd | 276 | PC_PRINTF("data[%d]: ", i); |
| briggsa | 18:06b718f8e6fd | 277 | PC_PRINTLNF("%x", p->data[i]); |
| briggsa | 18:06b718f8e6fd | 278 | } |
| briggsa | 18:06b718f8e6fd | 279 | PC_PRINTLNF("check: %x", p->checkSum); |
| ellingjp | 22:9350752f5414 | 280 | |
| briggsa | 18:06b718f8e6fd | 281 | switch(p->cmd) { |
| briggsa | 18:06b718f8e6fd | 282 | case CMD_SYNCOLDEST: |
| briggsa | 18:06b718f8e6fd | 283 | if (!syncOldestSession()) |
| briggsa | 18:06b718f8e6fd | 284 | PC_PRINTLN("Sync oldest session failed!"); |
| briggsa | 18:06b718f8e6fd | 285 | break; |
| briggsa | 18:06b718f8e6fd | 286 | case CMD_DELETEOLDEST: |
| briggsa | 18:06b718f8e6fd | 287 | if (!deleteOldestSession()) |
| briggsa | 18:06b718f8e6fd | 288 | PC_PRINTLN("Delete oldest session failed!"); |
| briggsa | 18:06b718f8e6fd | 289 | break; |
| briggsa | 18:06b718f8e6fd | 290 | // case CMD_RTCSET: |
| briggsa | 18:06b718f8e6fd | 291 | // //setRtc(p); |
| briggsa | 18:06b718f8e6fd | 292 | // break; |
| briggsa | 18:06b718f8e6fd | 293 | // case CMD_LISTSESSIONS: |
| briggsa | 18:06b718f8e6fd | 294 | // listSessions(); |
| briggsa | 18:06b718f8e6fd | 295 | // break; |
| briggsa | 18:06b718f8e6fd | 296 | // case CMD_SYNCSESSION: |
| briggsa | 18:06b718f8e6fd | 297 | // syncSession(); |
| briggsa | 18:06b718f8e6fd | 298 | // break; |
| briggsa | 18:06b718f8e6fd | 299 | // case CMD_DELETESESSION: |
| briggsa | 18:06b718f8e6fd | 300 | // deleteSession(); |
| briggsa | 18:06b718f8e6fd | 301 | // break; |
| briggsa | 18:06b718f8e6fd | 302 | // case CMD_DONE: |
| briggsa | 18:06b718f8e6fd | 303 | // bt.putc(CMD_DONE); |
| briggsa | 18:06b718f8e6fd | 304 | // //sendResponse(CMD_DONE, ACK); |
| briggsa | 18:06b718f8e6fd | 305 | // State = IDLE; |
| briggsa | 18:06b718f8e6fd | 306 | // break; |
| briggsa | 18:06b718f8e6fd | 307 | // default: break; |
| briggsa | 18:06b718f8e6fd | 308 | } |
| briggsa | 18:06b718f8e6fd | 309 | |
| briggsa | 18:06b718f8e6fd | 310 | PC_PRINTLN("Deleting received packet..."); |
| briggsa | 18:06b718f8e6fd | 311 | delete p; |
| briggsa | 18:06b718f8e6fd | 312 | PC_PRINTLN("Ready for new packet"); |
| briggsa | 18:06b718f8e6fd | 313 | } |
| ellingjp | 9:a711b5b34d73 | 314 | } |