Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » Драйверы / Device Drivers » Драйвер Т11 СРОЧНО

   
Автор / Author Тема / Topic: Драйвер Т11 СРОЧНО
arido
Forum Haunter / Завсегдатай форума
Участник № / Member № 2961


Icon 1 отправлено / posted      Профиль для / Profile for arido           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте.
Задача проста.
Считать значения с COM-порта.
Драйвер упростила по максимуму - но не работает. (Не хватает опыта написания драйверов).
Подскажите, что не так?
ПОЖАЛУЙСТА. [prey / молящийся] Время поджимает. [Неодобрение / Frown] [Неодобрение / Frown]
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);}


Сообщения / Posts 104 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Переменные &max_send и &max_rec необходимо задать. Иначе у Вас запрашивается и записывается 0 байт.
Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
arido
Forum Haunter / Завсегдатай форума
Участник № / Member № 2961


Icon 1 отправлено / posted      Профиль для / Profile for arido           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Попробовала так

void EXPORT Set_xxx(IA &ia,unsigned int &max_send,unsigned int &max_rec,int &q_rec,RSDATA *p,char *sbuf)
{ sbuf[0] = 0x02;
max_send = 2;
max_rec = 2;
return;}

Не сработало.

Сообщения / Posts 104 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
У нас нет возможности отлаживать Ваш драйвер по шагам. Попробуйте создать контрольные точки и выяснить причину ошибки.
Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Leonid_Polenov
Junior Member / Новичок
Участник № / Member № 3447


Icon 1 отправлено / posted      Профиль для / Profile for Leonid_Polenov           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день!
Если нужна помощь - подскажем, только опишите, какая задача и протокол. Сами очень долго мучались и разбирались)))

[ 13.08.2009, 16:07: Сообщение отредактировал / Message edited by AdAstra Technical Support ]

Сообщения / Posts 3 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Сидоров Александр Александрович
Active Forum Member / Активный участник форума
Участник № / Member № 3279


Icon 1 отправлено / posted      Профиль для / Profile for Сидоров Александр Александрович           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Есть такой вопрос по использованию драйвера t11 TCOM5: написал драйвер на одном ПК, проект TraceMode запускается и работает. При переносе этого драйвера на другой ПК, при запуске проекта в лог файл пишеться: ERR_RS: protocol is 27 not found 14001.
Драйвер написан в MSVC 2008.

Сообщения / Posts 95 | Из / From: Российская Федерация  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Romсheg
unregistered



Icon 1 отправлено / posted            Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Скорее всего когда компилировали DLL, то включили в нее библиотеки (например, поддержку MFC), которых на другом ПК нет. Посмотрите через утилиту из состава MSVC какие еще DLL вызывает ваш драйвер и просто скопируйте их на другой ПК к драйверу или перекомпилируйте драйвер без их поддержки.
IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Это означает, что он не может найти драйвер. Драйвер должен располагаться в той же папке, что и exe-файл, кторый Вы запускаете.
Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Romсheg
unregistered



Icon 6 отправлено / posted            Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
2Technical Support
Если на одном ПК (скорее всего на том, на котором драйвер писали в MSVC) он работает, а на другом нет (уж сильно сомневаюсь, что они его не туда положили на другом ПК), то это именно то, что сказал я, МРВ тут ни при чем. [Улыбка / Smile]
Я сам с подобным сталкивался уже "ндцать" раз. Вот также сидел и думал: почему МРВ его не видит, если вот же он лежит там где надо?! [А-а! / Eek!]
А когда начинаешь проверять какие драйверу еще DLL нужны для работы - становится понятно, почему его МРВ не видит... [Спокойствие / Cool]

IP / IP: IP адрес / IP address | Report this post to a Moderator
Sergei
Forum Professor / Завсегдатай форума
Участник № / Member № 161


Icon 1 отправлено / posted      Профиль для / Profile for Sergei           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Если не возражаете, продолжу ветку.
Пишу драйвер протокола t11. Не могу добиться, чтобы ТМ вызвал процедуру расшифровки ответа. Portmon-ом вижу, что rtc.exe успешно прочитал ответ, вызвал Check_xxx, в которой я возвращаю 0, а дальше все останавливается. Никакого обмена по порту. Куда копать?

Сообщения / Posts 157 | Из / From: russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
После функции Check должна идти функция Get, если она у Вас есть, то значит Вы ее как-то неправильно вызываете.

Что означает все останавливается?

Сообщения / Posts 17106 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Sergei
Forum Professor / Завсегдатай форума
Участник № / Member № 161


Icon 1 отправлено / posted      Профиль для / Profile for Sergei           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Функция Get у меня есть и вызывать ее должен не я, а ТМ. Порядковые номера функций совпадают с указанными в справке (по крайней мере так утверждает утилита fileinfo, входящая в состав Total Commander).
Все останавливается означает, что больше никаких запросов не формируется (проект из одного канала) и никаких функций из библиотеки не вызывается.

Сообщения / Posts 157 | Из / From: russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Sergei
Forum Professor / Завсегдатай форума
Участник № / Member № 161


Icon 1 отправлено / posted      Профиль для / Profile for Sergei           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Еще заметил, что функция Get_xxx вызывается в момент закрытия профайлера.
И еще: в какой лог профайлер должен записать строку переданную в Prepare_xxx? Если в директории проекта ИмяПроекта_0.txt то там ее почему то нет [Недоумение / Confused]

О, нашел ошибку в аргументах printf (лог). Поправил - пошел обмен.
Всё, есть данные. [Вращающиеся глаза / Roll Eyes]

Сообщения / Posts 157 | Из / From: russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2