Groep E3 - EMDEV
Dependencies: EthernetInterface HTTPServer RemoteIR SDFileSystem mbed-rpc mbed-rtos mbed
Fork of SmartRemote by
db.cpp@10:da52ff0b93c0, 2013-12-03 (annotated)
- Committer:
- sarvagyavaish
- Date:
- Tue Dec 03 04:04:04 2013 +0000
- Revision:
- 10:da52ff0b93c0
- Parent:
- 3:a3b4d032f48f
- Child:
- 14:2b63c0f795cb
added format and botlength to db
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 | |
sarvagyavaish | 10:da52ff0b93c0 | 60 | void db_find_tuple(FILE *fread, int id_to_find, char *tuple_name, char *tuple_code, char *tuple_bitlength, char *tuple_format) |
sarvagyavaish | 3:a3b4d032f48f | 61 | { |
sarvagyavaish | 3:a3b4d032f48f | 62 | char tuple_id[128]; |
sarvagyavaish | 3:a3b4d032f48f | 63 | int id; |
sarvagyavaish | 3:a3b4d032f48f | 64 | |
sarvagyavaish | 3:a3b4d032f48f | 65 | while ( !feof(fread) ) { |
sarvagyavaish | 10:da52ff0b93c0 | 66 | db_get_tuple(fread, tuple_id, tuple_name, tuple_code, tuple_bitlength, tuple_format); |
sarvagyavaish | 3:a3b4d032f48f | 67 | if (strlen(tuple_name) != 0) { |
sarvagyavaish | 3:a3b4d032f48f | 68 | id = atoi(tuple_id); |
sarvagyavaish | 3:a3b4d032f48f | 69 | if (id == id_to_find) { |
sarvagyavaish | 3:a3b4d032f48f | 70 | break; |
sarvagyavaish | 3:a3b4d032f48f | 71 | } |
sarvagyavaish | 3:a3b4d032f48f | 72 | } |
sarvagyavaish | 3:a3b4d032f48f | 73 | else { |
sarvagyavaish | 3:a3b4d032f48f | 74 | sprintf(tuple_id, "%d", 0); |
sarvagyavaish | 10:da52ff0b93c0 | 75 | sprintf(tuple_name, "%s", ""); |
sarvagyavaish | 10:da52ff0b93c0 | 76 | sprintf(tuple_code, "%s", ""); |
sarvagyavaish | 10:da52ff0b93c0 | 77 | sprintf(tuple_bitlength, "%s", ""); |
sarvagyavaish | 10:da52ff0b93c0 | 78 | sprintf(tuple_format, "%s", ""); |
sarvagyavaish | 3:a3b4d032f48f | 79 | } |
sarvagyavaish | 3:a3b4d032f48f | 80 | } |
sarvagyavaish | 3:a3b4d032f48f | 81 | |
sarvagyavaish | 10:da52ff0b93c0 | 82 | printf("Tuple Found: |%s| \t |%s| \t |%s| \t |%s| \t |%s|\n", tuple_id, tuple_name, tuple_code, tuple_bitlength, tuple_format); |
sarvagyavaish | 3:a3b4d032f48f | 83 | |
sarvagyavaish | 3:a3b4d032f48f | 84 | } |
sarvagyavaish | 3:a3b4d032f48f | 85 | |
sarvagyavaish | 10:da52ff0b93c0 | 86 | void db_get_tuple(FILE *fread, char *id_str, char *name_str, char *code_str, char *bitlength_str, char *format_str) |
sarvagyavaish | 3:a3b4d032f48f | 87 | { |
sarvagyavaish | 3:a3b4d032f48f | 88 | |
sarvagyavaish | 3:a3b4d032f48f | 89 | unsigned char c; |
sarvagyavaish | 3:a3b4d032f48f | 90 | int index; |
sarvagyavaish | 3:a3b4d032f48f | 91 | |
sarvagyavaish | 3:a3b4d032f48f | 92 | // read ID; |
sarvagyavaish | 3:a3b4d032f48f | 93 | index = 0; |
sarvagyavaish | 3:a3b4d032f48f | 94 | do { |
sarvagyavaish | 3:a3b4d032f48f | 95 | c = fgetc(fread); |
sarvagyavaish | 3:a3b4d032f48f | 96 | id_str[index] = c; |
sarvagyavaish | 3:a3b4d032f48f | 97 | index++; |
sarvagyavaish | 3:a3b4d032f48f | 98 | } while (c != '\n' && !feof(fread) ); |
sarvagyavaish | 3:a3b4d032f48f | 99 | id_str[index-1] = 0; |
sarvagyavaish | 3:a3b4d032f48f | 100 | |
sarvagyavaish | 3:a3b4d032f48f | 101 | // read NAME; |
sarvagyavaish | 3:a3b4d032f48f | 102 | index = 0; |
sarvagyavaish | 3:a3b4d032f48f | 103 | do { |
sarvagyavaish | 3:a3b4d032f48f | 104 | c = fgetc(fread); |
sarvagyavaish | 3:a3b4d032f48f | 105 | name_str[index] = c; |
sarvagyavaish | 3:a3b4d032f48f | 106 | index++; |
sarvagyavaish | 3:a3b4d032f48f | 107 | } while (c != '\n' && !feof(fread) ); |
sarvagyavaish | 3:a3b4d032f48f | 108 | name_str[index-1] = 0; |
sarvagyavaish | 3:a3b4d032f48f | 109 | |
sarvagyavaish | 3:a3b4d032f48f | 110 | // read CODE |
sarvagyavaish | 3:a3b4d032f48f | 111 | index = 0; |
sarvagyavaish | 3:a3b4d032f48f | 112 | do { |
sarvagyavaish | 3:a3b4d032f48f | 113 | c = fgetc(fread); |
sarvagyavaish | 3:a3b4d032f48f | 114 | code_str[index] = c; |
sarvagyavaish | 3:a3b4d032f48f | 115 | index++; |
sarvagyavaish | 3:a3b4d032f48f | 116 | } while (c != '\n' && !feof(fread) ); |
sarvagyavaish | 3:a3b4d032f48f | 117 | code_str[index-1] = 0; |
sarvagyavaish | 10:da52ff0b93c0 | 118 | |
sarvagyavaish | 10:da52ff0b93c0 | 119 | // read BITLENGTH |
sarvagyavaish | 10:da52ff0b93c0 | 120 | index = 0; |
sarvagyavaish | 10:da52ff0b93c0 | 121 | do { |
sarvagyavaish | 10:da52ff0b93c0 | 122 | c = fgetc(fread); |
sarvagyavaish | 10:da52ff0b93c0 | 123 | bitlength_str[index] = c; |
sarvagyavaish | 10:da52ff0b93c0 | 124 | index++; |
sarvagyavaish | 10:da52ff0b93c0 | 125 | } while (c != '\n' && !feof(fread) ); |
sarvagyavaish | 10:da52ff0b93c0 | 126 | bitlength_str[index-1] = 0; |
sarvagyavaish | 10:da52ff0b93c0 | 127 | |
sarvagyavaish | 10:da52ff0b93c0 | 128 | // read FORMAT |
sarvagyavaish | 10:da52ff0b93c0 | 129 | index = 0; |
sarvagyavaish | 10:da52ff0b93c0 | 130 | do { |
sarvagyavaish | 10:da52ff0b93c0 | 131 | c = fgetc(fread); |
sarvagyavaish | 10:da52ff0b93c0 | 132 | format_str[index] = c; |
sarvagyavaish | 10:da52ff0b93c0 | 133 | index++; |
sarvagyavaish | 10:da52ff0b93c0 | 134 | } while (c != '\n' && !feof(fread) ); |
sarvagyavaish | 10:da52ff0b93c0 | 135 | format_str[index-1] = 0; |
sarvagyavaish | 3:a3b4d032f48f | 136 | } |