Создание RTD клиента, RTD - обёртка над COM для передачи данных из RTD сервера в MS Excel |
Здравствуйте, гость ( Вход | Регистрация )
Создание RTD клиента, RTD - обёртка над COM для передачи данных из RTD сервера в MS Excel |
rominf |
20.8.2011, 10:59
Сообщение
#1
|
Студент Группа: Участник Сообщений: 20 Регистрация: 20.8.2011 Пользователь №: 2820 Спасибо сказали: 1 раз(а) Репутация: 0 |
Здравствуйте!
Есть сторонняя программа с закрытыми исходниками, являющаяся RTD сервером. Требуется получать от неё моей программой данные в реальном времени. Про RTD можно прочитать здесь: MSDN. Microsoft предполагал, что RTD сервер сможет сделать любой, а клиентом будет являться Excel. В связи с этим есть 2 варианта:
Первый вариант представлялся мне более простым и был почти реализован. Я создал файл data.xls с листом list и в ячейку (1, 1) записал "=ДРВ("server.rtd";;"param1";"param2")". Данные пошли. Почти написал программу (спасибо авторам статьи Работа с MS Office с помощью ActiveQt!). Соединил сигнал propertyChanged ячейки со слотом, для того, чтобы определять изменение данных в ячейке, однако в обработчик слота не заходит. Ниже сокращённый код (без проверок и т.п.). Раскрывающийся текст
Вариант с таймером вместо обработки сигнала изменения данных в ячейке не устраивает, т.к. данные изменяются около раза в секунду (с переменной частотой). Да и к тому же значение ячейки может измениться, к примеру, с "100" на "100" и мне надо понять, что это новые данные, а не старые, которые ещё не успели обновиться. Второй вариант, т.е. получение данных напрямую, мне нравится больше, однако я нигде не смог найти примера, как реализуется RTD клиент не то что на Qt, даже на чистом C++. Нашёл на python, но я не знаю его (собирался изучать через пару лет), поэтому переделать на Qt не могу (хотя кода немного). Скажите, пожалуйста, почему может не обрабатываться сигнал. Есть ли у кого-нибудь опыт создания RTD клиента? |
|
|
Текстовая версия | Сейчас: 22.12.2024, 9:06 |