TeamE7
Dependencies: EthernetInterface HTTPServer RemoteIR SDFileSystem mbed-rpc mbed-rtos mbed
Fork of SmartRemote by
db.cpp@17:66d69f97b861, 2017-01-30 (annotated)
- Committer:
- TeamE7
- Date:
- Mon Jan 30 12:55:27 2017 +0000
- Revision:
- 17:66d69f97b861
- Parent:
- 14:2b63c0f795cb
TeamE7
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 | 10:da52ff0b93c0 | 5 | void db_insert_tuple(char *new_name, char *new_code, char *bitlength, char *format) |
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 | 10:da52ff0b93c0 | 11 | char tuple_bitlength[128]; |
sarvagyavaish | 10:da52ff0b93c0 | 12 | char tuple_format[128]; |
sarvagyavaish | 3:a3b4d032f48f | 13 | int id = 0; |
sarvagyavaish | 3:a3b4d032f48f | 14 | |
sarvagyavaish | 3:a3b4d032f48f | 15 | // create file if it does not exist |
sarvagyavaish | 3:a3b4d032f48f | 16 | FILE *ftemp = fopen("/sd/SmartRemote/db.txt", "a"); |
sarvagyavaish | 3:a3b4d032f48f | 17 | fclose(ftemp); |
sarvagyavaish | 3:a3b4d032f48f | 18 | |
sarvagyavaish | 3:a3b4d032f48f | 19 | // read file to get last id |
sarvagyavaish | 3:a3b4d032f48f | 20 | FILE *fdb = fopen("/sd/SmartRemote/db.txt", "r"); |
sarvagyavaish | 3:a3b4d032f48f | 21 | while ( !feof(fdb) ) { |
sarvagyavaish | 10:da52ff0b93c0 | 22 | db_get_tuple(fdb, tuple_id, tuple_name, tuple_code, tuple_bitlength, tuple_format); |
sarvagyavaish | 3:a3b4d032f48f | 23 | if (strlen(tuple_name) != 0) { |
sarvagyavaish | 10:da52ff0b93c0 | 24 | printf("Tuple: |%s| \t |%s| \t |%s| \t |%s| \t |%s|\n", tuple_id, tuple_name, tuple_code, tuple_bitlength, tuple_format); |
sarvagyavaish | 3:a3b4d032f48f | 25 | id = atoi(tuple_id); |
sarvagyavaish | 3:a3b4d032f48f | 26 | } |
sarvagyavaish | 3:a3b4d032f48f | 27 | } |
sarvagyavaish | 3:a3b4d032f48f | 28 | fclose(fdb); |
sarvagyavaish | 3:a3b4d032f48f | 29 | |
sarvagyavaish | 3:a3b4d032f48f | 30 | // id of new tuple |
sarvagyavaish | 3:a3b4d032f48f | 31 | id++; |
sarvagyavaish | 3:a3b4d032f48f | 32 | sprintf(tuple_id, "%d", id); |
sarvagyavaish | 3:a3b4d032f48f | 33 | |
sarvagyavaish | 3:a3b4d032f48f | 34 | // write new tuple to file |
sarvagyavaish | 3:a3b4d032f48f | 35 | char new_row[128]; |
sarvagyavaish | 3:a3b4d032f48f | 36 | FILE *fwrite = fopen("/sd/SmartRemote/db.txt", "a"); |
sarvagyavaish | 3:a3b4d032f48f | 37 | |
sarvagyavaish | 3:a3b4d032f48f | 38 | if (fwrite == NULL) { // if error |
sarvagyavaish | 3:a3b4d032f48f | 39 | printf("Could not open file for write\n"); |
sarvagyavaish | 3:a3b4d032f48f | 40 | } |
sarvagyavaish | 10:da52ff0b93c0 | 41 | |
sarvagyavaish | 10:da52ff0b93c0 | 42 | // create new row |
sarvagyavaish | 10:da52ff0b93c0 | 43 | sprintf(new_row, "%s\n%s\n%s\n%s\n%s\n", tuple_id, new_name, new_code, bitlength, format); |
sarvagyavaish | 3:a3b4d032f48f | 44 | |
sarvagyavaish | 3:a3b4d032f48f | 45 | fprintf(fwrite, new_row); // write to file |
sarvagyavaish | 3:a3b4d032f48f | 46 | fclose(fwrite); // close file |
sarvagyavaish | 3:a3b4d032f48f | 47 | |
sarvagyavaish | 3:a3b4d032f48f | 48 | printf("Record Added: %s\n", new_row); |
sarvagyavaish | 3:a3b4d032f48f | 49 | } |
sarvagyavaish | 3:a3b4d032f48f | 50 | |
sarvagyavaish | 3:a3b4d032f48f | 51 | void db_print_all(FILE *fread) |
sarvagyavaish | 3:a3b4d032f48f | 52 | { |
sarvagyavaish | 3:a3b4d032f48f | 53 | char c; |
sarvagyavaish | 3:a3b4d032f48f | 54 | while ( !feof(fread) ) { |
sarvagyavaish | 3:a3b4d032f48f | 55 | c=fgetc(fread); |
sarvagyavaish | 3:a3b4d032f48f | 56 | printf("%c", c); |
sarvagyavaish | 3:a3b4d032f48f | 57 | } |
sarvagyavaish | 3:a3b4d032f48f | 58 | } |
sarvagyavaish | 3:a3b4d032f48f | 59 | |
sammacjunkie | 14:2b63c0f795cb | 60 | void db_find_tuple(int id_to_find, char *tuple_name, char *tuple_code, char *tuple_bitlength, char *tuple_format) |
sarvagyavaish | 3:a3b4d032f48f | 61 | { |
sammacjunkie | 14:2b63c0f795cb | 62 | FILE *fread = fopen("/sd/SmartRemote/db.txt", "r"); |
sammacjunkie | 14:2b63c0f795cb | 63 | |
sarvagyavaish | 3:a3b4d032f48f | 64 | char tuple_id[128]; |
sarvagyavaish | 3:a3b4d032f48f | 65 | int id; |
sarvagyavaish | 3:a3b4d032f48f | 66 | |
sarvagyavaish | 3:a3b4d032f48f | 67 | while ( !feof(fread) ) { |
sarvagyavaish | 10:da52ff0b93c0 | 68 | db_get_tuple(fread, tuple_id, tuple_name, tuple_code, tuple_bitlength, tuple_format); |
sarvagyavaish | 3:a3b4d032f48f | 69 | if (strlen(tuple_name) != 0) { |
sarvagyavaish | 3:a3b4d032f48f | 70 | id = atoi(tuple_id); |
sarvagyavaish | 3:a3b4d032f48f | 71 | if (id == id_to_find) { |
sarvagyavaish | 3:a3b4d032f48f | 72 | break; |
sarvagyavaish | 3:a3b4d032f48f | 73 | } |
sarvagyavaish | 3:a3b4d032f48f | 74 | } |
sarvagyavaish | 3:a3b4d032f48f | 75 | else { |
sarvagyavaish | 3:a3b4d032f48f | 76 | sprintf(tuple_id, "%d", 0); |
sarvagyavaish | 10:da52ff0b93c0 | 77 | sprintf(tuple_name, "%s", ""); |
sarvagyavaish | 10:da52ff0b93c0 | 78 | sprintf(tuple_code, "%s", ""); |
sarvagyavaish | 10:da52ff0b93c0 | 79 | sprintf(tuple_bitlength, "%s", ""); |
sarvagyavaish | 10:da52ff0b93c0 | 80 | sprintf(tuple_format, "%s", ""); |
sarvagyavaish | 3:a3b4d032f48f | 81 | } |
sarvagyavaish | 3:a3b4d032f48f | 82 | } |
sarvagyavaish | 3:a3b4d032f48f | 83 | |
sarvagyavaish | 10:da52ff0b93c0 | 84 | printf("Tuple Found: |%s| \t |%s| \t |%s| \t |%s| \t |%s|\n", tuple_id, tuple_name, tuple_code, tuple_bitlength, tuple_format); |
sammacjunkie | 14:2b63c0f795cb | 85 | |
sammacjunkie | 14:2b63c0f795cb | 86 | fclose(fread); |
sarvagyavaish | 3:a3b4d032f48f | 87 | } |
sarvagyavaish | 3:a3b4d032f48f | 88 | |
sarvagyavaish | 10:da52ff0b93c0 | 89 | void db_get_tuple(FILE *fread, char *id_str, char *name_str, char *code_str, char *bitlength_str, char *format_str) |
sarvagyavaish | 3:a3b4d032f48f | 90 | { |
sarvagyavaish | 3:a3b4d032f48f | 91 | |
sarvagyavaish | 3:a3b4d032f48f | 92 | unsigned char c; |
sarvagyavaish | 3:a3b4d032f48f | 93 | int index; |
sarvagyavaish | 3:a3b4d032f48f | 94 | |
sarvagyavaish | 3:a3b4d032f48f | 95 | // read ID; |
sarvagyavaish | 3:a3b4d032f48f | 96 | index = 0; |
sarvagyavaish | 3:a3b4d032f48f | 97 | do { |
sarvagyavaish | 3:a3b4d032f48f | 98 | c = fgetc(fread); |
sarvagyavaish | 3:a3b4d032f48f | 99 | id_str[index] = c; |
sarvagyavaish | 3:a3b4d032f48f | 100 | index++; |
sarvagyavaish | 3:a3b4d032f48f | 101 | } while (c != '\n' && !feof(fread) ); |
sarvagyavaish | 3:a3b4d032f48f | 102 | id_str[index-1] = 0; |
sarvagyavaish | 3:a3b4d032f48f | 103 | |
sarvagyavaish | 3:a3b4d032f48f | 104 | // read NAME; |
sarvagyavaish | 3:a3b4d032f48f | 105 | index = 0; |
sarvagyavaish | 3:a3b4d032f48f | 106 | do { |
sarvagyavaish | 3:a3b4d032f48f | 107 | c = fgetc(fread); |
sarvagyavaish | 3:a3b4d032f48f | 108 | name_str[index] = c; |
sarvagyavaish | 3:a3b4d032f48f | 109 | index++; |
sarvagyavaish | 3:a3b4d032f48f | 110 | } while (c != '\n' && !feof(fread) ); |
sarvagyavaish | 3:a3b4d032f48f | 111 | name_str[index-1] = 0; |
sarvagyavaish | 3:a3b4d032f48f | 112 | |
sarvagyavaish | 3:a3b4d032f48f | 113 | // read CODE |
sarvagyavaish | 3:a3b4d032f48f | 114 | index = 0; |
sarvagyavaish | 3:a3b4d032f48f | 115 | do { |
sarvagyavaish | 3:a3b4d032f48f | 116 | c = fgetc(fread); |
sarvagyavaish | 3:a3b4d032f48f | 117 | code_str[index] = c; |
sarvagyavaish | 3:a3b4d032f48f | 118 | index++; |
sarvagyavaish | 3:a3b4d032f48f | 119 | } while (c != '\n' && !feof(fread) ); |
sarvagyavaish | 3:a3b4d032f48f | 120 | code_str[index-1] = 0; |
sarvagyavaish | 10:da52ff0b93c0 | 121 | |
sarvagyavaish | 10:da52ff0b93c0 | 122 | // read BITLENGTH |
sarvagyavaish | 10:da52ff0b93c0 | 123 | index = 0; |
sarvagyavaish | 10:da52ff0b93c0 | 124 | do { |
sarvagyavaish | 10:da52ff0b93c0 | 125 | c = fgetc(fread); |
sarvagyavaish | 10:da52ff0b93c0 | 126 | bitlength_str[index] = c; |
sarvagyavaish | 10:da52ff0b93c0 | 127 | index++; |
sarvagyavaish | 10:da52ff0b93c0 | 128 | } while (c != '\n' && !feof(fread) ); |
sarvagyavaish | 10:da52ff0b93c0 | 129 | bitlength_str[index-1] = 0; |
sarvagyavaish | 10:da52ff0b93c0 | 130 | |
sarvagyavaish | 10:da52ff0b93c0 | 131 | // read FORMAT |
sarvagyavaish | 10:da52ff0b93c0 | 132 | index = 0; |
sarvagyavaish | 10:da52ff0b93c0 | 133 | do { |
sarvagyavaish | 10:da52ff0b93c0 | 134 | c = fgetc(fread); |
sarvagyavaish | 10:da52ff0b93c0 | 135 | format_str[index] = c; |
sarvagyavaish | 10:da52ff0b93c0 | 136 | index++; |
sarvagyavaish | 10:da52ff0b93c0 | 137 | } while (c != '\n' && !feof(fread) ); |
sarvagyavaish | 10:da52ff0b93c0 | 138 | format_str[index-1] = 0; |
sarvagyavaish | 3:a3b4d032f48f | 139 | } |