Сообщение
Шамигулов » 13 дек 2017, 08:07
Спасибо за ответ и обновление ссылок.
С Lazarus'ом не удалось разобраться, попробовал в Delphi. Код из примера работает, кое-какие эксперименты с обычными аналоговыми каналами также успешно реализовались. Но попытка поработать с IAnalogOutputs по примеру из руководства (стр. 35 из 24_РЕТОМ-мастер.doc) не удалась.
В листинге, переписанном из дельфовского примера:
procedure TfrmRetomTest.StartClick(Sender: TObject);
var
Res:Integer;
Channels : IRTSineChannels;
Channels2: CoAnalogOutputs;
begin
Start.Enabled:=false;
Init.Enabled:=true;
//Retom.Enable;
Retom.SetMaxUI(100,1.5);
Retom.SetTimeOut(5);
Retom.SetActivInputContact(0, rtDoNotCare);
Channels2:=Retom.NewAnalogChannels;
Channels.U[0].dAmpl:=50;
Channels.U[0].dPhase:=0;
Channels.U[1].dAmpl:=0;
Channels.U[1].dPhase:=240;
Channels.U[2].dAmpl:=0;
Channels.U[2].dPhase:=120;
Channels.I[0].dAmpl:=0;
Channels.I[0].dPhase:=0;
Channels.I[1].dAmpl:=0;
Channels.I[1].dPhase:=0;
Channels.I[2].dAmpl:=0;
Channels.I[2].dPhase:=0;
Channels.dFreq:=50;
Channels2.dFrequency:=50;
Channels2.SetSinSignal(0, 30, 0);
Channels2.SetSinSignal(1, 30, 120);
Channels2.SetSinSignal(2, 30, 240);
Channels2.SetSinSignal(3, 1, 0);
Channels2.SetSinSignal(4, 1, 120);
Channels2.SetSinSignal(5, 1, 240);
//Res:= Retom.Out(Channels, RT_U1);
Res:= Retom.Out(Channels2, RT_U1);
end;
строчка
Res:= Retom.Out(Channels2, RT_U1);
вызывает ошибку
"uTest.pas(313): There is no overloaded version of 'Out' that can be called with these arguments".
Если эту строчку закомментировать и раскомментировать предыдущую, то программа компилируется. Но хотелось бы все-таки поэкспериментировать с IAnalogOutputs. У меня на дальнейшей повестке дня стоит продуцирование сигналов несинусоидальной формы.
Примечание: Наличие или отсутствие строчки "Channels2:=Retom.NewAnalogChannels; " никак на компиляции не сказывается.