dark
Junior Member / Новичок
Участник № / Member № 1430
отправлено / posted
Здравствуйте. У меня есть драйвер t13(тип:фиксированное подключение).Можно ли в функции fread производить запись и чтение,например, с внешнего порта. Ещё посылать какое-нибудь число в эту функцию. Спасибо.
Сообщения / Posts 14 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
В функции t13_fread можно выполнять любые операции. Только надо учитывать, что этот вызов реализуется в режиме online. Значит, любые операции, которые будут занимать продолжительное время, будут задерживать цикл обработки базы каналов.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706
отправлено / posted
Добрый день. Существует небходимость отправлять в драйвер сразу 3 числа(управление манипулятором по 3 координатам).Но функции в драйвере имеют 1 параметр для переменной,да и каналы перают 1 значение. Можно это как-то сделать? Например описать функцию 3 переменных и 3 канала,чтоб каждый передал в свою переменную. Спасибо.
Сообщения / Posts 32 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Только через отдельные каналы (с указанием типа координаты в настройке удаленного адреса каждого из них).
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706
отправлено / posted
Я не понял,можно на примере? Есть 3 канала, функция выглядит примерно так: MyFunction(int x,int y , int z);
f_write(???здесь что??) { MyFunction(значение_канала_1,значение_канала_2, значение_канала_3); }
Сообщения / Posts 32 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Для каждой координаты (X, Y и Z) нужно будет создать отдельный канал. А один из параметров структуры IA выделить под указание, какой именно параметр по этому каналу передается, чтобы драйвер из всех трех значений этих каналов мог составить координаты для функции. В одном канале передать это нельзя.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706
отправлено / posted
Добрый день!
1)
quote: typedef union { unsigned char c[6]; unsigned short int i[3]; }IA; \ia – шестибайтовое число, составленное из настроек канала I0 (слово), I1(слово), C2 (байт) и C3 (байт);
Интересно то, что эти настройки принимают только числа,символы не сохраняются.Зачем же тогда в объединении есть массив символов? unsigned char c[6];
2) Так как даполнение к подтипу in_null наверное можно I0 , I1, C2 и C3 назначить произвольные для идентификации каналов? Причем одновременно можно использовать только 3 настройки так как у нас есть всего 6 байт(если это максимум возможной длины). Спасибо.
Сообщения / Posts 32 | Из / From: Россия
| IP / IP: IP адрес / IP address |
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706
отправлено / posted
1) unsigned char - обозначает тип данных BYTE (1 байт), он не был никогда "буквенным символом".
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706
отправлено / posted
Добрый день
code:
switch(ia.i[0]) { case 1: { ChangeXYZ((int)v,0,0); break; } case 2: { ChangeXYZ(0,(int)v,0); break; } case 3: { ChangeXYZ(0,0,(int)v); break; }
}
Создал 3 канала .настройку I0 определил для каждого канала разную(1,2,3) срабатывает. перемещение только по оси Х(case 1)даже когда я посылаю значения в другие каналы.Тоже самое если заменить ia.i[0] на ia.i .Функция ChangeXYZ верна на 100%. Как мне определять адреса наналов по настройкам и сравнивать их!! Можно на моем примере. спасибо.
Сообщения / Posts 32 | Из / From: Россия
| IP / IP: IP адрес / IP address |
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706
отправлено / posted
Добрый день. Почему нельзя "различать" каналы по его имени?? Что нибудь вроде этого: if(name=="name1") {work1();} if(name=="name2") {work2();}
Сообщения / Posts 32 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
1) В какой функции производится проверка по switch()? 2) У нескольких каналов может быть одно и тоже имя.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706
отправлено / posted
1)f_write(char* name,IA ia,float v) 2)понял,но имена каналов разные,канал разве не передает имя параметру функции. 3)как "составляется адрес канала" из настроек i0,i1,c0,c1? например i0=1,i1=0,co=0,c1=0 ia=?? или i0=1,i1=1,co=0,c1=0 ia=? а так i1=1,i1=1,co=1,c1=0 ia=?
отправлено / posted
1) Нужен Ваш проект в ТМ, DLL и исходник. На E-mail техподдержки. 2) А если что-либо в проекте менять будете, то каждый раз перекомпилировать драйвер? 3) Обратите внимание, что структура IA - это UNION, поэтому за принципом его формирования рекомендую обратиться к литературе по программированию, там есть определение типу union.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706
отправлено / posted
1)шлю 2)вопросов нет 3)нет уж формирует адрес канала ТМ.Мне только нужно "выудить" его.Я уже перепробовал кучу вариантов.К примеру Я брал и ia.i ,и ia.c суммировал по всем значениям и эту сумму сверял с 1,2,3 ,в результате полылки значений разными каналами-срабатывает только канал с настройкой(i0=1).Непонятно.Может он там маски какие накладывает и т.п. Вы можете ответить мне,как разработчики,на конкретный вопрос(тип-пустой,подтип-fast r/w):i0=1,i1=0,co=0,c1=0 ia=?? или i0=2,i1=0,co=0,c1=0 ia=??
nizinkinD
Forum Member / Участник форума
Участник № / Member № 1706
отправлено / posted
Проблема решилась Дело в том,что я кнопки привязывал в каналам(РПД)в настройках кнопки (Об,Кан,Атр),но реально канал указывается в кнопке "+" внизу. Конечно я виноват из-за своей невнимательности, но честно говоря это и ваш промах.Ненужные настройки путают.Топик закрыт. Спасибо за помощь.
Сообщения / Posts 32 | Из / From: Россия
| IP / IP: IP адрес / IP address |