Мы почти написали драйвер для обмена с Ш-711. Драйвер пишем без самого Ш-711, результат работы видим по нашим логам+профайлера (драйвер подключен правильно). При етом достоверность канала конечно же 1 (девайса нет). И в один прекрасный момент пересчет каналов перестал работать! достоверность всегда 0. в логе нет строки о инициализации портов на других машинах тоже самое. И что самое интересное: при использовании родного драйвера - тоже самое! Переустанавливаем с нуля NT и TM5 - тоже самое!
Чем это может быть вызвано и что посоветуете в етом случае???
Posted by CONSAT (Участник № / Member № 51) on :
И еще обнаружена связь с настройками COM-портов в ТМ. При некоторых настройках (изменение базовых адресов и прерываний на другие, неиспользуемые системой) ошибки 40 не возникает но и ваш родной драйвер t11s0.dll также не работает!!! - Вывод нужно прописывать то, что использует ОС(испытано!).
При работе с мультипортовой картой MOXA нас убеждали что в бланке связь через порты неважно то писать ТМ работает через настройки портов самой ОС. (Так ли это? )
Ну и как быть что драйверу для работы необходимы реальные адреса и прерывания И в то же время мультипортовая карта их не имеет...
И вот оказывается что другие части ТМ их используют
Posted by CONSAT (Участник № / Member № 51) on :
Полностью с нуля ставим NT+IE+TM(никаких дополнительных настроек не производилось)=снова не работает. Мы вам выслали проекты. Один проект работает на обеих а другой только на одной из них! Все апаратные настройки портов идентичны.
Непонятно, почему так происходит??
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1) При работе с СОМ-портами под MS Windows настройка базового адреса порта не имеет значения, главное, чтобы она была отлична от нуля (адрес важен только при работе под MS DOS). У мультипортовой карты, как и у всех устройствах в системе, есть собственный базовый адрес и прерывание, но только эти значения общие для всех портов этой платы.
2) Вы прислали две директории: Ver1 и Ver2. В каждой из них есть файл драйвера t11s13.dll, но только в Ver1 этот файл от 22.10.2001 и занимает 237 кбайт, а в Ver2 он от 05.12.2001 и занимает 110 кбайт (причем последний явно поврежден или некорректен, потому как оба проекта с ним не работают). Пожалуйста, поясните ситуацию - с каким именно файлом драйвера работаете Вы?
Posted by CONSAT (Участник № / Member № 51) on :
В этих двух проектах важны сами dll, А все остальные файлы для показа что подключение его и использование в проекте - рпавильное.
Важно то, что один проект работает на всех машинах - тот что 237к. А вот другой только на одной (и как раз не на стойке ;-()
Вот такая ситуация - откомпилировали на машине X и на ней же работает, а на других нет. Кроме того нас смущает большие объемы dll - (ваша dll из ТМ около 50, а когда мы компилируем ее из примера - далеко не то). Как взять вашы настройки Visual C для компиляции у нас.(Возможно они и влияют) Может они хранятся в самом проекте с dll+cpp+h+... - тогда нужен ваш проект для t11s0.dll
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Причина может быть в том, что при создании DLL в нее не были статически подлинкованы библиотеки. Поэтому данная DLL работает только на той машине, на которой ее компилировали. Для создания DLL в Visual Studio Вам необходимо выбирать тип проекта "Win32 Dynamic-Link Library", а тип DLL - как "A Simple DLL Project". Далее нужно проверить настройки проекта: В бланке "C\C++" параметр Category необходимо установить в "Code Generation", а параметр Use Run-Time library в "Multithreaded DLL" или "Debug Multithreaded".
Posted by CONSAT (Участник № / Member № 51) on :
>Поэтому данная DLL работает только на той машине, на которой ее компилировали. Нет это не так! - так как работает еще на одной машине, где нет Visual C++.
Настройки в Visual C++ мы проверим...
И еще, никак не избавимся от строки в профайлере >протокол №13 не найден Хотя есть t11s13.dll и на всяк пожарный t11s14.dll При загрузке редактор каналов он не ругается на type11.ini (значит он dll видит нормально ) При переименовании dll -> t11s0.dll и соотв. правка в type11.ini результата не дает (не найден протокол №0)
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Уважаемый CONSAT! Редактор базы каналов к драйверам не обращается, поэтому Ваше заключение "(значит он dll видит нормально )" не совсем корректно. Я еще раз взял Ваш проект с Вашим драйвером "большего объема", запустил его, и сообщений, подобных Вашему, не получил. Напротив, получил в протоколе профайлера строку "RS:Loaded protocol TestDrv - Ш711". Видимо, Вы получаете сообщение "не найден драйвер" при загрузке неработающего драйвера.