язык,среда разработки:
- linux
- fpc/lazarus
- gtk/qt4/qt5/qt6
сделано:
- облегчение интерфейса
- исправлены ошибки
- переработано "ядро"
среда сборки:
- slackware 14.2/x64
- fpc-3.2.2
- lazarus-3.8.0
- glibc-2.23
- binutils-2.45.0
- oprofile-1.4.0
доработки/исправления:
Спойлер
Код: Выделить всё
///////////////////////////////////////////////////////////////////////////////
исходные косяки/непонятки/недоработки
///////////////////////////////////////////////////////////////////////////////
1. /dev/-устройство в линуксе
в линкусе arduino цепляется по умолчанию к
/dev/ttyUSBx - переходник USB-to-COM (дешевые модели)
/dev/ttyACMx - натуральная arduino (фирменный дизайн с atmel-8 чипом на порту)
все фирменные устройства (в данном случае) - цепляются к своим usb/hide портам.
avrdude - в курсе и знает куда цепляться
т.е. нормально работает, если указать в поле порт: -P usb
2. поля ввода/кнопки выбора avrdude-bin/avrdude-conf
- что-то тупит (разбираться не стал, сделал по своему)
- не воспринимает тильду '~'
--> починил
3. кнопка Read (cells calibration)
нет выхлопа в "терминал"
--> починил
4. параметр '-u' - wrong argument
--> заменил на [-v|--verbose] Verbose output
///////////////////////////////////////////////////////////////////////////////
TO DO - туду или нетуду :о)
///////////////////////////////////////////////////////////////////////////////
0. ОК - общий рефакторинг кода :о)
1. OK - добавил кнопку "Abort" - аварийный сброс/зависание
2. OK
если fuse читаются как нули (arduino/usb-port, все мои версии) - происходит a/v-исключение в системной библиотеке
сделал/отследил/установил RET_CODE
3. OK - добавил в Atmega328PB (копия 328-го, без уточнения "деталей")
4. OK - сообщения в "терминал"
- шапка с настройками
- в конце вывод RET_CODE
- автопрокрутка на последнюю строку, что-бы сразу видеть результат команды (прям кровь из носу необходимая фишка)
7. OK - добавил на все кнопки RET_CODE / анализ
8. OK - кнопки Write/Verity/Read
продумать "политику" с VOID/DEV_NULL файлом
оформить в функцию
9. OK - кнопка очистки терминала
11. OK - сохранение: шрифт/размер (терминал & GUI)
12. OK - каталоги:
- убрал лишнюю проверку, связанную с "каталогами"
- дополнительная пред/проверка/обработка имен каталогов (именно имен, вбитых в текстовые поля, а не ПУТИ)
- правильная обработка тильды: '~' -> HOME
13. ОК - сохранение: позиции, размеров формы
14. ОК - programmer.xml
- доработаны старые устройства согласно источникам и собственным наработкам
- добавлено новые программаторы/отладчики
- доб. параметр 'add' - для дополнительных/кастомных настроек avrdude
- создал "громадные" и кастомный конфигураторы
programmer.xml.huge1 (большой)
programmer.xml.huge2 (еще чуть поболее)
programmer.xml.mini (для себя, минимальный набор)
15. OK - обработать ошибки при чтении xml-файлов
16. OK - добавил строку кастомных команд avrdude
17. OK - programmer.xml
добавил параметр для arduino-платы с кастомным контроллером
arduino -> chip="ATmega328PB"
arduino mega -> chip="ATmega2560"
--> автоустановка на соотв. контроллер, при выборе arduino.
18. ОК - check-box вкл/выкл автоскрола терминал-текста
19. OK - на кнопку ERASE - добавить доп. диалог/подтверждение
20. OK - изменение размеров:
разрешил немного програмке свободнее "дышать" (т.е. изменять размеры)
особенно полезно растянуть терминал с выхлопом что-бы удобно читать/наблюдать за процессом/ошибками.
21. OK - функция ConsoleToMemo():
- переписал, что-бы не было фатальной фрагментации памяти.
- уменьшил размер буфера с неприлично-гогромного до прилично-подходящего
- добавил фильтр на esc-последовательности, что-бы не мусорить в "терминал"
22. ОК - блокировка кнопок во время выполнения "работы"
23. OK - убрал авто-ресайз, портящий "разметку" и приводящих к a/v-исключению qt5
24. OK - добавил обрабочик для "безопасных" исключений qt5.
+
работу с языковыми файлами не проверял/не тестировал
///////////////////////////////////////////////////////////////////////////////
URL lavrprog / Oberon