Вроде бы удалось написать задуманное, реализовав с нуля табличку с данными, кольцевым буфером, листанием, экспортом итд, однако меня не покидает ощущение что это можно было всё решить как то гораздо проще. Или я заблуждаюсь?
Вроде бы удалось написать задуманное, реализовав с нуля табличку с данными, кольцевым буфером, листанием, экспортом итд, однако меня не покидает ощущение что это можно было всё решить как то гораздо проще. Или я заблуждаюсь?
Жалко, что я чайник в языке Си (Читаю и перевожу со словарем).
Но я бы оставил стандартную историческую таблицу, а на Си сделал экспорт в файл. Мне кажется было бы проще. Ведь в архиве исторической таблицы, каждая запись - 5 регистров штамп времени, далее один регистр индекс сообщения в массиве сообщений, остальные шесть регистров игнорируем.
Адреса каждой записи в архиве известны, печатаем каждую запись в буфер функцией snprintf() в нужном формате (дату-время + "," + сообщение из массива по индексу + 0x0D + 0x0A). После перебора всех записей в архиве - записать содержимое буфера в конец файла "CE.csv"
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Нашел вашу тему ( https://owen.ru/forum/showthread.php?t=25381 ) и в принципе она меня надоумила кое-что (многое) упростить: предложенное вами решение элегантней и проще.
в итоге кода на С стало на пару десятков строчек от силы, и обусловлено это тем что на множество сообщений об ошибках функциональные области рисовать не хватит места.
Однако есть проблемы:
1)Таблица не хочет стираться, хотя казалось бы стандартная кнопка интерфейса как листание.
2)Таблица таки не хочет в нормальном виде (аналогичном виду таблицы на экране) экспортироваться на USB тогда когда мне нужно, по нажатию кнопки.
Если будет возможность - посмотрите пожалуйста.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Разбор полетов
1. Самое простое - очистка таблицы
убираем эту кнопку управления событием
Захват-02.png
вместо неё используем обычную ф.кнопку, в ней сбрасываем адреса циклического буфера в исходное состояние
Захват-03.png
Теперь если нажать на эту кнопку таблица будет отображаться пустой.
2. Вы невнимательно изучили мой пример по ссылке. Элемент Архивирование на USB служит там исключительно для формирования записей в архиве. Для физического экспорта он не не должен использоваться, совместить две функции не получится хотя бы по тому, что
а) пока весь архив (15 записей) не заполнится ничего физически экспортироваться не будет, даже если включит бит разрешения экспорта, т.е. по заполнении архива запись всех 15 записей на USB происходит автоматом. По команде - ни как!
б) во внутренней структуре элемента Архивирование на USB есть ошибка - после заполнения архива и соответственно установки указателей циклического буфера в конечное положение запись последующих событий происходит всегда в конец очереди и т.к. очередь заполнена, то с каждым ОДНИМ новым событием ВЕСЬ архив сбрасывается(добавляется в конец) в файл. И в файл будет забит повторением уже ранее записанных строк.
Победить это можно если вкл. галку "Очистить регистры после экспорта". А это не что иное как сброс адресов циклического буфера в исходное состояние. И соответственно очистка таблицы на экране.
По этому экспорт нужно вообще запретить, как в моем исходном примере
Это убираем
Захват-04.png
А это добавляем
Захват-05.png
3. Экспортом займется функция Экспорт в CSV
в ф.кнопке вместо этого
Захват-01.png
делаем так
Захват-10.png
И здесь уже и делаем настройки экспорта
Захват-11.png Захват-12.png
Захват-13.png Захват-14.png
Захват-15.png
Вот пример экспорта в файл
Захват-06.png
В заключении про экран 2
1. Сказали А, говорите и Б
Т.е. для индексной адресации используйте коэффициент 11
Захват-16.png Захват-17.png
Ну и вишенка на торте - поиграйтесь с полной клавиатурой моего дизайна.
Захват-07.png Захват-08.png
ВНИМАНИЕ.
Если поменять тип панели, клавиатура пропадет, по этому прилагают тот же файл но для СП310
ЗЫ.
Если Вы хотите в файле видеть один столбец с датой временем, то поменяйте порядок столбцов в таблице на
Событие, статус, дата время.
Тогда в функции экспорта можно вместо первых 6 отдельных столбцов задействовать вкладку Дата время
Захват-15.png
Последний раз редактировалось petera; 20.09.2023 в 21:29.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg