Воспользуйся умением С++ оперировать указателями int *size; int *crc; byte buff[10000]; size=&buff[8]; byte *ptr=buff; while(1) { if (mySerial.available()>0) { mySerial.readBytes(ptr,read=mySerial.available()); ptr+=read; if(read>10) { //А тут начинается магия // в переменной size уже лежит размер блока данных } } }
вроде не сложно, но не возьмусь. почему нельзя последовательно писать данные просто как они поступают пакетами один к одному? они ведь сразу в нужном формате приходят, единственное надо бы считать контрольные суммы и сверять с полученными данными, что бы удостовериться, что получили без ошибок