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:
Mon Dec 02 20:21:10 2013 +0000
Revision:
3:a3b4d032f48f
Child:
10:da52ff0b93c0
dependencies broken;

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