Nikituny
Junior Member / Новичок
Участник № / Member № 9588
отправлено / posted
Здравствуйте, такой вопрос, необходимо создать внешний драйвер в системе Linux, в справке для разработки и подключения драйвера к МРВ используется создаваемая библиотека rwh.dll, как должна называться и как будет подключаться библиотека в линуксе? (и нужно ли вместе с этой библиотекой файлы с кодом помещать в папку с проектом МРВ). Драйвер самый обычный, просто прямо в коде привязать допустим v = 5, и вывести 5 в МРВ.
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
- должна лежать где исполняемые файлы - имя файла librwh_64.so - данный вид драйвера должен использоваться для быстрого обмена с устройством (без задержек ); - не желательно использовать внешние библиотеки - он вызывается из основного потока TM и блокирует его до возврата управления - для написания драйверов обмена с устройством по сети или последовательному интерфейсы необходимо пользоваться t41/t12
Сообщения / Posts 879 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Nikituny
Junior Member / Новичок
Участник № / Member № 9588
/* Вызывается на старте 0 - ok > 0 error */ int rwh_start() { memset(do_val, 0, sizeof(int) * 256); memset(ao_val, 0, sizeof(float) * 256); memset(opt_val, 0, sizeof(int) * 256);
return(-1); }
/* Вызывается на стопе */ void rwh_stop() { }
/* Вызывается на старте после вызова rwh_start() для типов 1.15 IN, 1.31 OUT 2.15 IN 2,31 OUT если канал FLOAT */ void rwh_aio_init(IA &ia) { }
/* Вызывается на старте после вызова rwh_start() 2.15 IN 2,31 OUT если канал HEX32 */ void rwh_dio_init(IA &ia) { } /* далее для всех фукций код возврата = 0 - успешно недостоверность сбрасывается > 0 - ошибка недостоверность устанавливается
<type>v - значение из 9 атрибута для записи <type>v - считанное значение для передачи во вход канала */
/* тип 2.15, 2.31 получается в IDE из AI_RWH */ int rwh_aio_write_i32(IA &ia,int v) { v = 5; ao_val[ia.c[2]] = v; return(0); }
/* тип 2.15 получается в IDE из DI_RWH залинкованного на FLOAT INPUT */ int rwh_aio_read_i32(IA &ia,int &v) { v= 6;
return(0); }
/* тип 2.31 получается в IDE из DO_RWH залинкованного на FLOAT INPUT */ int rwh_aio_read_i32_readback(IA& ia, int& v) { v = 7; return(0); }
Еще один вопрос, может я делаю что то не так, мне просто в МРВ нужно вывести значения привязанный к V, чтобы разобраться как это работает, в МРВ выводятся нули и все, скопировал библиотеку в папку с проектом, выводит нули
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
ответ на заданный вами вопрос был таким - должна лежать где исполняемые файлы - имя файла librwh_64.so
Сообщения / Posts 879 | Из / From: Россия
| IP / IP: IP адрес / IP address |
quote:Отправитель / Originally posted by Nikituny: Еще один вопрос, может я делаю что то не так, мне просто в МРВ нужно вывести значения привязанный к V, чтобы разобраться как это работает, в МРВ выводятся нули и все, скопировал библиотеку в папку с проектом, выводит нули
Здравствуйте. Пользователь Nico дал ответы. Библиотеки поместите в папку Среды Разработки (Монитора Реального Времени). Проверьте название файлов библиотек.
Сообщения / Posts 17345 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Nikituny
Junior Member / Новичок
Участник № / Member № 9588
отправлено / posted
Меня интересовало, может есть какие то особенности при написании драйвера, или при его вызове в ТМ, может тип переменной указать надо и тд, или ai указать, или же базовый адрес поменять, может сам код драйвера не рабочий? вот что меня интересовало. На предыдущий вопрос да, я получил ответ
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
- код рабочий( поскольку кода пара строк ) - если правильно скомпилировано и загрузился то функции будут дергаться
Сообщения / Posts 879 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Nikituny
Junior Member / Новичок
Участник № / Member № 9588
отправлено / posted
Извините конечно меня за мою глупость, но может есть какие то особенности в настройке каналов, ну вот я создал AI_RWH_1, ничего в нем не менял, перенес его в канал где находится экран, привязал к аргументу для вывода на экран, но ничего не выводится, может куда то надо подавать значение при работе с МРВ, что бы AI_RWH_1 активировался, или же нужно изменить тип аргумента, или настроить создание базового адреса, компилирую в QT creator
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Nikituny
Junior Member / Новичок
Участник № / Member № 9588
отправлено / posted
Так, я понял в чем был мой косяк, теперь более точный вопрос, я в QT creator создал свой проект и загрузил туда код драйвера из примера, запустил его, у меня скомпилировалась библиотека, ее я загрузил в папку МРВ, но при запуске МРВ вылетает QT -= gui
TEMPLATE = lib DEFINES += RWH_64_LIBRARY
CONFIG += c++17
# You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \ rwh_64.cpp
HEADERS += \ rwh_64.h
# Default rules for deployment. unix { target.path = /usr/lib } !isEmpty(target.path): INSTALLS += target Вот код .pro у меня подозрения что в правилах для развертывания ошибка, что исправить нужно, подскажите пожалуйста, последний вопрос( проект создал в виндовс, чтобы легче ориентироваться, и загружаю тут же)
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Nikituny
Junior Member / Новичок
Участник № / Member № 9588
отправлено / posted
Не правильно задал вопрос, если разбираетесь в Qt подскажите как правильно создать библиотеку, пожет пути какие то указать надо в .pro или в принципе надо как то по особенному настроить Creator, может есть руководство, или что-то еще на эту тему
Сообщения / Posts 16 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
- (повторно)не желательно использовать внешние библиотеки - Qt creator это оболочка вокруг gcc - конфигурирование оболочек, каких много не относиться к вопросам о TM
Сообщения / Posts 879 | Из / From: Россия
| IP / IP: IP адрес / IP address |