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

Тема в разделе "Delphi - Система", создана пользователем SOKAR, 10 июл 2009.

Статус темы:
Закрыта.
  1. SOKAR

    SOKAR Гость

    вообщем ситуация следующая:
    работал в 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);

    сам код:

    Код (Text):
    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;
    причем под седьмими дельфи всё работает отлично, а в рад студиу на прибор ток первый символ приходит
     
  2. Titan

    Titan Well-Known Member

    Регистрация:
    10 июн 2004
    Сообщения:
    105
    Симпатии:
    0
    SOKAR
    Нужно учитывать , что в новых дельфях там уже много повязано с поддержкой Юникода. С этим могут быть проблемы.
    То есть например, если раньше просто писали PChar, то теперь, чтобы старые функции работали надо в ряде случаев использовать PAnsiChar.
    Поройте в этом направлении, возможно в этом дело.
     
  3. SOKAR

    SOKAR Гость

    спсб , помогло

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

    Код (Text):
     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
     
Загрузка...
Похожие Темы - Usb gpib Rad
  1. c0de3r
    Ответов:
    5
    Просмотров:
    115
  2. ghost

    usbdeath

    ghost, 5 окт 2016, в разделе: Kali Linux
    Ответов:
    0
    Просмотров:
    55
  3. inga1
    Ответов:
    4
    Просмотров:
    877
  4. linksmutis
    Ответов:
    1
    Просмотров:
    940
  5. slavon-x86
    Ответов:
    0
    Просмотров:
    1.039
Статус темы:
Закрыта.

Поделиться этой страницей