A smart remote using the sparkfun IR transmitter and receiver. The program also uses a web server to show the buttons on a mobile platform.

Dependencies:   EthernetInterface HTTPServer RemoteIR SDFileSystem mbed-rpc mbed-rtos mbed

Fork of SmartRemoteClean by Sarvagya Vaish

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?

UserRevisionLine numberNew 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 }