|
Кто работал с весами? Не могу заставить нормально работать Ci2001A.dll |
☑ |
0
Strogg
11.01.15
✎
12:39
|
Добрый день, коллеги.
Какая-то непонятка с этой внешней компонентой.
При вводе нового документа активирую весы стандартным кодом:
//инициализация
Весы = Новый COMОбъект("Ci2001A.Indic");
Весы.NumberOfCom = 4;
//инициализацию проходит на ура. Далее, начало работы:
//открытие
Попытка
Весы.Open();
Весы.Close();
COM4 = Истина;
Весы.NumberOfCom = 4;
Исключение
ПризнакАктивации = Ложь;
КонецПопытки;
И вот здесь вываливается в исключение до следующего сеанса работы с программой. Перезапускаю - все норм до ввода следующего документа. Потом - опять исключение. ЧЯДНТ??
Спасибо!
|
|
1
spectre1978
11.01.15
✎
12:55
|
я конкретно с этим индикатором не работал. Но, может, сначала задать номер компорта, а потом уже открывать?
Посмотрите вот тут:
логика немножко не такая как у вас:
Ci2001ALib::IIndicPtr p("Ci2001A.Indic");
p->NumberOfCom = 1;
p->Open();
// Читаем данные
p->Update();
cout << p->Weight;
cout << p->Stab;
// Ждем пять сек.
Sleep(5000);
// Читаем данные
p->Update();
cout << p->Weight;
cout << p->Stab;
p->Close();
|
|
2
Strogg
11.01.15
✎
13:00
|
(1) ну я ж и слизывал с этого примера на сях.
Разобрался!
Если кому интересно: перед закрытием формы надо принудительно закрывать сеанс работы с библиотекой методом Весы.Close(). Я хз какое у него пространство имен, но он, по ходу, входит в ступор, когда пытается вновь открыть вновь созданный объект с таким же именем.
|
|
3
spectre1978
11.01.15
✎
13:08
|
хм... а это разве не очевидно? Попользовался-закрой. Там же компорт открывается, все дела...
|
|
4
Strogg
11.01.15
✎
13:40
|
(3) конечно очевидно. Просто я закрываю библиотеку после каждого факта взвешивания. Получается, что где-то недозакрыл. Так я в форме нового документа пытался закрыть - ниче мне это не дало.
|
|
5
spectre1978
11.01.15
✎
17:04
|
(4) А может, подумать в сторону... как с торговым оборудованием? Т.е. глобальный объект, открывается при старте программы, закрывается при завершении, а из формы только чтение с весов происходит. Не вариант?
|
|