Проект поддержки механорецептора и обслуживающих его приборов

Технические вопросы по программе можно посылать по адресу staroverovvl@yandex.ru.

Sens.7z - полная версия всех файлов проекта (от 25.02.2016), включающая папки Sens и SensData с диска C:.

TotalSens.rar - версия всех файлов проекта (от 06.07.2012), предназначенная для применения в рабочих условиях. Для установки следует распаковать архив на диск C. Основной исполняемый файл - с:\Sens\sens1.exe. Для работы в расширенном режиме (например, для работы с общими параметрами программы) следует запустить командный файл RunSens1.bat.

sens15.rar - версия всех файлов проекта (от 06.07.2012). Для установки следует распаковать архив на диск C. Основной исполняемый файл - с:\Sens\sens1.exe. После распаковки программы не забудьте распаковать последнее обновление.

update51.rar - последняя версия архива с обновлением программы (от 03.08.2016). Для установки следует распаковать архив на диск C (файлы из архива должны лечь поверх файлов программы).
update34.rar - версия архива с обновлением программы, не адаптированным под ТУ от декабря 2012г (от 06.11.2013). Для установки следует распаковать архив на диск C (файлы из архива должны лечь поверх файлов программы).
SetupSens1.rar - архив с дистрибутивом программы. Для установки программы надо распаковать архив и запустить файл Setup.exe.

LibAllert.7z - пример библиотеки для выделения особенностей в сенсорной информации. Прилагается описание работы с библиотекой
Пример текстового файла с данными по нажатию. Текстовые файлы содержатся в соответствующих папках архива. Папки отличаются по интервалу времени между элементарными нажатиями (0.01сек и 0.03сек). В архиве также располагаются паспорта первого и второго механорецептора и паспорт тактильного дисплея. В файле архива readme.txt содержится краткое описание правил преобразования сенсорных данных.

Последние изменения



27.07.16
Через меню окна записи операции (в разделе Глобальные параметры) теперь можно разрешить вывод сразу двух изображений сенсоров - скорректированных и нескорректированных процессом коррекции наклонного нажатия.

02.04.16
В диалоге глобальных параметров появилось поле макс.значение,считающееся нулевым. Поле используется для определения сенсоров, считающихся ненажатыми, в алгоритме автоматической коррекции наклонного нажатия.

02.04.16
В диалоге глобальных параметров программы и в разделе меню Глобальные параметры основного диалога программы появились флаги Автоматическая коррекция наклонного нажатия и Автоматическая коррекция чувствительности. При установке флага Автоматическая коррекция чувствительности при достижении в некотором сенсоре максимального выводимого на экран значения происходит автоматическая перенормировка выводимых на экран значений всех сенсоров таким образом, чтобы значение в сенсоре с максимальным значением оставалось бы равным 255.
Преобразования, задаваемые данными флагами, также применяются к нормированным значениям, передаваемым во внешние библотеки распознавания.

08.09.15
Теперь при отображении результатов работы библиотеки распознавания (в соответствии с выпускаемой статьей) отображаются результаты работы всех трех алгоритмов. Данные из файла с параметрами алгоритмов перегружаются при нажатии на кнопку Connect.

01.09.15
Переписана библиотека распознавания в соответствии с выпускаемой статьей.
Библиотека поддерживает несколько алгоритмов. Номер алгоритма и его параметры загружаются из файла C:\Sens\pars\LibAllert.txt. Данный файл имеет примерно следующий вид:
//Method: 1)Max-Min>=T1; 2)static+dynamic information
Method=2
T1=40

Alpha2=100
DeltaT2=0.5
Rho2=200
Kthr2=10
DTShowRed2=2

Если файла нет, то он автоматически создается. В параметре Method задается номер алгоритма. Параметры, заканчивающиеся на 1 относятся к первому алгоритму, на 2 - ко второму и т.д. Kthr2 - пороговое значение для второго алгоритма, T1 - для первого.

