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:
sammacjunkie
Date:
Tue Dec 03 16:21:52 2013 +0000
Revision:
14:2b63c0f795cb
Parent:
10:da52ff0b93c0
basically done

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
sammacjunkie 14:2b63c0f795cb 60 void db_find_tuple(int id_to_find, char *tuple_name, char *tuple_code, char *tuple_bitlength, char *tuple_format)
sarvagyavaish 3:a3b4d032f48f 61 {
sammacjunkie 14:2b63c0f795cb 62 FILE *fread = fopen("/sd/SmartRemote/db.txt", "r");
sammacjunkie 14:2b63c0f795cb 63
sarvagyavaish 3:a3b4d032f48f 64 char tuple_id[128];
sarvagyavaish 3:a3b4d032f48f 65 int id;
sarvagyavaish 3:a3b4d032f48f 66
sarvagyavaish 3:a3b4d032f48f 67 while ( !feof(fread) ) {
sarvagyavaish 10:da52ff0b93c0 68 db_get_tuple(fread, tuple_id, tuple_name, tuple_code, tuple_bitlength, tuple_format);
sarvagyavaish 3:a3b4d032f48f 69 if (strlen(tuple_name) != 0) {
sarvagyavaish 3:a3b4d032f48f 70 id = atoi(tuple_id);
sarvagyavaish 3:a3b4d032f48f 71 if (id == id_to_find) {
sarvagyavaish 3:a3b4d032f48f 72 break;
sarvagyavaish 3:a3b4d032f48f 73 }
sarvagyavaish 3:a3b4d032f48f 74 }
sarvagyavaish 3:a3b4d032f48f 75 else {
sarvagyavaish 3:a3b4d032f48f 76 sprintf(tuple_id, "%d", 0);
sarvagyavaish 10:da52ff0b93c0 77 sprintf(tuple_name, "%s", "");
sarvagyavaish 10:da52ff0b93c0 78 sprintf(tuple_code, "%s", "");
sarvagyavaish 10:da52ff0b93c0 79 sprintf(tuple_bitlength, "%s", "");
sarvagyavaish 10:da52ff0b93c0 80 sprintf(tuple_format, "%s", "");
sarvagyavaish 3:a3b4d032f48f 81 }
sarvagyavaish 3:a3b4d032f48f 82 }
sarvagyavaish 3:a3b4d032f48f 83
sarvagyavaish 10:da52ff0b93c0 84 printf("Tuple Found: |%s| \t |%s| \t |%s| \t |%s| \t |%s|\n", tuple_id, tuple_name, tuple_code, tuple_bitlength, tuple_format);
sammacjunkie 14:2b63c0f795cb 85
sammacjunkie 14:2b63c0f795cb 86 fclose(fread);
sarvagyavaish 3:a3b4d032f48f 87 }
sarvagyavaish 3:a3b4d032f48f 88
sarvagyavaish 10:da52ff0b93c0 89 void db_get_tuple(FILE *fread, char *id_str, char *name_str, char *code_str, char *bitlength_str, char *format_str)
sarvagyavaish 3:a3b4d032f48f 90 {
sarvagyavaish 3:a3b4d032f48f 91
sarvagyavaish 3:a3b4d032f48f 92 unsigned char c;
sarvagyavaish 3:a3b4d032f48f 93 int index;
sarvagyavaish 3:a3b4d032f48f 94
sarvagyavaish 3:a3b4d032f48f 95 // read ID;
sarvagyavaish 3:a3b4d032f48f 96 index = 0;
sarvagyavaish 3:a3b4d032f48f 97 do {
sarvagyavaish 3:a3b4d032f48f 98 c = fgetc(fread);
sarvagyavaish 3:a3b4d032f48f 99 id_str[index] = c;
sarvagyavaish 3:a3b4d032f48f 100 index++;
sarvagyavaish 3:a3b4d032f48f 101 } while (c != '\n' && !feof(fread) );
sarvagyavaish 3:a3b4d032f48f 102 id_str[index-1] = 0;
sarvagyavaish 3:a3b4d032f48f 103
sarvagyavaish 3:a3b4d032f48f 104 // read NAME;
sarvagyavaish 3:a3b4d032f48f 105 index = 0;
sarvagyavaish 3:a3b4d032f48f 106 do {
sarvagyavaish 3:a3b4d032f48f 107 c = fgetc(fread);
sarvagyavaish 3:a3b4d032f48f 108 name_str[index] = c;
sarvagyavaish 3:a3b4d032f48f 109 index++;
sarvagyavaish 3:a3b4d032f48f 110 } while (c != '\n' && !feof(fread) );
sarvagyavaish 3:a3b4d032f48f 111 name_str[index-1] = 0;
sarvagyavaish 3:a3b4d032f48f 112
sarvagyavaish 3:a3b4d032f48f 113 // read CODE
sarvagyavaish 3:a3b4d032f48f 114 index = 0;
sarvagyavaish 3:a3b4d032f48f 115 do {
sarvagyavaish 3:a3b4d032f48f 116 c = fgetc(fread);
sarvagyavaish 3:a3b4d032f48f 117 code_str[index] = c;
sarvagyavaish 3:a3b4d032f48f 118 index++;
sarvagyavaish 3:a3b4d032f48f 119 } while (c != '\n' && !feof(fread) );
sarvagyavaish 3:a3b4d032f48f 120 code_str[index-1] = 0;
sarvagyavaish 10:da52ff0b93c0 121
sarvagyavaish 10:da52ff0b93c0 122 // read BITLENGTH
sarvagyavaish 10:da52ff0b93c0 123 index = 0;
sarvagyavaish 10:da52ff0b93c0 124 do {
sarvagyavaish 10:da52ff0b93c0 125 c = fgetc(fread);
sarvagyavaish 10:da52ff0b93c0 126 bitlength_str[index] = c;
sarvagyavaish 10:da52ff0b93c0 127 index++;
sarvagyavaish 10:da52ff0b93c0 128 } while (c != '\n' && !feof(fread) );
sarvagyavaish 10:da52ff0b93c0 129 bitlength_str[index-1] = 0;
sarvagyavaish 10:da52ff0b93c0 130
sarvagyavaish 10:da52ff0b93c0 131 // read FORMAT
sarvagyavaish 10:da52ff0b93c0 132 index = 0;
sarvagyavaish 10:da52ff0b93c0 133 do {
sarvagyavaish 10:da52ff0b93c0 134 c = fgetc(fread);
sarvagyavaish 10:da52ff0b93c0 135 format_str[index] = c;
sarvagyavaish 10:da52ff0b93c0 136 index++;
sarvagyavaish 10:da52ff0b93c0 137 } while (c != '\n' && !feof(fread) );
sarvagyavaish 10:da52ff0b93c0 138 format_str[index-1] = 0;
sarvagyavaish 3:a3b4d032f48f 139 }