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.