01.09.15
В параметрах программы появился флаг автоматическое определение нулевого уровня, при выборе которого нулевой уровень каждого канала определяется как минимум значений, поступаемых от механорецептора, за время, заданное в поле интервал определения нулевого уровня (в секундах). При установке данного флага не допускаются постоянные нажатия на механорецептор. В течение каждого интервала времени, заданного в вышеупомянутом поле, следует оставлять механорецептор в ненажатом состоянии. Данный флаг имеет смысл устанавлявать при сильном постоянном смещении нулевого уровня.

23.05.14
В параметрах программы появился флаг в окне операции выводить сырые значения вместо нормированных, при выборе которого в окне с записью операции в каждом показателе значения отдельного сенсора механорецептора вместо нормированного значения давления выводится сырое значение, снимаемое с механорецептора.

02.12.13
Появился новый ключ /start, который можно задавать при запуске программы. При задании этого ключа после запуска прогарммы автоматически появляется окно работы с механорецептором и нажимается кнопка Connect
Данный ключ дабавлен при запуске программы с помощью командного файла RunReceiver.bat.

02.12.13
Сервер передачи данных стал корректно реагировать на обрыв соединения.

02.12.13
Очередная существенная правка приемника/передатчика изображения механорецептора. Похоже, задержка передачи изображения устранена.

30.11.13
Правка приемника/передатчика изображения механорецептора.

28.11.13
Испралена ошибка в интерпретации IP-адреса приемника/передатчика.

26.11.13
Внесена правка в сервер передачи данных.
Внесена правка в программу обслуживания механорецептора, в результате чего стали корректно запускаться на одной машине приемник и передатчик данных.

17.11.13
Появилась возможность передачи изображения, появляющегося при нажатиях на механорецептор, по сети. Будем называть программу, на которой осуществляется нажатие на механорецептор передатчиком данных, а программу, на которой только показывается полученное изображение, приемником данных.
Передатчик данных должен быть один. Приемников может быть много.
Для реализации этой возможности на машине, доступной из сети с приемником и передатчиком данных, должен быть запущен сервер передачи данных. Сервер передачи данных запускается с помощью командного файла RunTransmitServer.bat.
Для запуска передатчика данных надо запустить командный файл RunSender.bat.
Для запуска приемника данных надо запустить командный файл RunReceiver.bat.
Если машины с приемником или передатчиком данных находятся на машине, отличной от машины, на которой запущен сервер передачи данных, то надо установить IP-адрес машины с сервером передачи данных в соотетствующих командных файлах.

08.11.13
В окне работы с кофеваркой в режиме работы с манометром значения давления теперь задаются не отдельными кнопками, а с помощью поля в `Давление' в нижней части диалога. Для осуществления замера надо нажать на соответствующую кнопку в нижней чпсти диалога. Увеличить/уменьшить значение давление в указанном поле можно с помощью кнопок `<' и `>', при этом шаг изменения задается в соответствующем поле справа от поля `Давление'.

08.11.13
Теперь диапазон давлений в окне работы с кофеваркой задается параметром Manometr_VMax из файла C:\Sens\DVP\knee.txt. Шаг вывода вертикальных линий в данном окне задается параметрм Manometr_VStep из того же файла.

05.11.13
Появился конфигурацинный файл тестирующего устройства C:\Sens\DVP\knee.txt. Значения v, полученные непосредственно с чашечки, при показе преобразуются по закону V=Abs((v+K0)*K1), где коэффициенты K0 и K1 задаются в указанном файле. Данный файл повторно считывается каждый раз при нажатии на кнопку Установить ноль.

09.10.13
Появились командные файлы Испытания.bat и СозданиеПаспорта.bat с помощью которых можно запускать программу в режиме испытаний (работа с лабораторным прибором без механорецептора совместно с механорецептором, соединение с которым происходит по встроенному модулю блютуз) и, соответственно, в режиме создания паспорта механорецептора.

19.06.13
Упрощена процедура создания паспорта устройства. Теперь для этого надо запустить командный файл CreatePassport.bat и далее следовать инструкциям.
В диалоге параметров механорецептора не обязательно задавать имя паспорта. Достаточно задать его номер, при этом, имя паспорта будет создано автоматически.
Исправленная инструкция по созданию паспорта приведена ниже.

19.06.13
Исправлены ошибки, связанные с отскакиванием отдельных кнопок в окне записи операции и с требованием библиотеки msvcr100.dll на отдельных компьютерах.
22.05.13
Инструкция по созданию паспорта механорецептора.
Создание паспорта конкретного механорецептора сводится к включению механорецептора, созданию чернового паспорта, после чего следует произвести стандартное нажатие на механорецептор, отключить механорецептор и, наконец, следует обновить созданный паспорт механорецептора в соответствии с минимальным и максимальным давлениями, полученными в процессе нажатия.

Все указанные процедуры последовательно выполняются при запуске командного файла CreatePassport.bat . Данную процедуру можно запускать только на комьютерах с работающим встроенным BlueTooth-передатчиком. После запуска командного файла надо следовать появляющимся инструкциям.

Примечания.

Заранее следует придумать номер механорецептора. Принято, что номер механорецептора печатается на его ручке. Номер не должен совпадать с номерами зарегистрированных механорецепторов. В случае нарушения данного условия при запуске программы будет выведено соответствующее сообщение, после чего программу надо закрыть и устранить проблему.

После запуска указанного командного файла откроется диалог со списком распознанных BlueTooth-устройств. Нас интересует устройство с подписью OSA... . Устройства с этой подписью будут располагаться сверху списка обнаруженных устройств. Если устройств несколько, то требуется какими-то дополнительными манипуляциями выяснить, какое из них является тестируемым механорецептором.

В случае изменения характеристик механорецептора (например, после его длительной эксплуатации) можно обновить его паспорт с помощью повторения описанной выше процедуры. При этом следует выбирать тот же самый номер устройства, в результате чего старый паспорт устройства будет перезаписан.


21.05.13
В меню диалога записи/показа операции пункт Действия/Получить список подсоединенных устройств заменен на пункт Действия/Получить список подсоединенных устройств (и создать паспорт по последнему нажатию). После выбора пункта меню должен появиться диалог со списком подсоединенных устройств. Если выбрать в данном диалоге требуемое устройство и нажать на кнопку OK, то появится возможность сразу создать паспорт данного устройства.
Далее потребуется сделать данное устройство видимым в списке номеров устройств, подключить устройство, сделать тестовое нажатие данного механорецептора и обновить созданный паспорт в соответствии с произведенным нажатием.
21.05.13
В меню диалога записи/показа операции появился пункт Действия/Обновить паспорт устройства по последнему нажатию. После выбора пункта меню надо выбрать файл с паспортом требуемого устройства и коэффициенты в выбранном паспорте будут заменены в соответствии с последним нажатием.
Пункт меню позволяет быстро корректирвоать паспорт устройства, если характеристики механорецептора изменились.

06.05.13
В меню диалога записи/показа операции появился флаг Нажатия/Переворачивать изображение кривых. Данный флаг надо устанавливать при показе операций, записанных с помощью старого механорецептора, для которого кривые давления показываются в перевернутом виде. Значение флага не сохраняется. При каждой загрузке операции, заисанной старым механорецептором флаг надо переустанавливать.

06.05.13
В меню диалога записи операции появился раздел Глобальные параметры, в котором присутствуют флаги Встроенный модуль BlueTooth, Автосоединения для тактильного дисплея и флаги, отвечающие за использование паспортов механорецепторов.
18.04.13
Заработало обнаружение BlueTooth-устройств от встроенного BT-передатчика.

16.04.13
При обнулении выводимых значений механорецептора происходит пересчет паспорта механорецептора. Ранее новый паспорт использовался при непосредственном показе воспроизводимого нажатия, но новый паспорт не записывался вместе с сырыми данными механорецептора, поэтому воспроизведение записанного нажатия происходило некорректно. Теперь новые паспорта записываются в файл вместе с данными нажатия, поэтому воспроизведение нажатия должно быть идентично его показу во время операции.
Для ранее записанных операций стали отлавливатья моменты, в которых происходило обнуление значений механорецептора. В эти моменты стал происходить пересчет паспорта устройства, согласно текущему уровню значений механорецептора. Результат должен быть похож на вывод программы в процессе, собственно, операции.

12.03.13
Реализована возможность тестирования работоспособности чашки кофеварки с помощью многократного нажатия механорецептором на чашку. Для входа в данный режим в окне работы с кофеваркой появилась кнопка Испытания кофеварки'. После нажатия на данную кнопку надо задать значения полей NStepsW (количество нажатий на чашку), VCupMax (значение, получаемое с чашки кофеварки, при достижении которого механорецептор едет назад; например = 100), DT shift (время короткого движения вниз механорецептора; рекомендованное значение = 100). Для начала испытаний следует нажать на кнопку W. Значения на механорецепторе не влияют на остановку движения механорецептора.
Полное количество нажатий на чашку и оставшееся количество нажатий отображаются в информационном поле в нижней части диалога.
Напомним, что для работы с кофеваркой со встроенным механорецептором следует выбирать паспорт устройства с номером 1000.

10.12.12
Внесена правка в подпрограмму обслуживания втроенного Bluetooth-модуля. В результате, встроенный Bluetooth-модуль заработал на планшете.
10.12.12
Изменен формат глобальной базы данных. Теперь для пациентов, хирургов, операций задается номер больницы, к которым они привязаны. Номер текущей больницы должен быть задан в глобальных параметрах программы. Появилась возможность архивации всех операций в единый файл и возможность извлечения операций из единого файла. Таким образом, можно архивировать операции в каждой больнице и переносить их все на единый компьютер (при разархивации текущие операции из других больниц не удаляются). Данные функции доступны из меню диалога работы с глобальной базой данных..
10.12.12
Заработал втроенный Bluetooth-модуль. Для подключения библиотеки надо установить флаг Встроенный модуль Bluetooth в глобальных параметрах программы. После этого для ввода данных с Bluetooth, эмулируемого с помощью COM-порта, будет использоваться библиотека LibBTInternal.dll .
23.11.12
Программа полностью подготовлена для работы с библиотекой, обслуживающий встроенный Bluetooth-модуль. Для подключения библиотеки надо установить флаг Встроенный модуль Bluetooth в глобальных параметрах программы. После этого для ввода данных с Bluetooth, эмулируемого с помощью COM-порта, будет использоваться библиотека LibBTInternal.dll .
21.11.12
При записи операции при вводе нажатия теперь нажатие на кноку `Disconnect' не приводит к потере записи нажатия.
02.11.12
Для 7-канального механорецептора стал поддерживаться вывод на тактильный дисплей.
26.09.12
Появилась поддержка 7-канального механорецептора (версия прибора =15). Для него создан паспорт pasp33.dvp (очень грубый). Для 7-канального механорецептора в паспорте должна присутствовать запись NCHANNELS: 7.
26.09.12
Появилась полная поддержка новой кофеварки (в варианте новой прошивки). Для конкретной кофеварки шкала значений, получаемых с чашки, откалибрована в масштабе: 1ед. чашки кофеварки = 1гр. В паспорте механорецептора новой кофеварки (это паспорт обычного механорецептора) должна присутствовать запись FORMAT: 3. Для новой кофеварки создан очень грубый паспорт pasp1001.dvp.
20.07.12
Появилась поддержка механорецептора из новой кофеварки. Для него сделан паспорт устройства с номером 1001. В паспорт устройства добавлено поле с номером формата данных устройства. Поле имеет имя FORMAT. Значение 0 соответствует старому формату данных (до 30.03.12). Значение 1 соответствует новому формату данных (после 30.03.12). Значение 2 соответствует формату данных новой кофеварки.
За ненадобностью убраны флаги `Формат данных механорецептора' из диалога параметров программы.
06.07.12
Обеспечена возможность вывода текста библотекой LibAllert.dll с помощью соответствующей функции, передаваемой в библиотеку.
07.06.12
Обеспечена работа второй кнопки на механорецепторах, ее содержащих. Для этих механорецепторов в паспорте данного устройства должна присутствовать строка: SET_SECOND_BUTTON: 1 При нажатии на вторую кнопку механорецептора происходит установка нуля данного устройства.
07.06.12
При установке нуля механорецептора фон окна с изображением сенсоров механорецептора стал окрашиваться в синий цвет.
04.06.12
В текстовом файле с выходными данными механорецептора после второй строки данных блока данных элементарного нажатия появилась строка со всеми сырыми данными пакет данных (28 значений).
04.06.12
Для второго протокола передачи данных механорецептора стало выводиться напряжение (если оно доступно).
31.05.12
Для второго протокола в БД стали записываться все сырые данные. Новая версия программы лежит только в обновлении.
31.05.12
Для второго протокола данных механорецептора стала выводиться температура и значения четырех кодов внешних АЦП. Температура получается странная.
31.05.12
Формат протокола механорецептора стал отражаться в иконке соединения. При использовании первого протокола на ручке красного изображения механорецептора рисуется одна поперечная черная линия. Для второго протокола рисуется две линии. Для неопознанного протокола линии на ручке не рисуются.
28.05.12
Создан паспорт 21-го механорецептора. Качество очень плохое.
28.05.12
В меню окна записи операции в раздел Действия добавлен пункт Получить список подсоединенных устройств. После выбора пункта меню спустя некоторое время появится диалог с информацией о подсоединенных через COM-порты устройствах.
28.05.12
В окно записи операции добавлена кнопка Установить 0, позволяющая быстро уставить нулевое значение сенсоров по значениям, получаемым от сенсоров в данный момент.
26.04.12
Создан последний 11-ый протокол Проверки соответствия показаний тактильного дисплея и тактильной информации полученной с тестового объекта.
Создан паспорт сенсорного устройства, принимающего сенсорные данные от сенсорного дисплея.
25.04.12
Доработка потоколов.
Паспорт для кофеварки.
Внесение чувствительности кофеварки в ее паспорт.

24.04.12
В диалоге работы с кофеваркой в режиме работы с манометром появился флаг `Отдельная нормировка каналов'. Если флаг установлен, то первый к лик на кнопку с давлением сводит все значения сенсоров в одну точку (с помощью отдельной дополнительной нормировки каждого сенсора). Если флаг не установлен, то сенсоры по отдельности дополнительно, по отношению к паспорту, не нормируются. 11 протоколов.
Автоматическое распознавание версии сенсора.
Паспорта на устройства ##18, 2.

