Michał Biolik / Mbed 2 deprecated SD_TUT

Dependencies:   EthernetInterface SDFileSystem mbed-rtos mbed

Committer:
micbio
Date:
Mon Dec 05 22:46:14 2016 +0000
Revision:
2:e699312248f3
Parent:
1:58d2021e301d
ad

Who changed what in which revision?

UserRevisionLine numberNew contents of line
micbio 1:58d2021e301d 1 #include "file_manager.hpp"
micbio 1:58d2021e301d 2
micbio 2:e699312248f3 3 #define MAX_TEXT_LEN 400
micbio 2:e699312248f3 4
micbio 1:58d2021e301d 5 extern Serial pc;
micbio 1:58d2021e301d 6
micbio 2:e699312248f3 7 char buffer[MAX_TEXT_LEN];
micbio 2:e699312248f3 8
micbio 1:58d2021e301d 9 void file_manager::print_files(void)
micbio 1:58d2021e301d 10 {
micbio 2:e699312248f3 11 pc.printf("1. %s\r\n", path_sisk);
micbio 2:e699312248f3 12 pc.printf("2. %s\r\n", path_agh);
micbio 2:e699312248f3 13 pc.printf("3. %s\r\n", path_krk);
micbio 1:58d2021e301d 14 }
micbio 1:58d2021e301d 15
micbio 1:58d2021e301d 16 void file_manager::get_string(void)
micbio 1:58d2021e301d 17 {
micbio 1:58d2021e301d 18 // char * p_my_//cmd = p_cmd;
micbio 1:58d2021e301d 19 // uint8_t char_counter = 0;
micbio 1:58d2021e301d 20 // static char byte_received;
micbio 1:58d2021e301d 21 //
micbio 1:58d2021e301d 22 // do
micbio 1:58d2021e301d 23 // {
micbio 1:58d2021e301d 24 // byte_received = pc.getc();
micbio 1:58d2021e301d 25 // *p_my_cmd = byte_received;
micbio 1:58d2021e301d 26 // p_my_cmd++;
micbio 1:58d2021e301d 27 // char_counter++;
micbio 1:58d2021e301d 28 // if (char_counter >= CMD_LENGTH)
micbio 1:58d2021e301d 29 // {
micbio 1:58d2021e301d 30 // break; // CMD length reached max length.
micbio 1:58d2021e301d 31 // }
micbio 1:58d2021e301d 32 // pc.putc(byte_received);
micbio 1:58d2021e301d 33 // for (int i = 0; i < len; i++)
micbio 1:58d2021e301d 34 // {
micbio 1:58d2021e301d 35 // pc.putc(*(p_cmd + i));
micbio 1:58d2021e301d 36 // }
micbio 1:58d2021e301d 37 // }while(byte_received != '\r');
micbio 1:58d2021e301d 38 //
micbio 1:58d2021e301d 39 // len = char_counter;
micbio 1:58d2021e301d 40 //
micbio 2:e699312248f3 41 // pc.printf("\r\r\n");
micbio 1:58d2021e301d 42 // pc.putc('Y');
micbio 1:58d2021e301d 43 }
micbio 1:58d2021e301d 44
micbio 1:58d2021e301d 45 void file_manager::get_path(void)
micbio 1:58d2021e301d 46 {
micbio 2:e699312248f3 47 pc.printf("Current file to write to is: %s.\r\n", current_path);
micbio 1:58d2021e301d 48 }
micbio 1:58d2021e301d 49
micbio 1:58d2021e301d 50 void file_manager::set_path(void)
micbio 1:58d2021e301d 51 {
micbio 1:58d2021e301d 52 char number;
micbio 1:58d2021e301d 53 bool correct_number = false;
micbio 1:58d2021e301d 54
micbio 1:58d2021e301d 55 if (fp != NULL)
micbio 1:58d2021e301d 56 {
micbio 2:e699312248f3 57 pc.printf("First close the file!\r\n");
micbio 1:58d2021e301d 58 return;
micbio 1:58d2021e301d 59 }
micbio 1:58d2021e301d 60
micbio 1:58d2021e301d 61 this->get_path();
micbio 2:e699312248f3 62 pc.printf("Write the number of new file to write to. \r\n");
micbio 1:58d2021e301d 63 this->print_files();
micbio 1:58d2021e301d 64
micbio 1:58d2021e301d 65 do
micbio 1:58d2021e301d 66 {
micbio 1:58d2021e301d 67 correct_number = true;
micbio 1:58d2021e301d 68 number = pc.getc();
micbio 1:58d2021e301d 69 switch(number)
micbio 1:58d2021e301d 70 {
micbio 1:58d2021e301d 71 case '1':
micbio 1:58d2021e301d 72 current_path = path_sisk;
micbio 1:58d2021e301d 73 break;
micbio 1:58d2021e301d 74 case '2':
micbio 1:58d2021e301d 75 current_path = path_agh;
micbio 1:58d2021e301d 76 break;
micbio 1:58d2021e301d 77 case '3':
micbio 1:58d2021e301d 78 current_path = path_krk;
micbio 1:58d2021e301d 79 break;
micbio 1:58d2021e301d 80 default:
micbio 2:e699312248f3 81 pc.printf("Incorrect number, try again.\r\n");
micbio 1:58d2021e301d 82 correct_number = false;
micbio 1:58d2021e301d 83 }
micbio 1:58d2021e301d 84 }while(!correct_number);
micbio 1:58d2021e301d 85
micbio 2:e699312248f3 86 pc.printf("Setting path to: %s.\r\n", current_path);
micbio 1:58d2021e301d 87 }
micbio 1:58d2021e301d 88
micbio 1:58d2021e301d 89 bool file_manager::open_file(char option)
micbio 1:58d2021e301d 90 {
micbio 1:58d2021e301d 91 if (fp != NULL)
micbio 1:58d2021e301d 92 {
micbio 2:e699312248f3 93 pc.printf("File already opened!\r\n");
micbio 1:58d2021e301d 94 return false;
micbio 1:58d2021e301d 95 }
micbio 1:58d2021e301d 96
micbio 2:e699312248f3 97 fp = fopen(this->current_path, &option);
micbio 1:58d2021e301d 98
micbio 1:58d2021e301d 99 if (fp != NULL)
micbio 1:58d2021e301d 100 {
micbio 2:e699312248f3 101 pc.printf("Opened file: %s.\r\n", this->current_path);
micbio 1:58d2021e301d 102 }
micbio 1:58d2021e301d 103
micbio 1:58d2021e301d 104 return true;
micbio 1:58d2021e301d 105 }
micbio 1:58d2021e301d 106
micbio 1:58d2021e301d 107 bool file_manager::close_file(void)
micbio 1:58d2021e301d 108 {
micbio 1:58d2021e301d 109 if (fp == NULL)
micbio 1:58d2021e301d 110 {
micbio 2:e699312248f3 111 pc.printf("File already closed!\r\n");
micbio 1:58d2021e301d 112 return false;
micbio 1:58d2021e301d 113 }
micbio 1:58d2021e301d 114
micbio 1:58d2021e301d 115 fclose(fp);
micbio 1:58d2021e301d 116
micbio 1:58d2021e301d 117 fp = NULL;
micbio 1:58d2021e301d 118
micbio 1:58d2021e301d 119 return true;
micbio 1:58d2021e301d 120 }
micbio 1:58d2021e301d 121
micbio 1:58d2021e301d 122 void file_manager::write_to_file(void)
micbio 1:58d2021e301d 123 {
micbio 1:58d2021e301d 124 this->open_file('w');
micbio 1:58d2021e301d 125
micbio 2:e699312248f3 126
micbio 1:58d2021e301d 127
micbio 1:58d2021e301d 128 this->close_file();
micbio 1:58d2021e301d 129 }
micbio 1:58d2021e301d 130
micbio 1:58d2021e301d 131
micbio 1:58d2021e301d 132 void file_manager::append_to_file(void)
micbio 1:58d2021e301d 133 {
micbio 1:58d2021e301d 134 this->open_file('a');
micbio 1:58d2021e301d 135
micbio 1:58d2021e301d 136
micbio 1:58d2021e301d 137
micbio 1:58d2021e301d 138 this->close_file();
micbio 1:58d2021e301d 139 }
micbio 2:e699312248f3 140
micbio 2:e699312248f3 141 void file_manager::read_file(void)
micbio 2:e699312248f3 142 {
micbio 2:e699312248f3 143 long lSize;
micbio 2:e699312248f3 144 size_t result;
micbio 2:e699312248f3 145
micbio 2:e699312248f3 146 this->open_file('r');
micbio 2:e699312248f3 147
micbio 2:e699312248f3 148 fseek(fp , 0 , SEEK_END);
micbio 2:e699312248f3 149 lSize = ftell (fp);
micbio 2:e699312248f3 150 rewind(fp);
micbio 2:e699312248f3 151
micbio 2:e699312248f3 152 // copy the file into the buffer:
micbio 2:e699312248f3 153 result = fread(buffer, 1, lSize, fp);
micbio 2:e699312248f3 154 if (result != lSize)
micbio 2:e699312248f3 155 {
micbio 2:e699312248f3 156 pc.printf("Reading error");
micbio 2:e699312248f3 157 }
micbio 2:e699312248f3 158 else
micbio 2:e699312248f3 159 {
micbio 2:e699312248f3 160 pc.printf("File: %s.\r\r\n", this->current_path);
micbio 2:e699312248f3 161 }
micbio 2:e699312248f3 162
micbio 2:e699312248f3 163
micbio 2:e699312248f3 164 this->close_file();
micbio 2:e699312248f3 165
micbio 2:e699312248f3 166 }