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.
Dependencies: EthernetInterface HTTPServer RemoteIR SDFileSystem mbed-rpc mbed-rtos mbed
Fork of SmartRemote by
Diff: db.cpp
- Revision:
- 3:a3b4d032f48f
- Child:
- 10:da52ff0b93c0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db.cpp Mon Dec 02 20:21:10 2013 +0000
@@ -0,0 +1,112 @@
+#include "mbed.h"
+#include "db.h"
+#include "SDFileSystem.h"
+
+void db_insert_tuple(char *new_name, char *new_code)
+{
+
+ char tuple_code[128];
+ char tuple_name[128];
+ char tuple_id[128];
+ int id = 0;
+
+ // create file if it does not exist
+ FILE *ftemp = fopen("/sd/SmartRemote/db.txt", "a");
+ fclose(ftemp);
+
+ // read file to get last id
+ FILE *fdb = fopen("/sd/SmartRemote/db.txt", "r");
+ while ( !feof(fdb) ) {
+ db_get_tuple(fdb, tuple_id, tuple_name, tuple_code);
+ if (strlen(tuple_name) != 0) {
+ printf("Tuple: |%s| \t |%s| \t |%s|\n", tuple_id, tuple_name, tuple_code);
+ id = atoi(tuple_id);
+ }
+ }
+ fclose(fdb);
+
+ // id of new tuple
+ id++;
+ sprintf(tuple_id, "%d", id);
+
+ // write new tuple to file
+ char new_row[128];
+ FILE *fwrite = fopen("/sd/SmartRemote/db.txt", "a");
+
+ if (fwrite == NULL) { // if error
+ printf("Could not open file for write\n");
+ }
+ sprintf(new_row, "%s\n%s\n%s\n", tuple_id, new_name, new_code); // create new row
+
+ fprintf(fwrite, new_row); // write to file
+ fclose(fwrite); // close file
+
+ printf("Record Added: %s\n", new_row);
+}
+
+void db_print_all(FILE *fread)
+{
+ char c;
+ while ( !feof(fread) ) {
+ c=fgetc(fread);
+ printf("%c", c);
+ }
+}
+
+void db_find_tuple(FILE *fread, int id_to_find, char *tuple_name, char *tuple_code)
+{
+ char tuple_id[128];
+ int id;
+
+ while ( !feof(fread) ) {
+ db_get_tuple(fread, tuple_id, tuple_name, tuple_code);
+ if (strlen(tuple_name) != 0) {
+ id = atoi(tuple_id);
+ if (id == id_to_find) {
+ break;
+ }
+ }
+ else {
+ sprintf(tuple_id, "%d", 0);
+ sprintf(tuple_id, "%s", "");
+ sprintf(tuple_id, "%s", "");
+ }
+ }
+
+ printf("Tuple Found: |%s| \t |%s| \t |%s|\n", tuple_id, tuple_name, tuple_code);
+
+}
+
+void db_get_tuple(FILE *fread, char *id_str, char *name_str, char *code_str)
+{
+
+ unsigned char c;
+ int index;
+
+ // read ID;
+ index = 0;
+ do {
+ c = fgetc(fread);
+ id_str[index] = c;
+ index++;
+ } while (c != '\n' && !feof(fread) );
+ id_str[index-1] = 0;
+
+ // read NAME;
+ index = 0;
+ do {
+ c = fgetc(fread);
+ name_str[index] = c;
+ index++;
+ } while (c != '\n' && !feof(fread) );
+ name_str[index-1] = 0;
+
+ // read CODE
+ index = 0;
+ do {
+ c = fgetc(fread);
+ code_str[index] = c;
+ index++;
+ } while (c != '\n' && !feof(fread) );
+ code_str[index-1] = 0;
+}
\ No newline at end of file
