Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Репозиторий для драйвера считывателя R245. Каждый коммит описываем тут.
_________________________________________________________________________
Соглашение об именовании:
Имена переменным даём строчные, при необходимости используем нижнее подчёркивание sample_variable
Константы - прописными CONSTANT_MAIN
Имена функций - MyNewFunction()
_________________________________________________________________________
TODO-List:
- Определиться, каким способом будут добавляться транзакции (с помощью таймера или отдельным потоком). Пока используется таймер.
- Сделать учет событий программы.(открытие, закрытие программы, изменение настроек). Все события записываются в один log файл.
- Разделить несовместимые по времени события. Исключить ситуации, когда сигналы приходят во время операций с данными.
При таких случаях программа иногда аварийно завершается.
_________________________________________________________________________
Коммиты:
1. README + демонстрационный проект на питоне.
2. Заголовочный файл драйвера
3. Добавил в README соглашение по поводу стиля кода и TODO-лист
4. Написал функции:
R245_InitDev, R245_PacketForm, R245_UpdateCRC, R245_CRCCount,
R245_PacketSend, R245_CorrectFA, R245_AuditEn, R245_GetVersion
Для ожидания ответа от считывателя использовал функцию WaitForSingleObject.
5. Поправил исходник, чтобы можно из него сделать dll.
6. Добавил схему GUI.
7. Отредактировал интерфейс программы. Добавил окно настроек. В драйвере написал функции:
R245_API FT_STATUS R245_Init();
R245_API void R245_Destroy();
R245_API R245_DEV_INFO * R245_GetDevInfo();
R245_API FT_STATUS R245_CloseDev(DWORD num_dev);
Также добавил описание структуры для хранения данных об устройствах (может потом стоит её удалить):
struct_r245_dev_info
8. Выложил одобренный интерфейс.
9. Добавил в драйвер функции для работы с памятью транзакций считывателя.
Для примера, реализовал копирование записей из журнала считывателя в таблицу монитора по нажатию на кнопку "Очистить".
10. Реализовано меню настроек. Считывание и сохранение настроек происходит посредством xml файла определенной структуры.
После настройки и подключения нужных устройств появляется возможность следить за поступающими транзакциями. Пока в тестовом режиме
транзакции по таймеру каждые 2 секунды получаются от считывателя и отбражаются в окне монитора. При этом id устройств и тегов
заменяются на символьные имена, указанные в окне настроек.
11. Добавил парсер для файла журнала в стиле sax. Теперь можно добавлять события в файл журнaла с помощью функции addLogNode() класса SettingsObj.
12. Начал реализовывать обработку событий.
13. Обработку событий нужно проверить. Интерфейс программы теперь масштабируется.
14. Начал реализовывать фильтрацию - нужно переопределять filterAcceptsRow(), чтобы можно было делать фильтрацию сразу по нескольким колонкам.
15. Доделал фильтрацию, как она должна работать - теперь нужно её заставить это делать.
16. Фильтрация - работает всё, кроме даты и времени.
17. Фильтрация работает по всем полям.
18. Реализована тестовая версия отчетов.
19. Псевдонимы редактируются в реальном времени.
20. Добавлено событие "реакция оператора".