|
Кто работал с весами? Не могу заставить нормально работать 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
|
я конкретно с этим индикатором не работал. Но, может, сначала задать номер компорта, а потом уже открывать?
Посмотрите вот тут: http://www.delphisources.ru/forum/showthread.php?t=22143 логика немножко не такая как у вас: 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) А может, подумать в сторону... как с торговым оборудованием? Т.е. глобальный объект, открывается при старте программы, закрывается при завершении, а из формы только чтение с весов происходит. Не вариант?
|
| Форум | Правила | Описание | Секции | Поиск |