Gazo(株式会社ガゾウ) MCM-320LED カメラのLED ON/OFF 2021/02/11

使っているカメラはこちら
SDK MvUsbCam ライブラリを Delphi で使うサンプルです。
自アプリから LED のON/OFF が必要なので、その部分だけです。


unit gazoUnit13;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm13 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form13: TForm13;
// GAZO MCM-320LED (USB 3.0) https://www.gazo.co.jp/mcm320
const
  MVUSBCAM_NO_ERROR				      = $0000;		// No error
  MVUSBCAM_INVALID_PARAM			  = $0001;		// Invalid parameter
  MVUSBCAM_NOT_OPEN_DEVICE	   	= $0003;		// Device open error
  MVUSBCAM_ERR_DEVICE_NO			  = $0004;		// Device number error
  MVUSBCAM_ERR_DEVICEIOCTRL		  = $0008;		// Deviceiocontrol error
  MVUSBCAM_ERR_FILE_OPEN			  = $000A;		// File open error
  MVUSBCAM_ERR_FILE_CLOSE			  = $0010;		// File close error
  MVUSBCAM_ERR_FILE_FORMAT		  = $0011;		// File format error
  MVUSBCAM_ERR_FILE_NAME			  = $0012;		// File name error
  MVUSBCAM_ERR_VENDOR_REQUEST		= $0013;		// Vendor request error
  MVUSBCAM_ERR_UNINITIALIZE		  = $0015;		// Uninitialize error
  MVUSBCAM_NO_SUPPORTED		   	  = $0016;		// No supported
  MVUSBCAM_NO_SUPPORTED_CAM		  = $0017;		// No supported camera
  MVUSBCAM_NO_SUPPORTED_TYPE		= $0018;		// No supported type
  MVUSBCAM_NO_SUPPORTED_VERSION	= $0019;		// No supported version

// Main
// MvUsbCam ライブラリの初期化処理を実行
function MvUsbCam_Init: DWORD; external 'MvUsbCam_x64.dll';
// MvUsbCam ライブラリの終了処理を実行
function MvUsbCam_Fini: DWORD; external 'MvUsbCam_x64.dll';

// LED Control
// LED 点灯制御  LED の点灯状態(0:消灯 1:点灯)
function MvUsbCam_SetLed(dwDev: DWORD; dwDat: DWORD): DWORD; external 'MvUsbCam_x64.dll';
// LED の点灯状態を取得 LED の点灯状態(0:消灯 1:点灯)
function MvUsbCam_GetLed(dwDev: DWORD; var dwDat: DWORD): DWORD; external 'MvUsbCam_x64.dll';

implementation

{$R *.dfm}

procedure TForm13.Button1Click(Sender: TObject);
var
  dwDat: DWord;
  ret : DWord;
begin
  // 初期化
  ret := MvUsbCam_Init;
  Memo1.Lines.Add(ret.ToHexString);

  if ret = MVUSBCAM_NO_ERROR then begin
    // LED の点灯状態を取得
    ret := MvUsbCam_GetLed(0, dwDat);
    Memo1.Lines.Add(ret.ToHexString + ':'+dwDat.ToHexString);
    // LED の点灯状態を反転
    ret := MvUsbCam_SetLed(0, (not dwDat) and 1);
    Memo1.Lines.Add(ret.ToHexString);
  end;
  // 終了
  ret := MvUsbCam_Fini;
  Memo1.Lines.Add(ret.ToHexString);

end;

end.