Библиотека РЕТОМ-Мастер и Qt 5.2.1

Специальный язык разработки проверочных программ РЕТОМ-мастер.
Вопросы, касающиеся работы с программой РЕТОМ-Мастер, также можно обсудить с нашим специалистом Ивановым Сергеем:
ivanov-sa@dynamics.com.ru
т.(8352) 32-53-00 доб.907
Правила форума
Вопросы, касающиеся работы с программой РЕТОМ-Мастер, также можно обсудить с нашим специалистом Ивановым Сергеем:
ivanov-sa@dynamics.com.ru
т.(8352) 32-53-00 доб.907
Ответить
Staini
Сообщения: 2
Зарегистрирован: 08 май 2014, 15:29

Библиотека РЕТОМ-Мастер и Qt 5.2.1

Сообщение Staini » 12 май 2014, 09:33

Здравствуйте.

Пытаюсь подружиться с РЕТОМ-51 через библиотеку Qt. Пробовал 2 способа:
  • 1. Генерация .h и .cpp из RTDI.tlb.
    2. Создание объекта по CLSID с динамическим вызовом его методов.
Пробовал использовать часть функций:
  • 1. Open.
    2. Enable.
    3. Disable.
    4. CLose.
    5. Out.
    6. GetError.
    7. GetErrorText
В обоих случаях работают только функции 1-4,6,7. Вызов 5-ой приводит к падению программы, без объяснения причин. В Out передаю IRTSineChannels (с CoAnalogOutPuts не разобрался :? ) с конвертированную в Variant.

Код: Выделить всё

// Структура описания сигнала
struct IRTSSignal{
    double dAmpl;                    // величина сигнала (задается действующее значение)
    double dPhase;                   // фаза сигнала
};
// Структура описания каналов
struct IRTSineChannels
{
   IRTSSignal U[3];                   //  каналы напряжения
   IRTSSignal I[3];                     //  каналы тока

   double dFreq;    	               // частота сигнала
};
Q_DECLARE_METATYPE(IRTSineChannels)
Может я пропустил какие-то шаги перед вызовом Out :( ?

PS.: Тему про C# читал. Qt 5.2.1 c MinGW.

Аватара пользователя
admin
Администратор
Сообщения: 360
Зарегистрирован: 01 июл 2011, 09:31

Re: Библиотека Ретом-Мастер и Qt 5.2.1

Сообщение admin » 12 май 2014, 10:30

Здравствуйте! Попробуйте следующий код преобразование структуры в VARIANT на С++:

Код: Выделить всё

  HRESULT hr;
  IRecordInfo* ptRecInf;
  
  hr = GetRecordInfoFromGuids(LIBID_RTLink, 1, 0, 0, LIBID_IRT_IRTSineChannels/*__uuidof(IRTSineChannels)*/, &ptRecInf);  
  if (FAILED (hr))
    return hr;
  
  IRTSineChannels ArUI;
  memset(&ArUI, 0, sizeof(ArUI));
	
  //Заполняем структуру ArUI
  
  VARIANT vUI;
  VariantInit(vUI);
  vUI->vt = VT_RECORD;
  
  hr = ptRecInf->RecordCreateCopy(&ArUI, &vUI->pvRecord);
  if (FAILED (hr))
    return hr;
  
  vUI->pRecInfo = ptRecInf;

Staini
Сообщения: 2
Зарегистрирован: 08 май 2014, 15:29

Re: Библиотека Ретом-Мастер и Qt 5.2.1

Сообщение Staini » 12 май 2014, 15:13

Ваш вариант преобразования на Visual C++ мне не подходит.

Есть вариант максимально абстрагированный от MFC, Visual C++, Variant?

У вас в архиве Ретом-мастер есть несколько dll. Я посмотрел при помощи Dependecy Walker RTLink.dll. В ней содержится 3 реализации функции Out, в том числе IRTSineChannels как параметр, то есть без использования Variant. Могу я использовать эту dll в своих проектах или у вас, может быть, есть другая dll с документацией?

Аватара пользователя
admin
Администратор
Сообщения: 360
Зарегистрирован: 01 июл 2011, 09:31

Re: Библиотека Ретом-Мастер и Qt 5.2.1

Сообщение admin » 14 май 2014, 08:45

Мне сообщили, что ответили на Вашу электронную почту. По данной теме Вы можете пообщаться непосредственно со специалистом отдела программных средств НПП "Динамика" Ивановым Сергеем (sai@dynamics.com.ru.)

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость