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.
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 | } |
