Содержание
Здесь содержится список заметок “Что сделать”.
Еще осталась проблема с долгими прорисовками и их зацикливанием.
Поправить идентификаторы ошибок в DAQ системе (проблемы при загрузке, watchdog и другие).
Добавить процедуры логирования типа Problem, Trouble с другими уровнями Severity.
Картинки от Гурина - добавить в библиотеку.
Доработать меню SDI.
Упордочит работу с окнами SDI.
Убрать DAQ DATA WINDOW.
Вероятная утечка ресурсов - не закрывается COM порт при использовании pipe_init?
Сделать интерфейс баз данных под Linux.
Пока он есть только под Windows.
Устранить оставшиеся проблеммные места
SKIP_DRAFT.
Их еще осталось несколько штук по всему коду.
Уровень серьезности проблем - низкий.
Сделать драйвер LCARD E140.
Сделать драйвер LCARD E440.
Доделать (перевести под новую версию пакета ) DEMO
конфигурации из crw32.
Пока переведено около половины.
Доработать систему приоритетов потоков под Unix.
Существующая система приоритетов работает, но имеет существенные
недостатки.
А именно, таблица приоритетов нуждается в пересмотре и
доработке.
Не все стандартные программы stdlib корректно переведены
и проверены.
В некоторых остались проблеммные с точки зрения кроссплатформенности
фрагменты.
В основном это имена файлов после readini.
Осталась проблема с (первой) прорисовкой окон под
GTK2.
Проблема решена, но с избыточным числом прорисовок.
Осталась проблема с объединением меню (MenuMerge).
Она работает некорректно под GTK2, поэтому отключена
под Linux.
Утилиту crwdaqwatcher надо реализовать под
Windows.
Пока она есть только под Unix.
Надо доработать справочную систему crwlib.
На данный момент есть две системы подготовки справки -
fpdoc и pasdoc.
Надо их доработать или адаптировать для автогенерации справок из кода и
комментариев.
Доработать справочную систему crwdaq.
Она частично взята из crw32 и частично устарела,
требует обновления.
Хорошо бы перевести всю справку crwdaq под
markdown.
Но это большая работа.
Инсталлятор crwdaq под Windows требует
доработок.
Ответственный - Н.Гурин.
Инсталлятор fpcupdeluxe под Windows
также требует доработок.
Ответственный - Н.Гурин.
Сценарии Logon, Logout для crwdaq и daq-системы под Unix и Windows немного отличаются по функционалу. Надо их привести к примерно одному набору функций.
Сделать поддержку OPC UA.
Сделать сервер OpcUaSrv по аналогии с DimSrv.
Упростить форматирование имени осей (X,Y) в описании окна Curve_Window. Сейчас, например, нельзя ось X назвать “Время, с” и выровнять надпись по левому краю, а ось Y - “Напряжение, В”, а хотелось бы. Использование символов форматирования сделать более очевидным. Название графика вынести в отдельный параметр, например Title… Например: Axis[X/Y] - Описание оси [X/Y] в формате: Имя оси (в двойных кавычках), Выравнивание (лево/право/центр), Минимум, Максимум. Title = “Контрольная мишень” AxisX = “Время, час”, Right, 0, 60 AxisY = “Ток, мкА”, Left 0, 300
Неразрывные пробелы в надписи сенсора. При использовании неразрывных пробелов в начале или конце “закавыченной” надписи сенсора, они игнорируются (удаляются).
Добавить возможность выравнивать текст в надписи сенсора по левому, правому краю или по центру.
Добавить возможность изменять размер окна выбора кривых при открытии dat-файла. Или добавить горизонтальный ScrollBar. При длинном имени кривой, например, если в имени много префиксов, то кроме самих префиксов, в окне больше ничего не увидишь.
Иконка Crw32 в меню при нажатии иконки crwdaq в системном трее под ОС Linux. Заменить иконку на актуальную.
Добавить возможность скрывать стрелки сдвига изображения мнемосхемы в меню панели инструментов. Не так много у нас сейчас мнемосхем, которые нужно прокручивать вверх-вниз, вправо-влево, но стрелки есть всегда и занимают полезное место на панели.
Если задан параметр Name в секции описания окна Curve_Window, функция WinSelectByCurve() не срабатывает, кроме того, Cron-сервер не отрисовывает окна по имени секции, где задан параметр Name, а только по имени, заданном в этом параметре. Иногда удобнее задавать заголовок окна русским текстом (лучше даже с пробелами), но в таком случае, проявляются вышеуказанные проблемы.
Надпись “Восстановить crwdaq…” в системном трее Linux звучит, как будто “Восстановить после сбоя”, или что-то в этом роде. Может написать “Показать crwdaq…” или “Показать окно crwdaq…”?
Функции devSend, devMsg, devPost, devSendMsg, devPostMsg по документации возвращают integer, а на самом деле real. Если в коде для вызова любой из этих функций использовать iNul(), будет ошибка компиляции, которую тут не ожидаешь - ведь возвращаемый тип, указанный в документации - integer. - Исправлено 20250414.
Инсталлятор install-daqgroup-all.run. Предлагаю убрать из инсталлятора проверку номера версии. Сам инсталлятор крайне редко меняется, а запускается при каждом обновлении дистрибутивов. При запуске инсталлятора каждый раз выводится сообщение с предложением прервать установку, так как install-daqgroup-all уже установлен, только мы его и не устанавливаем - мы через него выполняем установку других пакетов и этот диалог сбивает с толку.
В [&CronSrv.StartupScript] (_main_init.cfg) не работает команда @Guard - нет программы на которую ссылается AppName: @Guard.AppName=~~.exe а также, @Guard не умеет адаптировать пути, например: @Guard.CmdLine=/Icon=3 /r ~~..!daqname.cfg
Утилита для уведомлений под ОС Linux (dunst) не умеет фильтровать спам,
как это реализовано в FPQui под Windows с guid.
Исправлено 20250514.
В текстовом редакторе CrwDaq есть функция запрета редактирования - если отредактировать текст, затем запретить возможность редактирования и закрыть окно, окно закроется и все изменения будут утеряны. Если закрывать окно при снятом запрете, появляется диалог, предлагающий сохранить файл перед закрытием.
На тестовом стенде обнаружены проблемы WatchDog (ошибка
с кодом 8).
Сообщения указывает на модули _crw_daqpascaldevice
и _crw_daqpascalcompiler
(ключевое слово WatchdogStarted).
Анализ кода позволил выдвинуть гипотезу, что сбой происходит из-за
разницы в деталях реализации mSecNow и
IntMSecNow.
Сделана попытка исправить 20250514.
На тестовом стенде обнаружен сильный рост размера журнального файла
@tooltip.log.
Это происходит из-за “спама” - избыточно часто поступающих
сообщений.
Нужно сделать ограничение размеров журнальных файлов.
CrwDaq Copyright © 2001-2025 Alexey Kuryakin daqgroup@mail.ru