ana sayfa > Kol-Ce > Samsung Omnia i900 Sensor

Samsung Omnia i900 Sensor

Pazar, 22 Mar 2009 yorum ekle yorumlara git

Benim gibi bir Omnia’nız varsa Gsensördenen gelen verilerin  nasıl okunacağını merak etmiş olabilirsiniz. Samsung bunu driver olarak sorunuyor ve ACS1 yoluyla bir driver file oluşturuyormuş.

al := CreateFile(‘ACS1:’, 0, 0, nil, OPEN_EXISTING, 0, 0); komutuyla bunu bir handle tutturuyoruz ve

DeviceIoControl(al, ACCReadValues, @inbuffer, 0, @outbuffer, sizeof(outbuffer), ref, null) komutuyla da outbuffer değişkenine bunları yazıyoruz. Bu kadar. Aşağıda bununla ilgili bir proje oluşturdum, eğer i900 varsa deneyebilirsiniz.

sensoroku

unit SamsungGSensor;

{$DEFINE KOL_MCK}
{$IFDEF FPC}{$MODE delphi}{$ENDIF}

interface

uses
   windows,kol;
const ACCOnRot = $44E;
const ACCOffRot = $44F;
const ACCReadValues = $3F7;

type
    { TSamsungGSensor }
  TSamsungGSensor = class
  private
    Fx: integer;
    Fy: integer;
    Fyazi: string;
    Fz: integer;
  public
    constructor Create;
    destructor Destroy; override;
    procedure Oku;
    property Yazi: string read Fyazi;
    property X: integer read Fx;
    property Y: integer read Fy;
    property Z: integer read Fz;
  end;
implementation

{ TSamsungGSensor }

constructor TSamsungGSensor.Create;
begin
  inherited Create;
end;

destructor TSamsungGSensor.Destroy;
begin
  inherited Destroy;
end;

procedure TSamsungGSensor.Oku;
var
  al: THandle;
  inbuffer: array[0..0] of integer;
  outbuffer: array[0..2] of integer;
  ref: dword;
begin
  ref := 0;
  try
    FillChar(outbuffer, sizeof(outbuffer), 0);
    al := CreateFile(‘ACS1:’, 0, 0, nil, OPEN_EXISTING, 0, 0);
    if al =INVALID_HANDLE_VALUE then
      begin
        ShowMessage(‘Açılamadı’);
        exit;
      end;

    DeviceIoControl(al, ACCReadValues, @inbuffer, 0, @outbuffer, sizeof(outbuffer), ref, null);

    Fyazi := Format(‘Y=%d, X=%d, Z=%d’, [outbuffer[0], outbuffer[1], outbuffer[2]]);
    Fx := outbuffer[1];
    Fy := outbuffer[0];
    Fz := outbuffer[2];
  finally
    CloseHandle(al);
  end;

end;

end.

İlgili Dosyalar:
SensorOku

Categories: Kol-Ce Tags:
  1. şimdilik yorum yok.
  1. şimdilik geri bağlantı yok