Отправить файл 16 КБ из spiffs в крошечный MCU через последовательный
Мне нужно отправить файл 16 КБ в другой MCU через последовательный порт, который использует следующий протокол:
Я отправляю 256 байтов и останавливаюсь и жду, пока не получу OK1, затем отправляю еще 256 байтов и останавливаюсь и снова жду, пока получу OK2... и так далее до конца этих 16 КБ.
Я использую SPIFFS и мне интересно, как подойти к проблеме. Я нахожу, что я могу сделать file.readBytes()
а также file.seek(offset, SeekCur)
,
И посчитай и прибавь и так далее. Или есть более простой способ решения задачи?
У меня есть пример кода:
void outbound_transfer(String filename) {
File f = SPIFFS.open(filename, "r");
size_t fsize = f.size();
// create buffer for read
char buff[128] = { 0 };
int i;
while (f.available()) {
Serial.println("f is available");
size_t len = fsize;
Serial.println(f.readBytes((char *)buff[i], 128));
i++;
Serial.println("OK");
}
f.close();
}
Но я не знаю, должен ли я читать блок или буфер. И как? И тогда он автоматически переместится на 128 байт (параметр длины в readBytes
) вперед или мне нужно использовать file.seek(offset, SeekCur)
?