Usb-gpib 2.0 в Rad Studio 2009 (кто сталкивался хелп плз)

  • Автор темы SOKAR
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

SOKAR

Гость
#1
вообщем ситуация следующая:
работал в delphi 6-7, там все было в порядке, щас перехожу на рад студию, тот же код не работает

связываюсь через контроллер USB-GPIB с приборами посредством функций последнего уровня writegEz и readgЕz

Функция writegEz
int writegEz(char* buffer,long buffsize, char* flag,int delay,int address);

Функция readgEz
int readgEz(int format, char* buff, long buffsize, long* number_read_bytes, char* flag, int* end_of_message,int delay,int address);

сам код:

Код:
if (writegEz('*IDN?',100,@flag,0,1)=1) then
begin
if flag=#0 then
begin
readgEz(0,@buff,200,@number_read_by tes,@flag,@end_of_message,0,1);
end
else
begin
showmessage('ошибка таймаута, проверьте ...');
exit;
end;
end
else
begin
showmessage('нет связи с USB-GPIB-2.0');
exit;
end;
причем под седьмими дельфи всё работает отлично, а в рад студиу на прибор ток первый символ приходит
 

Titan

Well-Known Member
10.06.2004
105
0
#2
SOKAR
Нужно учитывать , что в новых дельфях там уже много повязано с поддержкой Юникода. С этим могут быть проблемы.
То есть например, если раньше просто писали PChar, то теперь, чтобы старые функции работали надо в ряде случаев использовать PAnsiChar.
Поройте в этом направлении, возможно в этом дело.
 
S

SOKAR

Гость
#3
спсб , помогло

немного еще переписал, заработало

Код:
 flag:char;
buff: array[1..100] of ansiChar;
number_read_bytes:longint;
end_of_message:integer;
command:pAnsichar;


command:=pANSIchar('*IDN?');
flag:=#1;
while flag<>#0 do
tre:=writegEz(command,100,@flag,0,1);
if (tre=1)then
begin
if flag=#0 then
begin
readgEz(0,@buff,200,@number_read_bytes,@flag,@end_of_message,0,1);
form1.RichEdit1.Lines.Add(copy(buff,1,number_read_bytes));
end
else
begin
showmessage('ошибка таймаута, проверьте генератор');
exit;
end;
end
else
begin
showmessage('нет связи с USB-GPIB-2.0');
exit;
end;
мб кому нить еще пригодится :D
 
Статус
Закрыто для дальнейших ответов.