arido
Forum Haunter / Завсегдатай форума
Участник № / Member № 2961
отправлено / posted
Здравствуйте. Задача проста. Считать значения с COM-порта. Драйвер упростила по максимуму - но не работает. (Не хватает опыта написания драйверов). Подскажите, что не так? ПОЖАЛУЙСТА. Время поджимает.
code:
int EXPORT Check_xxx(IA &ia,unsigned int &count_rec,unsigned int &max_rec,unsigned int &max_send,char *rbuf) { return(0);} int EXPORT Get_xxx(IA &ia,unsigned int &count_rec,int &q_rec,RSDATA *p,char *rbuf,int &type_cnv) { int i; for (i=0;i<count_rec;i++) p[i].V.v = rbuf[i]; type_cnv = 0; return(200);} int EXPORT Prepare_xxx(int type,char *str,int &type_cnv,int &q_out) { strcpy(str,"Test scaner"); type_cnv = 0; return(0);} void EXPORT Set_xxx(IA &ia,unsigned int &max_send,unsigned int &max_rec,int &q_rec,RSDATA *p,char *sbuf) { sbuf[0] = 0x02; return;} int EXPORT zCompare_xxx(IA &ia0,IA &ia1,int &count) { return(ia1.i[1]+1);} int EXPORT zReadAny_xxx(IA &ia, unsigned int &more_rec, unsigned int &all_rec, char *rbuf) { return(0);}
отправлено / posted
Переменные &max_send и &max_rec необходимо задать. Иначе у Вас запрашивается и записывается 0 байт.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
arido
Forum Haunter / Завсегдатай форума
Участник № / Member № 2961
отправлено / posted
У нас нет возможности отлаживать Ваш драйвер по шагам. Попробуйте создать контрольные точки и выяснить причину ошибки.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Leonid_Polenov
Junior Member / Новичок
Участник № / Member № 3447
отправлено / posted
Добрый день! Если нужна помощь - подскажем, только опишите, какая задача и протокол. Сами очень долго мучались и разбирались)))
[ 13.08.2009, 16:07: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
Сообщения / Posts 3 | Из / From: Russia
| IP / IP: IP адрес / IP address |
отправлено / posted
Есть такой вопрос по использованию драйвера t11 TCOM5: написал драйвер на одном ПК, проект TraceMode запускается и работает. При переносе этого драйвера на другой ПК, при запуске проекта в лог файл пишеться: ERR_RS: protocol is 27 not found 14001. Драйвер написан в MSVC 2008.
Сообщения / Posts 95 | Из / From: Российская Федерация
| IP / IP: IP адрес / IP address |
Romсheg
unregistered
отправлено / posted
Скорее всего когда компилировали DLL, то включили в нее библиотеки (например, поддержку MFC), которых на другом ПК нет. Посмотрите через утилиту из состава MSVC какие еще DLL вызывает ваш драйвер и просто скопируйте их на другой ПК к драйверу или перекомпилируйте драйвер без их поддержки.
IP / IP: IP адрес / IP address |
отправлено / posted
Это означает, что он не может найти драйвер. Драйвер должен располагаться в той же папке, что и exe-файл, кторый Вы запускаете.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Romсheg
unregistered
отправлено / posted
2Technical Support Если на одном ПК (скорее всего на том, на котором драйвер писали в MSVC) он работает, а на другом нет (уж сильно сомневаюсь, что они его не туда положили на другом ПК), то это именно то, что сказал я, МРВ тут ни при чем. Я сам с подобным сталкивался уже "ндцать" раз. Вот также сидел и думал: почему МРВ его не видит, если вот же он лежит там где надо?! А когда начинаешь проверять какие драйверу еще DLL нужны для работы - становится понятно, почему его МРВ не видит...
IP / IP: IP адрес / IP address |
Sergei
Forum Professor / Завсегдатай форума
Участник № / Member № 161
отправлено / posted
Если не возражаете, продолжу ветку. Пишу драйвер протокола t11. Не могу добиться, чтобы ТМ вызвал процедуру расшифровки ответа. Portmon-ом вижу, что rtc.exe успешно прочитал ответ, вызвал Check_xxx, в которой я возвращаю 0, а дальше все останавливается. Никакого обмена по порту. Куда копать?
Сообщения / Posts 157 | Из / From: russia
| IP / IP: IP адрес / IP address |
Sergei
Forum Professor / Завсегдатай форума
Участник № / Member № 161
отправлено / posted
Функция Get у меня есть и вызывать ее должен не я, а ТМ. Порядковые номера функций совпадают с указанными в справке (по крайней мере так утверждает утилита fileinfo, входящая в состав Total Commander). Все останавливается означает, что больше никаких запросов не формируется (проект из одного канала) и никаких функций из библиотеки не вызывается.
Сообщения / Posts 157 | Из / From: russia
| IP / IP: IP адрес / IP address |
Sergei
Forum Professor / Завсегдатай форума
Участник № / Member № 161
отправлено / posted
Еще заметил, что функция Get_xxx вызывается в момент закрытия профайлера. И еще: в какой лог профайлер должен записать строку переданную в Prepare_xxx? Если в директории проекта ИмяПроекта_0.txt то там ее почему то нет