![]() |
#21 |
Участник
|
Цитата:
Цитата:
Цитата:
Цитата:
Сообщение от ShkipeRR
![]() Появилась возможность спрограммировать отдельное приложение-сервис на основе компоненты CipherLabTCP.dll. как будет лучше принять данные с программы сервис и отправить обратное сообщение программе сервис, чтобы в дальнейшем сервис программа отослала это сообщение на дисплей ТСД (двунаправленная связь)?
PS. Хотя уже слабо верится, что на решение реальной задачи кто-то может отвести столько времени... Последний раз редактировалось gl00mie; 12.03.2014 в 10:40. Причина: PS |
|
![]() |
#22 |
Участник
|
Это реальная задача, только вот никак не получается подключится к компоненте, из примера смотришь вроде легко, для аксапты сложновато. в ступор сразу ввел указатель на дескриптор, а точнее создаем объект функцией cipherlabtcpCreate и получаем дескриптор сервера-
компоненты handle. никак не получается этот дескриптор Handle получить в аксапте 3.0. в примере этот дескриптор при обращении к функции cipherlabtcpCreate получается сразу 8 знаков в аксапте он получается 0. в результате автоматическое подключение к ТСД не происходит.
__________________
Axapta 3.0 SP6 Build 1951 |
|
![]() |
#23 |
Участник
|
Ничего не получается с WinAPI будет программироваться отдельная программа для соединения ТСД с Аксаптой, будущая программа-сервис будет выполнять следующее:
1. Автоматически запускаться в виде сервиса, если программа-сервис дала сбой, то автоматически перезапускаться (при запуске происходит подключение к ТСД, если ТСД проявил активность); 2. После того как программа сервис была запущена на сервере, программа – сервис должна ожидать данные от терминалов сбора данных; 3. Как только какой-то терминал сбора данных проявит свою активность в функции-обработчике сначала нужно узнать тип события. Всего может быть 5 типов событий от ТСД: MAKE, CLOSE, QUERY, INSERT, UPDATE; 4. Выяснить серийный номер ТСД, который вызвал событие; 5. Получить данные из ТСД вместе с серийным номером от ТСД; 6. Отправить полученные данные из ТСД в ИС Axapta; 7. Ожидать ответа от ИС Axapta по полученным данным из ТСД; - Если в течении 5 секунд ответа нет, то освободить ресурсы для приема следующих данные от ТСД; - Если в течении 5 секунд ответ в программу сервер пришёл, то: a) принять ответ от Axapta в программу-сервис; b) отправить полученный ответ на дисплей ТСД, который вызвал событие (по серийному номеру ТСД); c) Освободить ресурсы и ждать следующих данных от ТСД; По этому поводу я хотел бы узнать у форума какими способами лучше принимать данные из внешней программы - сервис в Axapta 3.0 и какими способами лучше передавать данные (обратный ответ) из Axapta 3.0 обратно внешней программы - сервис?
__________________
Axapta 3.0 SP6 Build 1951 |
|
![]() |
#24 |
Участник
|
Помогите реализовать в аксапте следущее:
в библиотеке CipherLabTCP.dll имеется функция следующего типа: Наименование: GetProperties(SAFEARRAY **paParams, LONG * Result) Вх. данные: paParams – Двумерный массив из 3 элементов типа (VARIANT). Вых. Данные: 1 элемент — Порт; 2 элемент — (0 — писать в файл, 1 — генерировать внещнее событие); 3 элемент — (1 — выводить отладочную информацию, 0 — не выводить отладочеую информацию); Описание: Функция для получения свойств компоненты. Возвращаемое значение: В случае успеха возвращает в Result двойной указатель на SAFEARRAY, иначе 0 Как можно изобразить это в аксапте 3.0? Как я думаю нужно организовать двумерный массив из 3 элемента, но не знаю как это будет выглядеть на языке X ++, помогите разобраться?
__________________
Axapta 3.0 SP6 Build 1951 |
|
![]() |
#25 |
Banned
|
Цитата:
![]() Феерично. По крайней мере, автор перешел к активным действиям, т.е. программированию. Автор хочет соорудить что-то вроде listener, для чего на мой взгляд дилетанта разумнее всего было бы запрограммировать отдельный компонент ActiveX, встроить в форму AX 3.0 и подключить event-ы к коду X++. Последний раз редактировалось EVGL; 21.03.2014 в 19:21. |
|