1st release (without comment)
RMS_UART.cpp@1:5e6c5fbd48d6, 2016-09-15 (annotated)
- Committer:
- nsrwsurasak
- Date:
- Thu Sep 15 08:07:31 2016 +0000
- Revision:
- 1:5e6c5fbd48d6
- Parent:
- 0:bc10ea82aec3
- Child:
- 2:38567b4310a4
Add comments, fix bug and clean up code.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nsrwsurasak | 1:5e6c5fbd48d6 | 1 | /** |
nsrwsurasak | 1:5e6c5fbd48d6 | 2 | ****************************************************************************** |
nsrwsurasak | 1:5e6c5fbd48d6 | 3 | * @file RMS_UART.cpp |
nsrwsurasak | 1:5e6c5fbd48d6 | 4 | * @author Surasak N |
nsrwsurasak | 1:5e6c5fbd48d6 | 5 | * @version V1 |
nsrwsurasak | 1:5e6c5fbd48d6 | 6 | * @date 15/09/2016 |
nsrwsurasak | 1:5e6c5fbd48d6 | 7 | * @brief Command for Mini-RMS <> RMS via UART |
nsrwsurasak | 1:5e6c5fbd48d6 | 8 | ******************************************************************************/ |
nsrwsurasak | 1:5e6c5fbd48d6 | 9 | |
nsrwsurasak | 0:bc10ea82aec3 | 10 | #include "mbed.h" |
nsrwsurasak | 1:5e6c5fbd48d6 | 11 | #include "main.h" |
nsrwsurasak | 0:bc10ea82aec3 | 12 | |
nsrwsurasak | 0:bc10ea82aec3 | 13 | #ifdef EXT_SERIAL |
nsrwsurasak | 1:5e6c5fbd48d6 | 14 | /* Using UART1 as in Debuger (ST-Link) */ |
nsrwsurasak | 0:bc10ea82aec3 | 15 | Serial serial_device(SERIAL_TX, SERIAL_RX); |
nsrwsurasak | 0:bc10ea82aec3 | 16 | #else |
nsrwsurasak | 1:5e6c5fbd48d6 | 17 | /* Using UART2 via external UART to USB */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 18 | Serial serial_device(PA_3, PB_3); |
nsrwsurasak | 0:bc10ea82aec3 | 19 | #endif |
nsrwsurasak | 0:bc10ea82aec3 | 20 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 21 | char Msg_RxBuf[MSG_BUF_SIZE + 1]; // An Command Buffer |
nsrwsurasak | 1:5e6c5fbd48d6 | 22 | int Msg_index; // An Command index |
nsrwsurasak | 0:bc10ea82aec3 | 23 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 24 | char Content_RxBuf[CONTENT_BUF_SIZE + 1]; // An Contents Buffer |
nsrwsurasak | 1:5e6c5fbd48d6 | 25 | int Content_index; // An Contents index |
nsrwsurasak | 0:bc10ea82aec3 | 26 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 27 | char FileName[MSG2FILENAME]; // An Command Buffer |
nsrwsurasak | 1:5e6c5fbd48d6 | 28 | FileRequest_CMD_Type reqFileCmdType = REQ_NONE; // An Events Request and management |
nsrwsurasak | 1:5e6c5fbd48d6 | 29 | bool MsgContentManagement = false; // Command and Contents buffer management |
nsrwsurasak | 0:bc10ea82aec3 | 30 | |
nsrwsurasak | 0:bc10ea82aec3 | 31 | /** |
nsrwsurasak | 1:5e6c5fbd48d6 | 32 | * @brief Initials bsp and interrupt of serial communication |
nsrwsurasak | 1:5e6c5fbd48d6 | 33 | * @note BPS have 9600bps only |
nsrwsurasak | 0:bc10ea82aec3 | 34 | * @retval |
nsrwsurasak | 0:bc10ea82aec3 | 35 | */ |
nsrwsurasak | 0:bc10ea82aec3 | 36 | void Init_SerialDevice() |
nsrwsurasak | 0:bc10ea82aec3 | 37 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 38 | /* Initial begining bps with 9600bps */ |
nsrwsurasak | 0:bc10ea82aec3 | 39 | serial_device.baud(BPS_9600); |
nsrwsurasak | 1:5e6c5fbd48d6 | 40 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 41 | /* Initial interrupt callback function */ |
nsrwsurasak | 0:bc10ea82aec3 | 42 | serial_device.attach(&RxMsgInterruptCallback); |
nsrwsurasak | 0:bc10ea82aec3 | 43 | } |
nsrwsurasak | 0:bc10ea82aec3 | 44 | |
nsrwsurasak | 0:bc10ea82aec3 | 45 | /** |
nsrwsurasak | 1:5e6c5fbd48d6 | 46 | * @brief Intertupt callback function |
nsrwsurasak | 1:5e6c5fbd48d6 | 47 | * @note Management fill buffer direction |
nsrwsurasak | 0:bc10ea82aec3 | 48 | * @retval |
nsrwsurasak | 0:bc10ea82aec3 | 49 | */ |
nsrwsurasak | 0:bc10ea82aec3 | 50 | void RxMsgInterruptCallback() |
nsrwsurasak | 0:bc10ea82aec3 | 51 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 52 | /* Received serial Rx interrupt */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 53 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 54 | /* Check buffer direction */ |
nsrwsurasak | 0:bc10ea82aec3 | 55 | if(MsgContentManagement == false) |
nsrwsurasak | 0:bc10ea82aec3 | 56 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 57 | /* Fill buffer to commands */ |
nsrwsurasak | 0:bc10ea82aec3 | 58 | DoTheMsgCmd(); |
nsrwsurasak | 0:bc10ea82aec3 | 59 | } |
nsrwsurasak | 0:bc10ea82aec3 | 60 | else |
nsrwsurasak | 0:bc10ea82aec3 | 61 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 62 | /* Fill buffer to contents */ |
nsrwsurasak | 0:bc10ea82aec3 | 63 | DoTheContent(); |
nsrwsurasak | 0:bc10ea82aec3 | 64 | } |
nsrwsurasak | 0:bc10ea82aec3 | 65 | } |
nsrwsurasak | 0:bc10ea82aec3 | 66 | |
nsrwsurasak | 0:bc10ea82aec3 | 67 | /** |
nsrwsurasak | 1:5e6c5fbd48d6 | 68 | * @brief Fill serial data as in contents buffer |
nsrwsurasak | 1:5e6c5fbd48d6 | 69 | * @note |
nsrwsurasak | 0:bc10ea82aec3 | 70 | * @retval |
nsrwsurasak | 0:bc10ea82aec3 | 71 | */ |
nsrwsurasak | 0:bc10ea82aec3 | 72 | void DoTheContent() |
nsrwsurasak | 0:bc10ea82aec3 | 73 | { |
nsrwsurasak | 0:bc10ea82aec3 | 74 | // Note: you need to actually read from the serial to clear the RX interrupt |
nsrwsurasak | 1:5e6c5fbd48d6 | 75 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 76 | /* Fill data as serial to contents buffer */ |
nsrwsurasak | 0:bc10ea82aec3 | 77 | Content_RxBuf[Content_index] = serial_device.getc(); |
nsrwsurasak | 1:5e6c5fbd48d6 | 78 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 79 | /* Shift contents index */ |
nsrwsurasak | 0:bc10ea82aec3 | 80 | Content_index++; |
nsrwsurasak | 0:bc10ea82aec3 | 81 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 82 | /* Check end of content */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 83 | CheckContentMsg(); |
nsrwsurasak | 0:bc10ea82aec3 | 84 | } |
nsrwsurasak | 0:bc10ea82aec3 | 85 | |
nsrwsurasak | 0:bc10ea82aec3 | 86 | /** |
nsrwsurasak | 1:5e6c5fbd48d6 | 87 | * @brief Fill serial data as in command buffer |
nsrwsurasak | 1:5e6c5fbd48d6 | 88 | * @note Command type and FileName |
nsrwsurasak | 0:bc10ea82aec3 | 89 | * @retval |
nsrwsurasak | 0:bc10ea82aec3 | 90 | */ |
nsrwsurasak | 0:bc10ea82aec3 | 91 | void DoTheMsgCmd() |
nsrwsurasak | 0:bc10ea82aec3 | 92 | { |
nsrwsurasak | 0:bc10ea82aec3 | 93 | |
nsrwsurasak | 0:bc10ea82aec3 | 94 | // Note: you need to actually read from the serial to clear the RX interrupt |
nsrwsurasak | 1:5e6c5fbd48d6 | 95 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 96 | /* Fill data as serial to command and file name buffer */ |
nsrwsurasak | 0:bc10ea82aec3 | 97 | Msg_RxBuf[Msg_index] = serial_device.getc(); |
nsrwsurasak | 1:5e6c5fbd48d6 | 98 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 99 | /* Shift command and filename index */ |
nsrwsurasak | 0:bc10ea82aec3 | 100 | Msg_index++; |
nsrwsurasak | 0:bc10ea82aec3 | 101 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 102 | /* Check command type */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 103 | CheckCmdType(); |
nsrwsurasak | 1:5e6c5fbd48d6 | 104 | } |
nsrwsurasak | 1:5e6c5fbd48d6 | 105 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 106 | /** |
nsrwsurasak | 1:5e6c5fbd48d6 | 107 | * @brief Checking and processing contents data |
nsrwsurasak | 1:5e6c5fbd48d6 | 108 | * @note Check command *end* and clear buffer |
nsrwsurasak | 1:5e6c5fbd48d6 | 109 | * @retval |
nsrwsurasak | 1:5e6c5fbd48d6 | 110 | */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 111 | void CheckContentMsg() |
nsrwsurasak | 1:5e6c5fbd48d6 | 112 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 113 | /* Found the *end* */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 114 | if(strstr(Content_RxBuf,CMD_END_OF_CONTENT)) |
nsrwsurasak | 0:bc10ea82aec3 | 115 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 116 | /* Call function for check contents */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 117 | SendContentToFile(); |
nsrwsurasak | 1:5e6c5fbd48d6 | 118 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 119 | /* Set fill buffer to command */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 120 | MsgContentManagement = false; |
nsrwsurasak | 0:bc10ea82aec3 | 121 | } |
nsrwsurasak | 1:5e6c5fbd48d6 | 122 | /* Content buffer are full */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 123 | if(Content_index == CONTENT_BUF_SIZE) |
nsrwsurasak | 1:5e6c5fbd48d6 | 124 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 125 | /* Call function for check contents */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 126 | SendContentToFile(); |
nsrwsurasak | 1:5e6c5fbd48d6 | 127 | } |
nsrwsurasak | 1:5e6c5fbd48d6 | 128 | } |
nsrwsurasak | 1:5e6c5fbd48d6 | 129 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 130 | /** |
nsrwsurasak | 1:5e6c5fbd48d6 | 131 | * @brief Checking and processing command type |
nsrwsurasak | 1:5e6c5fbd48d6 | 132 | * @note $ls, $ed, $rd, $rs and $df and etc. |
nsrwsurasak | 1:5e6c5fbd48d6 | 133 | * @retval |
nsrwsurasak | 1:5e6c5fbd48d6 | 134 | */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 135 | void CheckCmdType() |
nsrwsurasak | 1:5e6c5fbd48d6 | 136 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 137 | // Note : Procese the command type and file name |
nsrwsurasak | 0:bc10ea82aec3 | 138 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 139 | /* Command type is list file ($ls) */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 140 | if(strstr(Msg_RxBuf,CMD_LISTFILE)) |
nsrwsurasak | 0:bc10ea82aec3 | 141 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 142 | /* Set REQ_LISTDIR event's reqFileCmdType */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 143 | reqFileCmdType = REQ_LISTDIR; |
nsrwsurasak | 1:5e6c5fbd48d6 | 144 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 145 | /* Set flag evetnt */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 146 | /* Waiting! main program call event */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 147 | UART_File_event = true; |
nsrwsurasak | 1:5e6c5fbd48d6 | 148 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 149 | /* Clear command index and buffer */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 150 | ClearCmdIndexAndBuf(); |
nsrwsurasak | 0:bc10ea82aec3 | 151 | } |
nsrwsurasak | 1:5e6c5fbd48d6 | 152 | /* Got the *.csv file name */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 153 | else if(strstr(Msg_RxBuf,FOUND_CSV_FILE)) |
nsrwsurasak | 0:bc10ea82aec3 | 154 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 155 | /* Categorization ommand type */ |
nsrwsurasak | 0:bc10ea82aec3 | 156 | CheckReadEditCmd(); |
nsrwsurasak | 0:bc10ea82aec3 | 157 | } |
nsrwsurasak | 1:5e6c5fbd48d6 | 158 | /* Got the *.xml file name */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 159 | else if(strstr(Msg_RxBuf,FOUND_XML_FILE)) |
nsrwsurasak | 0:bc10ea82aec3 | 160 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 161 | /* Categorization command type */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 162 | CheckReadEditCmd(); |
nsrwsurasak | 1:5e6c5fbd48d6 | 163 | } |
nsrwsurasak | 1:5e6c5fbd48d6 | 164 | /* Got the *.log file name */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 165 | else if(strstr(Msg_RxBuf,FOUND_LOG_FILE)) |
nsrwsurasak | 1:5e6c5fbd48d6 | 166 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 167 | /* Categorization command type */ |
nsrwsurasak | 0:bc10ea82aec3 | 168 | CheckReadEditCmd(); |
nsrwsurasak | 0:bc10ea82aec3 | 169 | } |
nsrwsurasak | 1:5e6c5fbd48d6 | 170 | /* Command type is system restart ($rs) */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 171 | else if(strstr(Msg_RxBuf,CMD_SYS_RESTART)) |
nsrwsurasak | 1:5e6c5fbd48d6 | 172 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 173 | /* Request system restart */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 174 | NVIC_SystemReset(); |
nsrwsurasak | 1:5e6c5fbd48d6 | 175 | } |
nsrwsurasak | 1:5e6c5fbd48d6 | 176 | /* Command may be mismatched type */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 177 | else |
nsrwsurasak | 0:bc10ea82aec3 | 178 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 179 | /* Not receive true type command */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 180 | if(Msg_index >= 2) |
nsrwsurasak | 0:bc10ea82aec3 | 181 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 182 | if(!((strstr(Msg_RxBuf,CMD_LISTFILE)) || |
nsrwsurasak | 1:5e6c5fbd48d6 | 183 | (strstr(Msg_RxBuf,CMD_READFILE)) || |
nsrwsurasak | 1:5e6c5fbd48d6 | 184 | (strstr(Msg_RxBuf,CMD_WRITEFILE) || |
nsrwsurasak | 1:5e6c5fbd48d6 | 185 | (strstr(Msg_RxBuf,CMD_DELETEFILE))))) |
nsrwsurasak | 1:5e6c5fbd48d6 | 186 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 187 | /* Call command error function */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 188 | GetCmdError(); |
nsrwsurasak | 1:5e6c5fbd48d6 | 189 | } |
nsrwsurasak | 0:bc10ea82aec3 | 190 | } |
nsrwsurasak | 0:bc10ea82aec3 | 191 | } |
nsrwsurasak | 1:5e6c5fbd48d6 | 192 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 193 | /* Command and file name buffer are full */ |
nsrwsurasak | 0:bc10ea82aec3 | 194 | if(Msg_index == MSG_BUF_SIZE) |
nsrwsurasak | 0:bc10ea82aec3 | 195 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 196 | /* Clear command index and buffer */ |
nsrwsurasak | 0:bc10ea82aec3 | 197 | ClearCmdIndexAndBuf(); |
nsrwsurasak | 0:bc10ea82aec3 | 198 | } |
nsrwsurasak | 0:bc10ea82aec3 | 199 | } |
nsrwsurasak | 0:bc10ea82aec3 | 200 | |
nsrwsurasak | 0:bc10ea82aec3 | 201 | /** |
nsrwsurasak | 1:5e6c5fbd48d6 | 202 | * @brief Categorization commands type |
nsrwsurasak | 1:5e6c5fbd48d6 | 203 | * @note Received file name and type |
nsrwsurasak | 0:bc10ea82aec3 | 204 | * @retval |
nsrwsurasak | 0:bc10ea82aec3 | 205 | */ |
nsrwsurasak | 0:bc10ea82aec3 | 206 | void CheckReadEditCmd() |
nsrwsurasak | 0:bc10ea82aec3 | 207 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 208 | /* Command type is read file ($rd) */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 209 | if(strstr(Msg_RxBuf,CMD_READFILE)) |
nsrwsurasak | 0:bc10ea82aec3 | 210 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 211 | /* Check file name */ |
nsrwsurasak | 0:bc10ea82aec3 | 212 | GetFileName(); |
nsrwsurasak | 1:5e6c5fbd48d6 | 213 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 214 | /* Set REQ_READ event's reqFileCmdType */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 215 | reqFileCmdType = REQ_READ; |
nsrwsurasak | 1:5e6c5fbd48d6 | 216 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 217 | /* Set flag evetnt */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 218 | /* Waiting! main program call event */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 219 | UART_File_event = true; |
nsrwsurasak | 0:bc10ea82aec3 | 220 | } |
nsrwsurasak | 1:5e6c5fbd48d6 | 221 | /* Command type is write/create file ($ed) */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 222 | else if(strstr(Msg_RxBuf,CMD_WRITEFILE)) |
nsrwsurasak | 0:bc10ea82aec3 | 223 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 224 | /* Check file name */ |
nsrwsurasak | 0:bc10ea82aec3 | 225 | GetFileName(); |
nsrwsurasak | 1:5e6c5fbd48d6 | 226 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 227 | /* Set event flag for fill contents buffer */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 228 | MsgContentManagement = true; |
nsrwsurasak | 1:5e6c5fbd48d6 | 229 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 230 | /* User indicated write command status */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 231 | printf("\n-- Write command received\n"); |
nsrwsurasak | 1:5e6c5fbd48d6 | 232 | } |
nsrwsurasak | 1:5e6c5fbd48d6 | 233 | /* Command type is delete ($df) */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 234 | else if(strstr(Msg_RxBuf,CMD_DELETEFILE)) |
nsrwsurasak | 1:5e6c5fbd48d6 | 235 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 236 | /* Check file name */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 237 | GetFileName(); |
nsrwsurasak | 1:5e6c5fbd48d6 | 238 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 239 | /* Set REQ_DELETE event's reqFileCmdType */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 240 | reqFileCmdType = REQ_DELETE; |
nsrwsurasak | 1:5e6c5fbd48d6 | 241 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 242 | /* Set flag evetnt */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 243 | /* Waiting! main program call event */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 244 | UART_File_event = true; |
nsrwsurasak | 0:bc10ea82aec3 | 245 | } |
nsrwsurasak | 0:bc10ea82aec3 | 246 | else |
nsrwsurasak | 0:bc10ea82aec3 | 247 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 248 | /* Call command error function */ |
nsrwsurasak | 0:bc10ea82aec3 | 249 | GetCmdError(); |
nsrwsurasak | 0:bc10ea82aec3 | 250 | } |
nsrwsurasak | 0:bc10ea82aec3 | 251 | } |
nsrwsurasak | 0:bc10ea82aec3 | 252 | |
nsrwsurasak | 0:bc10ea82aec3 | 253 | /** |
nsrwsurasak | 1:5e6c5fbd48d6 | 254 | * @brief Received command error |
nsrwsurasak | 1:5e6c5fbd48d6 | 255 | * @note $?? |
nsrwsurasak | 0:bc10ea82aec3 | 256 | * @retval |
nsrwsurasak | 0:bc10ea82aec3 | 257 | */ |
nsrwsurasak | 0:bc10ea82aec3 | 258 | void GetCmdError() |
nsrwsurasak | 0:bc10ea82aec3 | 259 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 260 | serial_device.printf("$%s -- Command Error %s\n",Msg_RxBuf); |
nsrwsurasak | 1:5e6c5fbd48d6 | 261 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 262 | /* Clear command index and buffer */ |
nsrwsurasak | 0:bc10ea82aec3 | 263 | ClearCmdIndexAndBuf(); |
nsrwsurasak | 0:bc10ea82aec3 | 264 | } |
nsrwsurasak | 0:bc10ea82aec3 | 265 | |
nsrwsurasak | 0:bc10ea82aec3 | 266 | /** |
nsrwsurasak | 1:5e6c5fbd48d6 | 267 | * @brief FileName process |
nsrwsurasak | 1:5e6c5fbd48d6 | 268 | * @note Fill file name as buffer |
nsrwsurasak | 0:bc10ea82aec3 | 269 | * @retval |
nsrwsurasak | 0:bc10ea82aec3 | 270 | */ |
nsrwsurasak | 0:bc10ea82aec3 | 271 | void GetFileName() |
nsrwsurasak | 0:bc10ea82aec3 | 272 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 273 | /* Copy file name from Msg to FileName */ |
nsrwsurasak | 0:bc10ea82aec3 | 274 | memcpy(FileName,&Msg_RxBuf[3],Msg_index - 3); |
nsrwsurasak | 1:5e6c5fbd48d6 | 275 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 276 | /* Clear command index and buffer */ |
nsrwsurasak | 0:bc10ea82aec3 | 277 | ClearCmdIndexAndBuf(); |
nsrwsurasak | 0:bc10ea82aec3 | 278 | } |
nsrwsurasak | 0:bc10ea82aec3 | 279 | |
nsrwsurasak | 0:bc10ea82aec3 | 280 | /** |
nsrwsurasak | 1:5e6c5fbd48d6 | 281 | * @brief Request sent contents to main |
nsrwsurasak | 1:5e6c5fbd48d6 | 282 | * @note |
nsrwsurasak | 0:bc10ea82aec3 | 283 | * @retval |
nsrwsurasak | 0:bc10ea82aec3 | 284 | */ |
nsrwsurasak | 0:bc10ea82aec3 | 285 | void SendContentToFile() |
nsrwsurasak | 0:bc10ea82aec3 | 286 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 287 | /* Set fill buffer to command */ |
nsrwsurasak | 0:bc10ea82aec3 | 288 | MsgContentManagement = true; |
nsrwsurasak | 1:5e6c5fbd48d6 | 289 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 290 | /* Set REQ_WRITE event's reqFileCmdType */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 291 | reqFileCmdType = REQ_WRITE; |
nsrwsurasak | 1:5e6c5fbd48d6 | 292 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 293 | /* Set flag evetnt */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 294 | /* Waiting! main program call event */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 295 | UART_File_event = true; |
nsrwsurasak | 1:5e6c5fbd48d6 | 296 | |
nsrwsurasak | 0:bc10ea82aec3 | 297 | } |
nsrwsurasak | 0:bc10ea82aec3 | 298 | |
nsrwsurasak | 0:bc10ea82aec3 | 299 | /** |
nsrwsurasak | 1:5e6c5fbd48d6 | 300 | * @brief Clear index and buffer of command and file name |
nsrwsurasak | 1:5e6c5fbd48d6 | 301 | * @note |
nsrwsurasak | 0:bc10ea82aec3 | 302 | * @retval |
nsrwsurasak | 0:bc10ea82aec3 | 303 | */ |
nsrwsurasak | 0:bc10ea82aec3 | 304 | void ClearCmdIndexAndBuf() |
nsrwsurasak | 0:bc10ea82aec3 | 305 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 306 | /* Clear counter */ |
nsrwsurasak | 0:bc10ea82aec3 | 307 | Msg_index = 0; |
nsrwsurasak | 1:5e6c5fbd48d6 | 308 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 309 | /* Clear buffer */ |
nsrwsurasak | 0:bc10ea82aec3 | 310 | memset(Msg_RxBuf,' ',MSG_BUF_SIZE); |
nsrwsurasak | 0:bc10ea82aec3 | 311 | } |
nsrwsurasak | 0:bc10ea82aec3 | 312 | |
nsrwsurasak | 0:bc10ea82aec3 | 313 | /** |
nsrwsurasak | 1:5e6c5fbd48d6 | 314 | * @brief Clear index and buffer of contents |
nsrwsurasak | 0:bc10ea82aec3 | 315 | * @note |
nsrwsurasak | 0:bc10ea82aec3 | 316 | * @retval |
nsrwsurasak | 0:bc10ea82aec3 | 317 | */ |
nsrwsurasak | 0:bc10ea82aec3 | 318 | void ClearContentIndexAndBuf() |
nsrwsurasak | 0:bc10ea82aec3 | 319 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 320 | /* Clear counter */ |
nsrwsurasak | 0:bc10ea82aec3 | 321 | Content_index = 0; |
nsrwsurasak | 1:5e6c5fbd48d6 | 322 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 323 | /* Clear buffer */ |
nsrwsurasak | 0:bc10ea82aec3 | 324 | memset(Content_RxBuf,' ',CONTENT_BUF_SIZE); |
nsrwsurasak | 0:bc10ea82aec3 | 325 | } |
nsrwsurasak | 1:5e6c5fbd48d6 | 326 | |
nsrwsurasak | 1:5e6c5fbd48d6 | 327 | /** |
nsrwsurasak | 1:5e6c5fbd48d6 | 328 | * @brief Clear fileName buffer |
nsrwsurasak | 1:5e6c5fbd48d6 | 329 | * @note |
nsrwsurasak | 1:5e6c5fbd48d6 | 330 | * @retval |
nsrwsurasak | 1:5e6c5fbd48d6 | 331 | */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 332 | void ClearFileNameBuf() |
nsrwsurasak | 1:5e6c5fbd48d6 | 333 | { |
nsrwsurasak | 1:5e6c5fbd48d6 | 334 | /* Clear buffer */ |
nsrwsurasak | 1:5e6c5fbd48d6 | 335 | memset(FileName,' ',MSG2FILENAME); |
nsrwsurasak | 1:5e6c5fbd48d6 | 336 | } |