Добрый день! Недавно приобрел это замечательное устройство. Делаю программу под свои нужды - но вот вопрос. Моя программа получает данные только после того, как запустится "домашняя лаборатория" - а до этого нули по обоим каналам. Очевидно нужно инициировать передачу, АЦП работают в 10 битном режиме. Уважаемые граждане, подскажите как это сделать? Код программы:
[code:1]unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, JvComponentBase, JvHidControllerClass, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
JvHidDeviceController1: TJvHidDeviceController;
Timer1: TTimer;
Label1: TLabel;
Label2: TLabel;
function JvHidDeviceController1Enumerate(HidDev: TJvHidDevice;
const Idx: Integer): Boolean;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
REPORT_LEN = 9;
var
Form1: TForm1;
WorkDevice: TJvHidDevice;
MyReport: array[0..REPORT_LEN] of byte;
FeatureReportLen: integer = 0;
function GetSignal(ch1: boolean): double;
implementation
{$R *.dfm}
function GetSignal(ch1: boolean): double;
var b_res : boolean;
begin
//fillchar(MyReport, 4, 1);
//b_res := WorkDevice.SetFeature(MyReport, FeatureReportLen);
//sleep(30);
fillchar(MyReport, REPORT_LEN, 0);
b_res := WorkDevice.GetFeature(MyReport, FeatureReportLen);
if b_res then
begin
if ch1 then
result := MyReport[4]*7.5315/1024
else
result := MyReport[6]*7.5315/1024
end
else
begin
result := -1;
end;
end;
function TForm1.JvHidDeviceController1Enumerate(HidDev: TJvHidDevice;
const Idx: Integer): Boolean;
begin
if ((Trim(HidDev.ProductName) = MP730)
and (Trim(HidDev.VendorName) = www.masterkit.ru)) then
begin
Form1.Caption := Подключено;
WorkDevice := HidDev;
FeatureReportLen := 9; //WorkDevice.Caps.FeatureReportByteLength;
Label1.Caption:= FloatToStr(GetSignal(true));
Label2.Caption:= FloatToStr(GetSignal(false));
end
else
begin
Form1.Caption := Не подключено;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
JvHidDeviceController1.Enumerate;
end;
end.[/code:1]