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.