|
13 | 13 | #include "OTASTM32H7.h"
|
14 | 14 | #include <STM32H747_System.h>
|
15 | 15 |
|
16 |
| -static bool findProgramLength(DIR * dir, uint32_t & program_length); |
17 |
| - |
18 | 16 | const char STM32H7OTACloudProcess::UPDATE_FILE_NAME[] = "/fs/UPDATE.BIN";
|
19 | 17 |
|
20 | 18 | STM32H7OTACloudProcess::STM32H7OTACloudProcess(MessageStream *ms, Client* client)
|
@@ -76,7 +74,7 @@ OTACloudProcessInterface::State STM32H7OTACloudProcess::flashOTA() {
|
76 | 74 | decompressed = nullptr;
|
77 | 75 |
|
78 | 76 | /* Schedule the firmware update. */
|
79 |
| - if(!storageOpen()) { |
| 77 | + if(!findProgramLength(_program_length)) { |
80 | 78 | return OtaStorageOpenFail;
|
81 | 79 | }
|
82 | 80 |
|
@@ -164,33 +162,25 @@ bool STM32H7OTACloudProcess::storageInit() {
|
164 | 162 | return false;
|
165 | 163 | }
|
166 | 164 |
|
167 |
| -bool STM32H7OTACloudProcess::storageOpen() { |
| 165 | +bool STM32H7OTACloudProcess::findProgramLength(uint32_t & program_length) { |
168 | 166 | DIR * dir = NULL;
|
169 |
| - if ((dir = opendir("/fs")) != NULL) |
170 |
| - { |
171 |
| - if (findProgramLength(dir, _program_length)) |
172 |
| - { |
173 |
| - closedir(dir); |
174 |
| - return true; |
175 |
| - } |
176 |
| - closedir(dir); |
177 |
| - } |
| 167 | + struct dirent * entry = NULL; |
| 168 | + bool found = false; |
178 | 169 |
|
179 |
| - return false; |
180 |
| -} |
| 170 | + if ((dir = opendir("/fs")) == NULL) { |
| 171 | + return false; |
| 172 | + } |
181 | 173 |
|
182 |
| -bool findProgramLength(DIR * dir, uint32_t & program_length) { |
183 |
| - struct dirent * entry = NULL; |
184 | 174 | while ((entry = readdir(dir)) != NULL) {
|
185 | 175 | if (strcmp(entry->d_name, "UPDATE.BIN") == 0) { // FIXME use constants
|
186 | 176 | struct stat stat_buf;
|
187 | 177 | stat("/fs/UPDATE.BIN", &stat_buf);
|
188 | 178 | program_length = stat_buf.st_size;
|
189 |
| - return true; |
| 179 | + found = true; |
190 | 180 | }
|
191 | 181 | }
|
192 |
| - |
193 |
| - return false; |
| 182 | + closedir(dir); |
| 183 | + return found; |
194 | 184 | }
|
195 | 185 |
|
196 | 186 | extern uint32_t __etext;
|
|
0 commit comments