Надо было сделать многократное измерение. Сколько максимум раз может пользователь захотеть его сделать? Неизвестно. Сотня точно. Может и больше.
Но как это тестировать? Это пользователь может мерить по своему желанию. Мне запустить замер на много часов или даже несколько дней -- сложнее.
10 итераций проверил. 50 итераций проверил. 100... не помню, проверил или нет.
Пользователь запустил 200. А потом пишет -- а почему у меня количество измерений отрицательным отображается?
Читаю логи. 126 измерений... 127 измерений... -128 измерений...
Это такая классика, что у меня олдскулы свело. Программа, отображающая ход измерений и программа, непосредственно проводящая измерения -- разные вещи. Они обмениваются пакетами. Формат пакетов задаю я сам.
И вот почему-то для общего числа итераций я использовал тип int32_t (4 байта), а для номера текущей итерации -- int8_t (1 байт). При этом в микроконтроллере номер итерации хранится 32-битный. Это он только наружу выходит в урезанном виде.
Конечно же, восьмибитное знаковое число будет "оборачиваться" в минус после 127...
ТЗ нечёткое, но виноват сам
zHz00
| четверг, 13 июня 2024