Groep E3 - EMDEV
Dependencies: EthernetInterface HTTPServer RemoteIR SDFileSystem mbed-rpc mbed-rtos mbed
Fork of SmartRemote by
db.cpp@3:a3b4d032f48f, 2013-12-02 (annotated)
- Committer:
- sarvagyavaish
- Date:
- Mon Dec 02 20:21:10 2013 +0000
- Revision:
- 3:a3b4d032f48f
- Child:
- 10:da52ff0b93c0
dependencies broken;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sarvagyavaish | 3:a3b4d032f48f | 1 | #include "mbed.h" |
sarvagyavaish | 3:a3b4d032f48f | 2 | #include "db.h" |
sarvagyavaish | 3:a3b4d032f48f | 3 | #include "SDFileSystem.h" |
sarvagyavaish | 3:a3b4d032f48f | 4 | |
sarvagyavaish | 3:a3b4d032f48f | 5 | void db_insert_tuple(char *new_name, char *new_code) |
sarvagyavaish | 3:a3b4d032f48f | 6 | { |
sarvagyavaish | 3:a3b4d032f48f | 7 | |
sarvagyavaish | 3:a3b4d032f48f | 8 | char tuple_code[128]; |
sarvagyavaish | 3:a3b4d032f48f | 9 | char tuple_name[128]; |
sarvagyavaish | 3:a3b4d032f48f | 10 | char tuple_id[128]; |
sarvagyavaish | 3:a3b4d032f48f | 11 | int id = 0; |
sarvagyavaish | 3:a3b4d032f48f | 12 | |
sarvagyavaish | 3:a3b4d032f48f | 13 | // create file if it does not exist |
sarvagyavaish | 3:a3b4d032f48f | 14 | FILE *ftemp = fopen("/sd/SmartRemote/db.txt", "a"); |
sarvagyavaish | 3:a3b4d032f48f | 15 | fclose(ftemp); |
sarvagyavaish | 3:a3b4d032f48f | 16 | |
sarvagyavaish | 3:a3b4d032f48f | 17 | // read file to get last id |
sarvagyavaish | 3:a3b4d032f48f | 18 | FILE *fdb = fopen("/sd/SmartRemote/db.txt", "r"); |
sarvagyavaish | 3:a3b4d032f48f | 19 | while ( !feof(fdb) ) { |
sarvagyavaish | 3:a3b4d032f48f | 20 | db_get_tuple(fdb, tuple_id, tuple_name, tuple_code); |
sarvagyavaish | 3:a3b4d032f48f | 21 | if (strlen(tuple_name) != 0) { |
sarvagyavaish | 3:a3b4d032f48f | 22 | printf("Tuple: |%s| \t |%s| \t |%s|\n", tuple_id, tuple_name, tuple_code); |
sarvagyavaish | 3:a3b4d032f48f | 23 | id = atoi(tuple_id); |
sarvagyavaish | 3:a3b4d032f48f | 24 | } |
sarvagyavaish | 3:a3b4d032f48f | 25 | } |
sarvagyavaish | 3:a3b4d032f48f | 26 | fclose(fdb); |
sarvagyavaish | 3:a3b4d032f48f | 27 | |
sarvagyavaish | 3:a3b4d032f48f | 28 | // id of new tuple |
sarvagyavaish | 3:a3b4d032f48f | 29 | id++; |
sarvagyavaish | 3:a3b4d032f48f | 30 | sprintf(tuple_id, "%d", id); |
sarvagyavaish | 3:a3b4d032f48f | 31 | |
sarvagyavaish | 3:a3b4d032f48f | 32 | // write new tuple to file |
sarvagyavaish | 3:a3b4d032f48f | 33 | char new_row[128]; |
sarvagyavaish | 3:a3b4d032f48f | 34 | FILE *fwrite = fopen("/sd/SmartRemote/db.txt", "a"); |
sarvagyavaish | 3:a3b4d032f48f | 35 | |
sarvagyavaish | 3:a3b4d032f48f | 36 | if (fwrite == NULL) { // if error |
sarvagyavaish | 3:a3b4d032f48f | 37 | printf("Could not open file for write\n"); |
sarvagyavaish | 3:a3b4d032f48f | 38 | } |
sarvagyavaish | 3:a3b4d032f48f | 39 | sprintf(new_row, "%s\n%s\n%s\n", tuple_id, new_name, new_code); // create new row |
sarvagyavaish | 3:a3b4d032f48f | 40 | |
sarvagyavaish | 3:a3b4d032f48f | 41 | fprintf(fwrite, new_row); // write to file |
sarvagyavaish | 3:a3b4d032f48f | 42 | fclose(fwrite); // close file |
sarvagyavaish | 3:a3b4d032f48f | 43 | |
sarvagyavaish | 3:a3b4d032f48f | 44 | printf("Record Added: %s\n", new_row); |
sarvagyavaish | 3:a3b4d032f48f | 45 | } |
sarvagyavaish | 3:a3b4d032f48f | 46 | |
sarvagyavaish | 3:a3b4d032f48f | 47 | void db_print_all(FILE *fread) |
sarvagyavaish | 3:a3b4d032f48f | 48 | { |
sarvagyavaish | 3:a3b4d032f48f | 49 | char c; |
sarvagyavaish | 3:a3b4d032f48f | 50 | while ( !feof(fread) ) { |
sarvagyavaish | 3:a3b4d032f48f | 51 | c=fgetc(fread); |
sarvagyavaish | 3:a3b4d032f48f | 52 | printf("%c", c); |
sarvagyavaish | 3:a3b4d032f48f | 53 | } |
sarvagyavaish | 3:a3b4d032f48f | 54 | } |
sarvagyavaish | 3:a3b4d032f48f | 55 | |
sarvagyavaish | 3:a3b4d032f48f | 56 | void db_find_tuple(FILE *fread, int id_to_find, char *tuple_name, char *tuple_code) |
sarvagyavaish | 3:a3b4d032f48f | 57 | { |
sarvagyavaish | 3:a3b4d032f48f | 58 | char tuple_id[128]; |
sarvagyavaish | 3:a3b4d032f48f | 59 | int id; |
sarvagyavaish | 3:a3b4d032f48f | 60 | |
sarvagyavaish | 3:a3b4d032f48f | 61 | while ( !feof(fread) ) { |
sarvagyavaish | 3:a3b4d032f48f | 62 | db_get_tuple(fread, tuple_id, tuple_name, tuple_code); |
sarvagyavaish | 3:a3b4d032f48f | 63 | if (strlen(tuple_name) != 0) { |
sarvagyavaish | 3:a3b4d032f48f | 64 | id = atoi(tuple_id); |
sarvagyavaish | 3:a3b4d032f48f | 65 | if (id == id_to_find) { |
sarvagyavaish | 3:a3b4d032f48f | 66 | break; |
sarvagyavaish | 3:a3b4d032f48f | 67 | } |
sarvagyavaish | 3:a3b4d032f48f | 68 | } |
sarvagyavaish | 3:a3b4d032f48f | 69 | else { |
sarvagyavaish | 3:a3b4d032f48f | 70 | sprintf(tuple_id, "%d", 0); |
sarvagyavaish | 3:a3b4d032f48f | 71 | sprintf(tuple_id, "%s", ""); |
sarvagyavaish | 3:a3b4d032f48f | 72 | sprintf(tuple_id, "%s", ""); |
sarvagyavaish | 3:a3b4d032f48f | 73 | } |
sarvagyavaish | 3:a3b4d032f48f | 74 | } |
sarvagyavaish | 3:a3b4d032f48f | 75 | |
sarvagyavaish | 3:a3b4d032f48f | 76 | printf("Tuple Found: |%s| \t |%s| \t |%s|\n", tuple_id, tuple_name, tuple_code); |
sarvagyavaish | 3:a3b4d032f48f | 77 | |
sarvagyavaish | 3:a3b4d032f48f | 78 | } |
sarvagyavaish | 3:a3b4d032f48f | 79 | |
sarvagyavaish | 3:a3b4d032f48f | 80 | void db_get_tuple(FILE *fread, char *id_str, char *name_str, char *code_str) |
sarvagyavaish | 3:a3b4d032f48f | 81 | { |
sarvagyavaish | 3:a3b4d032f48f | 82 | |
sarvagyavaish | 3:a3b4d032f48f | 83 | unsigned char c; |
sarvagyavaish | 3:a3b4d032f48f | 84 | int index; |
sarvagyavaish | 3:a3b4d032f48f | 85 | |
sarvagyavaish | 3:a3b4d032f48f | 86 | // read ID; |
sarvagyavaish | 3:a3b4d032f48f | 87 | index = 0; |
sarvagyavaish | 3:a3b4d032f48f | 88 | do { |
sarvagyavaish | 3:a3b4d032f48f | 89 | c = fgetc(fread); |
sarvagyavaish | 3:a3b4d032f48f | 90 | id_str[index] = c; |
sarvagyavaish | 3:a3b4d032f48f | 91 | index++; |
sarvagyavaish | 3:a3b4d032f48f | 92 | } while (c != '\n' && !feof(fread) ); |
sarvagyavaish | 3:a3b4d032f48f | 93 | id_str[index-1] = 0; |
sarvagyavaish | 3:a3b4d032f48f | 94 | |
sarvagyavaish | 3:a3b4d032f48f | 95 | // read NAME; |
sarvagyavaish | 3:a3b4d032f48f | 96 | index = 0; |
sarvagyavaish | 3:a3b4d032f48f | 97 | do { |
sarvagyavaish | 3:a3b4d032f48f | 98 | c = fgetc(fread); |
sarvagyavaish | 3:a3b4d032f48f | 99 | name_str[index] = c; |
sarvagyavaish | 3:a3b4d032f48f | 100 | index++; |
sarvagyavaish | 3:a3b4d032f48f | 101 | } while (c != '\n' && !feof(fread) ); |
sarvagyavaish | 3:a3b4d032f48f | 102 | name_str[index-1] = 0; |
sarvagyavaish | 3:a3b4d032f48f | 103 | |
sarvagyavaish | 3:a3b4d032f48f | 104 | // read CODE |
sarvagyavaish | 3:a3b4d032f48f | 105 | index = 0; |
sarvagyavaish | 3:a3b4d032f48f | 106 | do { |
sarvagyavaish | 3:a3b4d032f48f | 107 | c = fgetc(fread); |
sarvagyavaish | 3:a3b4d032f48f | 108 | code_str[index] = c; |
sarvagyavaish | 3:a3b4d032f48f | 109 | index++; |
sarvagyavaish | 3:a3b4d032f48f | 110 | } while (c != '\n' && !feof(fread) ); |
sarvagyavaish | 3:a3b4d032f48f | 111 | code_str[index-1] = 0; |
sarvagyavaish | 3:a3b4d032f48f | 112 | } |