14.04.12
Внесены исправления, касающиеся неправильного вывода порога чувствительности в диалоге работы с кофеваркой.
В диалоге работы с кофеваркой обеспечено появление кнопки pp (для работы с манометром) в случае невозможности соединения с кофеваркой.

30.03.12
Проверено, что для грузиков берутся усредненные значения данных сенсоров.
Обеспечено ожидание завершения обслуживания кофеварки при выходе из окна работы с кофеваркой.
Обеспечено постоянное расположение окна работы кофеварки сверху других окон.
В диалог задания параметров программы добавлен флаг `выводить номера отдельных сенсоров на изображении'.

20.03.12
В диалог работы с кофеваркой добавлен флаг большая шкала, позволяющий расширить диапазон значений шкалы давления. Соответствующая версия программы внесена в дистрибутив TotalSens.rar.
20.03.12
В дистрибутив TotalSens.rar добавлена библиотека поддержкки USB-CAN модуля, поэтому теперь данный дистрибутив можно разархивировать на неподготовленную (в смысле, без предустановленных драйверов) машину.
19.03.12
В диалоге работы с кофеваркой заработала кнопка v.
06.03.12
При нажатии на кнопку Log в диалоге работы с кофеваркой теперь также производится вывод отчета на принтер.
29.02.12
Модифицирован диалог задания веса гирьки в диалоге работы с кофеваркой. Теперь при нажатии в нем на кнопку OK в диалоге появляется счетчик оставшихся секунд, уменьшающийся на единицу каждую секунду. По достижении нуля диалог закрывается и данные по выставленной гирьке отображаются в виде точки в диалоге работы с кофеваркой. После этого гирьку можно снять. Далее можно установить новую гирьку и нажать на кнопку Гиря.
15.02.12
Модифицирован диалог работы с кофеваркой. В нем появилось две новые кнопки: pp и G.
Кнопка pp переводит диалог в режим тестирования механорецептора с помощью манометра. В данном режиме следует накачать манометр до давления примерно 220, а потом начать постепенно спускать давление. При достижении стрелки манометра значений 200, 180, 160 и т.д., следует нажимать соответсвующие кнопки, расположенные в нижней части диалога. После нажатия каждой кнопки со значением давления в диалоге будет появляться точка, отображающая зависимость значений механорецептора от давления.
Кнопка G переводит диалог в режим тестирования прибора тестирования механорецептора с помощью калибровочных гирь. В данном режиме следует последовательно класть гирьку на чашку прибора, нажимать на кнопку `Гиря', выставлять в появившемся диалоге значение веса гири, нажимать кнопку ОК, ждать примерно 20сек., нажимать кнопку `Stop'. После выполнения этой последовательности на экране появится новая точка, отображающая зависимость значений, выдаваемых прибором тестирования механорецептора, от веса гири на его чашке.
После вторичного нажатия на каждую из кнопок pp и G диалог возвращается в обычный режим тестирования механорецептора прибором тестирования механорецептора.
В диалоге появилась кнопка Log. При нажатии на нее отчет о проведении испытаний в данном режиме выводится в папку, имя которой тут же сообщается. В диалоге появилась кнопка Установить ноль. При нажатии на нее выставляются нулевые значения механорецептора и прибора тестирования механорецептора.
15.02.12
Модифицирован диалог работы с кофеваркой. Появилась возможность осреднения значений по одному шагу кофеварки (т.е. примерно по 0.5сек).
02.02.12
В главном диалоге, открывающемся при запуске программы, появилась кнопка COM>>>, при нажатии на которую выписываются номера открытых COM-портов.
02.02.12
Исправлен диалог задания постоянного усилия, подаваемого на все сенсоры тактильного дисплея. При изменении значения усилия в данном диалоге сразу же изменяется усилие, подаваемое на тактильный дисплей.
26.01.12
Завершен очередной этап проработки диалога работы с кофеваркой.
При нажатии на кнопку W механорецептор движется вниз со средней скоростью. После встречи с препятствием скорость понижается. По достижении некоторого уровня механорецептор останавливается, едет две секунды вверх и снова останавливается. Автоматически создается паспорт механорецептора и полученный паспорт становится текущим. Значение паспорта записывается в файл C:\Sens\DVP\tmp\tmp_saved.dvp. При желании данные из этого файла можно перенести в паспорт соответствующего механорецептора, чтобы при следующем вызове программы использовался бы данный созданный паспорт.
23.01.12
Заработал пример библиотеки распознавания особенностей тактильной информации при записи тактильной информации.
Пока использование библиотеки распознавания особенностей тактильной информации происходит в рамках нити, отображающей тактильную информацию на дисплей, поэтому медленная работа данной библиотеки приводит к торможению вывода данных на экран.
Пример библиотеки обновлен.
21.01.12
Заработал пример библиотеки распознавания особенностей тактильной информации при проигрывании записанного нажатия.
Пример библиотеки обновлен.
20.01.12
Изменен вид задания параметров чувствительности сенсорного дисплея. Теперь чувствительность сенсорного дисплея задается с помощью пункта меню Чувствительность/Сенсорный дисплей из диалогов работы с операцией и просмотра нажатия. При этом чувствительность также может задаваться в файле C:\Sens\DVP\display.dsp. При изменении параметров с помощью данных пунктов меню файл C:\Sens\DVP\display.dsp перезаписывается. Значение задваемых при этом параметров объясняется в открывающемся диалоге.