Я читаю данные из последовательного порта (в Arduino) и создавая его (синхронизируя на несколько байтов). Для этого я читаю данные в большой буфер. Как только я получил фрейм, я извлекаю данные, и я хочу отправить его на другой последовательный порт, используя serial.write
(Serial.write(buf, len
)), который принимает массив байтов и его размер.
Поскольку размер данных может быть случайным, мне нужно что-то вроде динамического массива (который не рекомендуется в Arduino). Есть идеи?
Поскольку размер данных может быть случайным, мне нужно что-то вроде динамического массива
В C вам редко нужен динамический массив, потому что массивы, переданные в функции, не несут с собой их размер. Вот почему все функции, которые принимают массив, также занимают много места.
Скажем, у вас есть данные внутри bigBuffer
в позиции startPos
, и вы хотите отправить length
байтов. Все, что вам нужно сделать, это
Serial.write(&bigBuffer[startPos], length);
или с арифметическим синтаксисом указателя
Serial.write(bigBuffer+startPos, length);
length=endPosition-startPosition
, верно? (добавить один, если endPosition
).