Menu

Code Commit Log


Commit Date  
[r45] (HEAD) by dynamicsalex

[*] Скорректирован гербер

2026-09-12 09:11:36 Tree
[r44] by dynamicsalex

[*] Скорректированы номиналы на плате и новыей слой маркировки верхнего слоя ПП в gerber

2026-09-12 09:03:02 Tree
[r43] by dynamicsalex

[*] В схеме и плате заменены конденсаторы 100n на 330n в обвязке MAX3223 - 100n недостаточная ёмкость, провалы на сигнале COM-порта.
[*] Некоторые файлы добавлены в ignor list

2026-09-12 08:42:55 Tree
[r42] by dynamicsalex

[+] Изменение архитектуры кода: добавлен новый класс TSCMonitor, - вся логика перенесена в этот класс.
[*] Уменьшен интервал отправки запроса состояния принтера до 1 сек. (для увеличения скорости реагирования на ошибку)

2026-08-28 05:46:55 Tree
[r41] by dynamicsalex

[*] Разделение большой функции парсера пакетов на 3 функции - для более понятного кода
[*] Связь с принтером считаем установленной, ТОЛЬКО если принят пакет правильной структуры

2026-08-27 19:59:57 Tree
[r40] by dynamicsalex

[*] Функция анализа пакетов теперь возврашает количество (было лг. значение) ошибочных пакетов,
это нужно для подсчёта общего количества ошибочных пакетов за цикл и принятия решения об ошибке принтера в целом

2026-08-27 13:54:58 Tree
[r39] by dynamicsalex

[*] Анализ пакета полностью перенесен в класс CLPPacket

2026-08-27 12:21:12 Tree
[r38] by dynamicsalex
2026-08-27 06:45:54 Tree
[r37] by dynamicsalex

[+] Парсим пакет данных от принтера, иначе ложные сообщения об ошибке

Почему это даёт ложные срабатывания:
Код ищет байты ошибок (0x45, 0x60 и т.д.) в любом месте принятого массива.
Когда приходит пакет 02 40 60 40 40 03 0d 0a (где ошибки нет), байт 0x60 случайно оказывается на 3-й позиции (индекс 2). Старый алгоритм находит его и ошибочно считает, что это ERR_CLP_HEAD_OPEN, хотя по протоколу код ошибки должен находиться строго в пятом байте (индекс 4), а статус общей ошибки — во втором байте (индекс 1).
Решение
Необходимо реализовать функцию, которая:
Ищет в потоке байт полную структуру пакета (начало 0x02 и конец 0x03 0x0D 0x0A).
Проверяет строго второй (0x45) и пятый (коды ошибок) байты.
Использует буфер накопления, так как данные по UART могут приходить частями (прерывания могут срабатывать несколько раз, пока пакет не соберётся целиком).

2026-08-27 06:34:59 Tree
[r36] by dynamicsalex

[*] Логика мигания светодиодом ошибки вынесена в класс LED

2026-08-26 11:12:42 Tree
Older >