For Wifi personal security mode. It is always cumbersome to change the password whenever there is a breach in the network. and even more annoying is to distribute the passwords to the clients/guests. WifiFlexManager is a project that can change the password (with a random predefined length string) whenever the admin sends a specific IR code (through android app) and can retrieve the current password or the connected users (Through Bluetooth screen). So as a client who wants to get connected to the router, you only need to point your phone's IR towards the mbed and press a button, and the current password will be shown at your phone's screen.
Dependencies: EthernetInterface HTTPServer RemoteIR SDFileSystem mbed-rpc mbed-rtos mbed
db.cpp@5:e4c3ce3f66a2, 2015-05-04 (annotated)
- Committer:
- mskamoona
- Date:
- Mon May 04 03:41:46 2015 +0000
- Revision:
- 5:e4c3ce3f66a2
- Parent:
- 0:c08dc0b2963b
IR, Bluetooth, Telnet are working!
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mskamoona | 0:c08dc0b2963b | 1 | #include "mbed.h" |
mskamoona | 0:c08dc0b2963b | 2 | #include "db.h" |
mskamoona | 0:c08dc0b2963b | 3 | #include "SDFileSystem.h" |
mskamoona | 0:c08dc0b2963b | 4 | |
mskamoona | 0:c08dc0b2963b | 5 | void db_insert_tuple(char *new_name, char *new_code, char *bitlength, char *format) |
mskamoona | 0:c08dc0b2963b | 6 | { |
mskamoona | 0:c08dc0b2963b | 7 | |
mskamoona | 0:c08dc0b2963b | 8 | char tuple_code[128]; |
mskamoona | 0:c08dc0b2963b | 9 | char tuple_name[128]; |
mskamoona | 0:c08dc0b2963b | 10 | char tuple_id[128]; |
mskamoona | 0:c08dc0b2963b | 11 | char tuple_bitlength[128]; |
mskamoona | 0:c08dc0b2963b | 12 | char tuple_format[128]; |
mskamoona | 0:c08dc0b2963b | 13 | int id = 0; |
mskamoona | 0:c08dc0b2963b | 14 | |
mskamoona | 0:c08dc0b2963b | 15 | // create file if it does not exist |
mskamoona | 0:c08dc0b2963b | 16 | FILE *ftemp = fopen("/sd/SmartRemote/db.txt", "a"); |
mskamoona | 0:c08dc0b2963b | 17 | fclose(ftemp); |
mskamoona | 0:c08dc0b2963b | 18 | |
mskamoona | 0:c08dc0b2963b | 19 | // read file to get last id |
mskamoona | 0:c08dc0b2963b | 20 | FILE *fdb = fopen("/sd/SmartRemote/db.txt", "r"); |
mskamoona | 0:c08dc0b2963b | 21 | while ( !feof(fdb) ) { |
mskamoona | 0:c08dc0b2963b | 22 | db_get_tuple(fdb, tuple_id, tuple_name, tuple_code, tuple_bitlength, tuple_format); |
mskamoona | 0:c08dc0b2963b | 23 | if (strlen(tuple_name) != 0) { |
mskamoona | 0:c08dc0b2963b | 24 | printf("Tuple: |%s| \t |%s| \t |%s| \t |%s| \t |%s|\n", tuple_id, tuple_name, tuple_code, tuple_bitlength, tuple_format); |
mskamoona | 0:c08dc0b2963b | 25 | id = atoi(tuple_id); |
mskamoona | 0:c08dc0b2963b | 26 | } |
mskamoona | 0:c08dc0b2963b | 27 | } |
mskamoona | 0:c08dc0b2963b | 28 | fclose(fdb); |
mskamoona | 0:c08dc0b2963b | 29 | |
mskamoona | 0:c08dc0b2963b | 30 | // id of new tuple |
mskamoona | 0:c08dc0b2963b | 31 | id++; |
mskamoona | 0:c08dc0b2963b | 32 | sprintf(tuple_id, "%d", id); |
mskamoona | 0:c08dc0b2963b | 33 | |
mskamoona | 0:c08dc0b2963b | 34 | // write new tuple to file |
mskamoona | 0:c08dc0b2963b | 35 | char new_row[128]; |
mskamoona | 0:c08dc0b2963b | 36 | FILE *fwrite = fopen("/sd/SmartRemote/db.txt", "a"); |
mskamoona | 0:c08dc0b2963b | 37 | |
mskamoona | 0:c08dc0b2963b | 38 | if (fwrite == NULL) { // if error |
mskamoona | 0:c08dc0b2963b | 39 | printf("Could not open file for write\n"); |
mskamoona | 0:c08dc0b2963b | 40 | } |
mskamoona | 0:c08dc0b2963b | 41 | |
mskamoona | 0:c08dc0b2963b | 42 | // create new row |
mskamoona | 0:c08dc0b2963b | 43 | sprintf(new_row, "%s\n%s\n%s\n%s\n%s\n", tuple_id, new_name, new_code, bitlength, format); |
mskamoona | 0:c08dc0b2963b | 44 | |
mskamoona | 0:c08dc0b2963b | 45 | fprintf(fwrite, new_row); // write to file |
mskamoona | 0:c08dc0b2963b | 46 | fclose(fwrite); // close file |
mskamoona | 0:c08dc0b2963b | 47 | |
mskamoona | 0:c08dc0b2963b | 48 | printf("Record Added: %s\n", new_row); |
mskamoona | 0:c08dc0b2963b | 49 | } |
mskamoona | 0:c08dc0b2963b | 50 | |
mskamoona | 0:c08dc0b2963b | 51 | void db_print_all(FILE *fread) |
mskamoona | 0:c08dc0b2963b | 52 | { |
mskamoona | 0:c08dc0b2963b | 53 | char c; |
mskamoona | 0:c08dc0b2963b | 54 | while ( !feof(fread) ) { |
mskamoona | 0:c08dc0b2963b | 55 | c=fgetc(fread); |
mskamoona | 0:c08dc0b2963b | 56 | printf("%c", c); |
mskamoona | 0:c08dc0b2963b | 57 | } |
mskamoona | 0:c08dc0b2963b | 58 | } |
mskamoona | 0:c08dc0b2963b | 59 | |
mskamoona | 0:c08dc0b2963b | 60 | void db_find_tuple(int id_to_find, char *tuple_name, char *tuple_code, char *tuple_bitlength, char *tuple_format) |
mskamoona | 0:c08dc0b2963b | 61 | { |
mskamoona | 0:c08dc0b2963b | 62 | FILE *fread = fopen("/sd/SmartRemote/db.txt", "r"); |
mskamoona | 0:c08dc0b2963b | 63 | |
mskamoona | 0:c08dc0b2963b | 64 | char tuple_id[128]; |
mskamoona | 0:c08dc0b2963b | 65 | int id; |
mskamoona | 0:c08dc0b2963b | 66 | |
mskamoona | 0:c08dc0b2963b | 67 | while ( !feof(fread) ) { |
mskamoona | 0:c08dc0b2963b | 68 | db_get_tuple(fread, tuple_id, tuple_name, tuple_code, tuple_bitlength, tuple_format); |
mskamoona | 0:c08dc0b2963b | 69 | if (strlen(tuple_name) != 0) { |
mskamoona | 0:c08dc0b2963b | 70 | id = atoi(tuple_id); |
mskamoona | 0:c08dc0b2963b | 71 | if (id == id_to_find) { |
mskamoona | 0:c08dc0b2963b | 72 | break; |
mskamoona | 0:c08dc0b2963b | 73 | } |
mskamoona | 0:c08dc0b2963b | 74 | } |
mskamoona | 0:c08dc0b2963b | 75 | else { |
mskamoona | 0:c08dc0b2963b | 76 | sprintf(tuple_id, "%d", 0); |
mskamoona | 0:c08dc0b2963b | 77 | sprintf(tuple_name, "%s", ""); |
mskamoona | 0:c08dc0b2963b | 78 | sprintf(tuple_code, "%s", ""); |
mskamoona | 0:c08dc0b2963b | 79 | sprintf(tuple_bitlength, "%s", ""); |
mskamoona | 0:c08dc0b2963b | 80 | sprintf(tuple_format, "%s", ""); |
mskamoona | 0:c08dc0b2963b | 81 | } |
mskamoona | 0:c08dc0b2963b | 82 | } |
mskamoona | 0:c08dc0b2963b | 83 | |
mskamoona | 0:c08dc0b2963b | 84 | printf("Tuple Found: |%s| \t |%s| \t |%s| \t |%s| \t |%s|\n", tuple_id, tuple_name, tuple_code, tuple_bitlength, tuple_format); |
mskamoona | 0:c08dc0b2963b | 85 | |
mskamoona | 0:c08dc0b2963b | 86 | fclose(fread); |
mskamoona | 0:c08dc0b2963b | 87 | } |
mskamoona | 0:c08dc0b2963b | 88 | |
mskamoona | 0:c08dc0b2963b | 89 | void db_get_tuple(FILE *fread, char *id_str, char *name_str, char *code_str, char *bitlength_str, char *format_str) |
mskamoona | 0:c08dc0b2963b | 90 | { |
mskamoona | 0:c08dc0b2963b | 91 | |
mskamoona | 0:c08dc0b2963b | 92 | unsigned char c; |
mskamoona | 0:c08dc0b2963b | 93 | int index; |
mskamoona | 0:c08dc0b2963b | 94 | |
mskamoona | 0:c08dc0b2963b | 95 | // read ID; |
mskamoona | 0:c08dc0b2963b | 96 | index = 0; |
mskamoona | 0:c08dc0b2963b | 97 | do { |
mskamoona | 0:c08dc0b2963b | 98 | c = fgetc(fread); |
mskamoona | 0:c08dc0b2963b | 99 | id_str[index] = c; |
mskamoona | 0:c08dc0b2963b | 100 | index++; |
mskamoona | 0:c08dc0b2963b | 101 | } while (c != '\n' && !feof(fread) ); |
mskamoona | 0:c08dc0b2963b | 102 | id_str[index-1] = 0; |
mskamoona | 0:c08dc0b2963b | 103 | |
mskamoona | 0:c08dc0b2963b | 104 | // read NAME; |
mskamoona | 0:c08dc0b2963b | 105 | index = 0; |
mskamoona | 0:c08dc0b2963b | 106 | do { |
mskamoona | 0:c08dc0b2963b | 107 | c = fgetc(fread); |
mskamoona | 0:c08dc0b2963b | 108 | name_str[index] = c; |
mskamoona | 0:c08dc0b2963b | 109 | index++; |
mskamoona | 0:c08dc0b2963b | 110 | } while (c != '\n' && !feof(fread) ); |
mskamoona | 0:c08dc0b2963b | 111 | name_str[index-1] = 0; |
mskamoona | 0:c08dc0b2963b | 112 | |
mskamoona | 0:c08dc0b2963b | 113 | // read CODE |
mskamoona | 0:c08dc0b2963b | 114 | index = 0; |
mskamoona | 0:c08dc0b2963b | 115 | do { |
mskamoona | 0:c08dc0b2963b | 116 | c = fgetc(fread); |
mskamoona | 0:c08dc0b2963b | 117 | code_str[index] = c; |
mskamoona | 0:c08dc0b2963b | 118 | index++; |
mskamoona | 0:c08dc0b2963b | 119 | } while (c != '\n' && !feof(fread) ); |
mskamoona | 0:c08dc0b2963b | 120 | code_str[index-1] = 0; |
mskamoona | 0:c08dc0b2963b | 121 | |
mskamoona | 0:c08dc0b2963b | 122 | // read BITLENGTH |
mskamoona | 0:c08dc0b2963b | 123 | index = 0; |
mskamoona | 0:c08dc0b2963b | 124 | do { |
mskamoona | 0:c08dc0b2963b | 125 | c = fgetc(fread); |
mskamoona | 0:c08dc0b2963b | 126 | bitlength_str[index] = c; |
mskamoona | 0:c08dc0b2963b | 127 | index++; |
mskamoona | 0:c08dc0b2963b | 128 | } while (c != '\n' && !feof(fread) ); |
mskamoona | 0:c08dc0b2963b | 129 | bitlength_str[index-1] = 0; |
mskamoona | 0:c08dc0b2963b | 130 | |
mskamoona | 0:c08dc0b2963b | 131 | // read FORMAT |
mskamoona | 0:c08dc0b2963b | 132 | index = 0; |
mskamoona | 0:c08dc0b2963b | 133 | do { |
mskamoona | 0:c08dc0b2963b | 134 | c = fgetc(fread); |
mskamoona | 0:c08dc0b2963b | 135 | format_str[index] = c; |
mskamoona | 0:c08dc0b2963b | 136 | index++; |
mskamoona | 0:c08dc0b2963b | 137 | } while (c != '\n' && !feof(fread) ); |
mskamoona | 0:c08dc0b2963b | 138 | format_str[index-1] = 0; |
mskamoona | 0:c08dc0b2963b | 139 | } |