using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Runtime.InteropServices;
|
using static SmartScanner.IDViewerDefines;
|
using System.Reflection;
|
|
|
namespace SmartScanner
|
{
|
class IDViewerSDK
|
{
|
public class Node
|
{
|
public IDViewerDefines.IDDeviceInfo data;
|
public Node next;
|
}
|
|
public struct LinkedList
|
{
|
public Node head;
|
[MarshalAs(UnmanagedType.SysInt)]
|
public int size;
|
}
|
|
/****************************************
|
IDImage
|
*****************************************/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_Init", CharSet = CharSet.Ansi)]
|
public static extern long IDImage_Init(ref IntPtr imagePtr);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_Destroy", CharSet = CharSet.Ansi)]
|
public static extern void IDImage_Destroy(ref IntPtr imagePtr); //
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_Width", CharSet = CharSet.Ansi)]
|
public static extern long IDImage_Width(IntPtr imageHandle); //图片宽度
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_Height", CharSet = CharSet.Ansi)]
|
public static extern long IDImage_Height(IntPtr imageHandle); //图片高度
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_Step", CharSet = CharSet.Ansi)]
|
public static extern long IDImage_Step(IntPtr imageHandle); //步长
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_BitDepth", CharSet = CharSet.Auto)]
|
public static extern long IDImage_BitDepth(IntPtr imageHandle, ref IntPtr imageType); //位深
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_Channels", CharSet = CharSet.Ansi)]
|
public static extern long IDImage_Channels(IntPtr imageHandle); //通道数
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_ImageData", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDImage_ImageData(IntPtr imageHandle); //浅拷贝
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_SaveImage", CharSet = CharSet.Ansi)]
|
public static extern long IDImage_SaveImage(IntPtr imageHandle, string filePath, int compression); //保存
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_SaveImageW", CharSet = CharSet.Unicode)]
|
public static extern long IDImage_SaveImageW(IntPtr imageHandle, string filePath, int compression); //宽字节保存
|
|
/*
|
* VarPoint
|
*/
|
|
// 构造函数声明
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "VarPoint_Create", CharSet = CharSet.Ansi)]
|
public static extern long VarPoint_Create(ref IntPtr handle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "VarPoint_CreateWithValues", CharSet = CharSet.Ansi)]
|
public static extern long VarPoint_CreateWithValues(ref IntPtr handle, double xPoint, double yPoint);
|
|
// 析构函数声明
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "VarPoint_Destroy", CharSet = CharSet.Ansi)]
|
public static extern void VarPoint_Destroy(ref IntPtr handle);
|
|
/*
|
* VarFlags
|
*/
|
|
|
// 构造函数
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "VarFlags_Create", CharSet = CharSet.Ansi)]
|
public static extern long VarFlags_Create(ref IntPtr handle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "VarFlags_CreateWithFlags", CharSet = CharSet.Ansi)]
|
public static extern long VarFlags_CreateWithFlags(ref IntPtr handle, uint flags);
|
|
// 成员函数
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "VarFlags_Set", CharSet = CharSet.Ansi)]
|
public static extern void VarFlags_Set(ref IntPtr handle, uint flag);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "VarFlags_Unset", CharSet = CharSet.Ansi)]
|
public static extern void VarFlags_Unset(ref IntPtr handle, uint flag);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "VarFlags_Reset", CharSet = CharSet.Ansi)]
|
public static extern void VarFlags_Reset(ref IntPtr handle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "VarFlags_Check", CharSet = CharSet.Ansi)]
|
public static extern bool VarFlags_Check(ref IntPtr handle, uint flag);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "VarFlags_Get", CharSet = CharSet.Ansi)]
|
public static extern uint VarFlags_Get(ref IntPtr handle);
|
|
// 析构函数
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "VarFlags_Destroy", CharSet = CharSet.Ansi)]
|
public static extern void VarFlags_Destroy(ref IntPtr handle);
|
|
/*
|
* IDVariable
|
*/
|
// 创建 IDVariable 实例
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_CreateIDVariable", CharSet = CharSet.Ansi)]
|
|
public static extern IntPtr IDVariab_CreateIDVariable();
|
|
// 释放 IDVariable 实例
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_DestroyIDVariable", CharSet = CharSet.Ansi)]
|
public static extern void IDVariab_DestroyIDVariable(IntPtr IDVariableHandle);
|
// 设置 double 数据
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataDouble", CharSet = CharSet.Ansi)]
|
public static extern void IDVariab_SetDataDouble(IntPtr IDVariableHandle, double data, bool setInit);
|
|
// 设置 string 数据
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataChar", CharSet = CharSet.Ansi)]
|
public static extern void IDVariab_SetDataChar(IntPtr IDVariableHandle, string data, bool setInit);
|
// 设置 string 数据
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataString", CharSet = CharSet.Ansi)]
|
public static extern void IDVariab_SetDataString(IntPtr IDVariableHandle, string data, bool setInit);
|
|
// 设置 bool 数据
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataBool", CharSet = CharSet.Ansi)]
|
public static extern void IDVariab_SetDataBool(IntPtr IDVariableHandle, bool data, bool setInit);
|
// 设置 uint 数据
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataUnsignedInt", CharSet = CharSet.Ansi)]
|
public static extern void IDVariab_SetDataUnsignedInt(IntPtr IDVariableHandle, uint data, bool setInit = false);
|
// 设置 VarPoint 数据
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataVarPoint", CharSet = CharSet.Ansi)]
|
public static extern void IDVariab_SetDataVarPoint(IntPtr IDVariableHandle, ref double data, bool setInit = false);
|
// 设置vector<double> data数据
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataVectorDouble", CharSet = CharSet.Ansi)]
|
public static extern void IDVariab_SetDataVectorDouble(IntPtr IDVariableHandle, IntPtr data, int size, bool setInit = false);
|
// 设置vector<string> data 数据
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataStringArray", CharSet = CharSet.Ansi)]
|
|
public static extern void IDVariab_SetDataStringArray(IntPtr IDVariableHandle, string[] data, int size, bool setInit = false);
|
|
// 将vector<bool>转换
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataBoolVector", CharSet = CharSet.Ansi)]
|
public static extern void IDVariab_SetDataBoolVector(IntPtr IDVariableHandle, ref bool data, int size, bool setInit = false);
|
|
// 将vector<bool>转换为C风格的接口
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataVarFlags", CharSet = CharSet.Ansi)]
|
public static extern void IDVariab_SetDataVarFlags(IntPtr IDVariableHandle, ref IntPtr handle, bool setInit = false);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariable_ToNumber", CharSet = CharSet.Ansi)]
|
public static extern double IDVariable_ToNumber(IntPtr IDVariableHandle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariable_ToBool", CharSet = CharSet.Ansi)]
|
public static extern bool IDVariable_ToBool(IntPtr IDVariableHandle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariable_ToFlags", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDVariable_ToFlags(IntPtr IDVariableHandle);
|
|
/*
|
* class IDCodeParam
|
*/
|
// 构造函数的封装
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_Create", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDCodeParam_Create();
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_CreateCopy", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDCodeParam_CreateCopy(IntPtr IDCodeParamHandle);
|
|
// 使用不同参数构造函数的封装
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_CreateFromQRCodeParam", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDCodeParam_CreateFromQRCodeParam(ref IDQRCodeParam qrCodeParam);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_CreateFromDMCodeParam", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDCodeParam_CreateFromDMCodeParam(ref IDDMCodeParam dmCodeParam);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_CreateFromPDF417CodeParam", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDCodeParam_CreateFromPDF417CodeParam(ref IDPDF417CodeParam pdf417CodeParam);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_CreateFromBarCodeParam", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDCodeParam_CreateFromBarCodeParam(ref IDBarCodeParam barCodeParam);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_CreateFromMicroQRParam", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDCodeParam_CreateFromMicroQRParam(ref IDMicroQRParam microQRParam);
|
|
// 赋值操作符的封装
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_Assign", CharSet = CharSet.Ansi)]
|
public static extern void IDCodeParam_Assign(IntPtr self, IntPtr IDCodeParamHandle);
|
|
// 设置和获取参数的函数封装
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_SetQRCodeParam", CharSet = CharSet.Ansi)]
|
public static extern void IDCodeParam_SetQRCodeParam(IntPtr self, ref IDQRCodeParam param);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_GetQRCodeParam", CharSet = CharSet.Ansi)]
|
public static extern ref IDQRCodeParam IDCodeParam_GetQRCodeParam(IntPtr self);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_SetDMCodeParam", CharSet = CharSet.Ansi)]
|
public static extern void IDCodeParam_SetDMCodeParam(IntPtr self, ref IDDMCodeParam param);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_GetDMCodeParam", CharSet = CharSet.Ansi)]
|
public static extern ref IDDMCodeParam IDCodeParam_GetDMCodeParam(IntPtr self);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_SetStackedCodeParam", CharSet = CharSet.Ansi)]
|
public static extern void IDCodeParam_SetStackedCodeParam(IntPtr self, ref IDQRCodeParam param);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_GetStackedCodeParam", CharSet = CharSet.Ansi)]
|
public static extern ref IDPDF417CodeParam IDCodeParam_GetStackedCodeParam(IntPtr self);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_SetBarCodeParam", CharSet = CharSet.Ansi)]
|
|
public static extern void IDCodeParam_SetBarCodeParam(IntPtr self, ref IDBarCodeParam param);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_GetBarCodeParam", CharSet = CharSet.Ansi)]
|
public static extern ref IDBarCodeParam IDCodeParam_GetBarCodeParam(IntPtr self);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_SetMicroQRParam", CharSet = CharSet.Ansi)]
|
|
public static extern void IDCodeParam_SetMicroQRParam(IntPtr self, ref IDMicroQRParam param);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_GetMicroQRParam", CharSet = CharSet.Ansi)]
|
public static extern ref IDMicroQRParam IDCodeParam_GetMicroQRParam(IntPtr self);
|
|
// 获取类型的封装
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_GetType", CharSet = CharSet.Ansi)]
|
public static extern IDCodeCategory IDCodeParam_GetType(IntPtr self);
|
|
|
/**
|
* @brief setFilterRules 设置过滤规则
|
* @param filterRules 过滤规则
|
* @return
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetFilterRules", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_SetFilterRules(IntPtr deviceHandle, IDFilterRules filterRules);
|
|
/**
|
* @brief setFilterRules 删除过滤规则
|
* @return
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_RemoveFilterRules", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_RemoveFilterRules(IntPtr deviceHandle);
|
|
/**
|
* @brief addEnvironmentVariable 添加一个环境变量
|
* @param varName 环境变量名称
|
* @param varValue 环境变量对应的值
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_AddEnvironmentVariable", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_AddEnvironmentVariable(IntPtr deviceHandle, string varName, IntPtr varValue);
|
|
/**
|
* @brief deleteEnvironmentVariable 删除指定环境变量
|
* @param varName 要删除的环境变量名称
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_DeleteEnvironmentVariable", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_DeleteEnvironmentVariable(IntPtr deviceHandle, string varName);
|
|
|
/**
|
* @brief getEnvironmentVariableNames 获取所有环境变量名
|
* @param varNames 环境变量名列表
|
* @return
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetEnvironmentVariableNamesEX", CharSet = CharSet.Ansi)] //使用后需要调用IDDevice_FreeSolutionList 释放StringList
|
public static extern ref StringList IDDevice_GetEnvironmentVariableNamesEX(IntPtr deviceHandle);
|
|
/**
|
* @brief getEnvironmentVariable 根据变量名获取环境变量的值
|
* @param varName 环境变量名称
|
* @param varValue 环境变量对应的值
|
* @return
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetEnvironmentVariable", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_GetEnvironmentVariable(IntPtr deviceHandle, ref string varName, IntPtr varValue);
|
|
/**
|
* @brief getParamValue 获取方案参数
|
* @param paramName 参数名枚举值
|
* @param generalParam 参数取值
|
* @return
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetParamValue", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_GetParamValue(IntPtr deviceHandle, IDGeneralParamsName paramName, IntPtr generalParam);
|
|
|
/**
|
* @brief getParamValue 设置方案参数
|
* @param paramName 参数名枚举值
|
* @param generalParam 参数取值
|
* @return
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetParamValue", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_SetParamValue(IntPtr deviceHandle, IDGeneralParamsName paramName, IntPtr generalParam);
|
//class IDGeneralParam
|
// 创建空对象
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create();
|
|
// 基础类型
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_Bool", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_Bool(bool data);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_Char", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_Char(string data);
|
|
|
// 数值类型
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_UnsignedChar", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_UnsignedChar(char data);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_Float", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_Float(float data);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_UnsignedShort", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_UnsignedShort(ushort data);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_UnsignedInt", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_UnsignedInt(uint data);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_UnsignedLong", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_UnsignedLong(ulong data);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_Long", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_Long(long data);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_Int", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_Int(int data);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_Short", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_Short(short data);
|
|
// 特殊类型
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_VarPoint", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_VarPoint(IntPtr data);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_VarFlags", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_VarFlags(IntPtr data);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_VectorDouble", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_VectorDouble(ref double data, int size);
|
|
/*
|
string[] data = new string[] { "data1", "data2", "data3" };
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_VectorString", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_VectorString(string[] data, int size);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_VectorBool", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_VectorBool(ref bool data, int size);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_UChar", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_UChar(char data);
|
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_UShort", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_UShort(ushort data);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_UInt", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_UInt(uint data);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_ULong", CharSet = CharSet.Ansi)]
|
public static extern IntPtr IDGeneralParam_Create_ULong(ulong data);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_SetName", CharSet = CharSet.Ansi)]
|
|
public static extern void IDGeneralParam_SetName(IntPtr generalParamHandle, string name);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_GetName", CharSet = CharSet.Ansi)]
|
public static extern void IDGeneralParam_GetName(IntPtr generalParamHandle, string name);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_GetType", CharSet = CharSet.Ansi)]
|
|
public static extern IDGeneralParamsType IDGeneralParam_GetType(IntPtr generalParamHandle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_SetComment", CharSet = CharSet.Ansi)]
|
public static extern void IDGeneralParam_SetComment(IntPtr generalParamHandle, string comment);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_GetComment", CharSet = CharSet.Ansi)]
|
|
public static extern void IDGeneralParam_GetComment(IntPtr generalParamHandle, string comment);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_GetID", CharSet = CharSet.Ansi)]
|
|
public static extern int IDGeneralParam_GetID(IntPtr generalParamHandle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_SetID", CharSet = CharSet.Ansi)]
|
|
public static extern void IDGeneralParam_SetID(IntPtr generalParamHandle, int id);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToInt", CharSet = CharSet.Ansi)]
|
|
public static extern int IDGeneralParam_ToInt(IntPtr generalParamHandle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToNumber", CharSet = CharSet.Ansi)] //PLC变量类型是Num
|
|
public static extern double IDGeneralParam_ToNumber(IntPtr generalParamHandle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToBool", CharSet = CharSet.Ansi)]
|
|
public static extern bool IDGeneralParam_ToBool(IntPtr generalParamHandle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToChar", CharSet = CharSet.Ansi)]
|
|
public static extern char IDGeneralParam_ToChar(IntPtr generalParamHandle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToFloat", CharSet = CharSet.Ansi)]
|
|
public static extern float IDGeneralParam_ToFloat(IntPtr generalParamHandle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToCharItr", CharSet = CharSet.Ansi)]
|
|
public static extern IntPtr IDGeneralParam_ToCharItr(IntPtr generalParamHandle); //字符串类型获取后必须使用IDGeneralParam_FreeCharItr 对指针进行释放;
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_FreeCharItr", CharSet = CharSet.Ansi)]
|
|
public static extern void IDGeneralParam_FreeCharItr(IntPtr ptr); //和上面IDGeneralParam_ToCharItr配套使用完后进行释放;
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToUShort", CharSet = CharSet.Ansi)]
|
public static extern ushort IDGeneralParam_ToUShort(IntPtr generalParamHandle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToUInt", CharSet = CharSet.Ansi)]
|
public static extern uint IDGeneralParam_ToUInt(IntPtr generalParamHandle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToULong", CharSet = CharSet.Ansi)]
|
public static extern ulong IDGeneralParam_ToULong(IntPtr generalParamHandle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToShort", CharSet = CharSet.Ansi)]
|
public static extern short IDGeneralParam_ToShort(IntPtr generalParamHandle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariable_ToFlags", CharSet = CharSet.Ansi)]
|
public static extern long IDGeneralParam_ToLong(IntPtr generalParamHandle);
|
|
/****************************************
|
IDDevice
|
*****************************************/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_Open", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_Open(IntPtr deviceHandle); //打开设备
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_IsOpen", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_IsOpen(IntPtr deviceHandle); //打开状态
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_StartRunning", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_StartRunning(IntPtr deviceHandle); //默认 注册回调 运行设备
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_StartDebugging", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_StartDebugging(IntPtr deviceHandle); //启动调试
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_IsDebugging", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_IsDebugging(IntPtr deviceHandle); //调试状态
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_IsRunning", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_IsRunning(IntPtr deviceHandle); //运行状态
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_IsConnected", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_IsConnected(IntPtr deviceHandle); //连接状态
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_Stop", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_Stop(IntPtr deviceHandle); //停止
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_Close", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_Close(IntPtr deviceHandle); //关闭
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_CaptureImage", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_CaptureImage(IntPtr deviceHandle, IntPtr imageHandle); //采集一次
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetLasersightEnable", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_SetLasersightEnable(IntPtr deviceHandle, bool enable); //设置使能瞄准器
|
|
|
/****************************************
|
DeviceInfo
|
*****************************************/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetDeviceInfo", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_GetDeviceInfo(IntPtr deviceHandle, ref IDDeviceInfo DeviceInfoHandel); //获取设备信息(SN/MAC/IP/MODEL)
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetHardWareParams", CharSet = CharSet.Ansi)]
|
public static extern IDViewerDefines.IDDeviceHarewareParams IDDevice_GetHardWareParams(IntPtr deviceHandle);
|
|
//此接口需要VS2019以上的版本,C#7.0新增引入了新的语法ref return和ref locals,允许函数的返回值也可以被声明为引用
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetSolutionList", CharSet = CharSet.Ansi)]
|
public static extern ref StringList IDDevice_GetSolutionList(IntPtr deviceHandle, int timeout = 2000);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetRunningSolution", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_SetRunningSolution(IntPtr deviceHandle, string solutionName, int timeout = 2000);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetRunningSolution", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_GetRunningSolution(IntPtr deviceHandle, byte[] solutionName, int timeout = 2000);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_DeleteSolution", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_DeleteSolution(IntPtr deviceHandle, string solutionName, int timeout = 2000);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_Release", CharSet = CharSet.Ansi)]
|
public static extern void IDDevice_Release(IntPtr deviceHandle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_FreeSolutionList", CharSet = CharSet.Ansi)]
|
public static extern void IDDevice_FreeSolutionList(StringList solutionList);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_getROIInfoLength", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_getROIInfoLength(IntPtr deviceHandle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_getROIInfo", CharSet = CharSet.Ansi)] //获取ROI
|
public static extern IDViewerDefines.IDROIInfo IDDevice_getROIInfo(IntPtr deviceHandle, int roiIndex);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_DeleteROI", CharSet = CharSet.Ansi)] //删除ROI
|
public static extern long IDDevice_DeleteROI(IntPtr deviceHandle, int roiIndex);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_AddROI", CharSet = CharSet.Ansi)] //添加ROI
|
public static extern long IDDevice_AddROI(IntPtr deviceHandle, IDViewerDefines.IDROIInfo roiInfo);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_ModifyROI", CharSet = CharSet.Ansi)] //修改ROI
|
public static extern long IDDevice_ModifyROI(IntPtr deviceHandle, int roiIndex, IDViewerDefines.IDPoint topLeftPoint, IDViewerDefines.IDPoint bottomRightPoint);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetFocusLocation", CharSet = CharSet.Ansi)]
|
public static unsafe extern long IDDevice_GetFocusLocation(IntPtr deviceHandle, int* focusLocation); //获取焦距位置
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_AutoFocus", CharSet = CharSet.Ansi)] //自动对焦
|
public static unsafe extern long IDDevice_AutoFocus(IntPtr deviceHandle, int paramIndex, ref int focusLocation);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetFocusLocation", CharSet = CharSet.Ansi)] //设置焦距位置
|
public static extern long IDDevice_SetFocusLocation(IntPtr deviceHandle, int paramIndex, int focusLocation);
|
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetExposure", CharSet = CharSet.Ansi)] //设置曝光
|
public static extern long IDDevice_SetExposure(IntPtr deviceHandle, int paramIndex, double exposure);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetGain", CharSet = CharSet.Ansi)] //设置增益
|
public static extern long IDDevice_SetGain(IntPtr deviceHandle, int paramIndex, int gain);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetGamma", CharSet = CharSet.Ansi)] //设置伽马
|
public static extern long IDDevice_SetGamma(IntPtr deviceHandle, int paramIndex, double gamma);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetIlluminate", CharSet = CharSet.Ansi)] //设置通道亮度:通道数,设置-1或小于0,表示同时设置所有通道
|
public static extern long IDDevice_SetIlluminate(IntPtr deviceHandle, int paramIndex, int channel, int value);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetIlluminateEnable", CharSet = CharSet.Ansi)] //设置通道使能:通道数,设置-1或小于0,表示同时设置所有通道
|
public static extern long IDDevice_SetIlluminateEnable(IntPtr deviceHandle, int paramIndex, int channel, bool enable);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetIlluminanatbrightnessLength", CharSet = CharSet.Ansi)]//获取illuminanatbrightness 数量
|
public static extern long IDDevice_GetIlluminanatbrightnessLength(IntPtr deviceHandle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetIlluminanatbrightness", CharSet = CharSet.Ansi)] //获取illuminanatbrightness
|
public static extern IDNodeParam IDDevice_GetIlluminanatbrightness(IntPtr deviceHandle, uint index);
|
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetTriggerAllParams", CharSet = CharSet.Ansi)] //获取所有触发参数
|
public static extern long IDDevice_GetTriggerAllParams(IntPtr deviceHandle, ref IDTriggerParams triggerParams, ref IDHardwareTrigger hardwareTrigger,
|
ref IDTcpServerTrigger tcpServerTrigger, ref IDTcpClientTrigger tcpClientTrigger, ref IDSerialPortTrigger serialPortTrigger, ref IDUDPTrigger udpTrigger);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetDataconfigAllParams", CharSet = CharSet.Ansi)] //获取所有数据处理参数
|
public static extern long IDDevice_GetDataconfigAllParams(IntPtr deviceHandle, ref IDFilterInfo filterInfo, ref IDFilterRules filterRules, ref IDDataConfig dataConfig);
|
|
//[DllImport("IDViewerCSDK.dll", EntryPoint = "getTriggerAllParams", CharSet = CharSet.Ansi)]
|
//public static extern long getTriggerAllParams(IntPtr deviceHandle, IDTriggerParams triggerParams, IDHardwareTrigger hardwareTrigger,
|
// IDTcpServerTrigger tcpServerTrigger, IDTcpClientTrigger tcpClientTrigger, IDSerialPortTrigger serialPortTrigger, IDUDPTrigger udpTrigger);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetCommunicationAllParams", CharSet = CharSet.Ansi)] //获取所有通信参数
|
public static extern long IDDevice_GetCommunicationAllParams(IntPtr deviceHandle, ref IDTcpServerCommunication tcpServerInfo, ref IDTcpClientCommunication tcpClientInfo, ref IDSerialPortCommunication serialPortInfo,
|
ref IDKeyboardConfig keyboardInfo, ref IDEipConfig eipConfig, ref IDModbusConfig modbusConfig, ref IDProfinetConfig profinetConfig, ref IDFtpConfig ftpConfig, ref IDWebpageConfig webpageConfig,
|
ref IDFinsConfig finsConfig, ref IDHttpConfig httpConfig, ref IDNetworkingConfig networkingConfig);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetCommunicationAllParams_V2", CharSet = CharSet.Ansi)] //获取所有通信参数
|
public static extern long IDDevice_GetCommunicationAllParams_V2(IntPtr deviceHandle, ref IDTcpServerCommunication tcpServerInfo, ref IDTcpClientCommunication tcpClientInfo, ref IDSerialPortCommunication serialPortInfo,
|
ref IDKeyboardConfig keyboardInfo, ref IDEipConfig eipConfig, ref IDModbusConfig modbusConfig, ref IDProfinetConfig profinetConfig, ref IDFtpConfig ftpConfig, ref IDWebpageConfig webpageConfig,
|
ref IDFinsConfig finsConfig, ref IDHttpConfig httpConfig, ref IDNetworkingConfig networkingConfig, ref IDMcConfig mcConfig, ref IDUdpConfig iDUdpConfig);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_DownLoadCurrentSolution", CharSet = CharSet.Ansi)] //下载当前方案 参数设置为临时设置,需要调用该方法才能保存到设备离线生效
|
public static extern long IDDevice_DownLoadCurrentSolution(IntPtr deviceHandle);
|
|
|
|
/**
|
* @brief uploadSolution 上传方案
|
* @param solutionData 方案数据
|
* @param solutionName 方案名称
|
* @param timeout 超时时间
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_UploadSolution", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_UploadSolution(IntPtr deviceHandle, string solutionData, string solutionName, int timeout = 3000);
|
/**
|
* @brief downLoadSolution 下载方案
|
* @param solutionData 方案数据
|
* @param solutionName 方案名称
|
* @param timeout 超时时间
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_DownLoadSolution", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_DownLoadSolution(IntPtr deviceHandle, ref string solutionData, string solutionName, int timeout = 3000);
|
|
/**
|
* @brief openMC 打开MC
|
* @param mode MC 品牌型号(取值范围:(Mitsubishi_L:0,Mitsubishi_Q:1,Mitsubishi_R:2,Mitsubishi_A:4,Mitsubishi_Fx3U:5,Mitsubishi_Fx5U:6))
|
* @param format MC 格式 (取值范围:BIN:0,ASCII:1)
|
* @param ip MC IP地址
|
* @param port MC 端口
|
* @param startAddress MC 起始地址
|
* @param resultSwap MC 结果交换
|
* @param resultSize MC 结果大小
|
* @param timeout MC MC结果超时
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_OpenMC", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_OpenMC(IntPtr deviceHandle, IDMcBrandModel mode, IDMcDataFormat format, string ip, int port, int startAddress, bool resultSwap, int resultSize, int timeout);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_CloseMC", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_CloseMC(IntPtr deviceHandle);
|
|
/**
|
* @brief getMcInfo 获取当前MC连接配置信息
|
* @param mode MC品牌型号
|
* @param format MC格式(BIN/ASCII)
|
* @param ip MC的IP地址
|
* @param port MC的端口
|
* @param startAddress MC起始地址
|
* @param resultSwap MC结果交换配置
|
* @param resultSize MC结果大小
|
* @param timeout MC结果超时时间
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetMcInfo", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_GetMcInfo(IntPtr deviceHandle, ref IDMcBrandModel mode, ref IDMcDataFormat format, ref string ip, ref int port, ref int startAddress, ref bool resultSwap, ref int resultSize, ref int timeout);
|
|
/*
|
* 2025.2.15 新增IDDevice类接口
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_ClearROI", CharSet = CharSet.Ansi)] //清除所有ROI
|
public static extern long IDDevice_ClearROI(IntPtr deviceHandle);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_AddImageROI", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_AddImageROI(IntPtr deviceHandle, ref IDImageROI roiInfos); //添加图像ROI
|
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_DeleteImageROI", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_DeleteImageROI(IntPtr deviceHandle, int roiIndex); //删除图像ROI
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetROICodeNum", CharSet = CharSet.Ansi)] //设置指定 ROI 的码数目
|
public static extern long IDDevice_SetROICodeNum(IntPtr deviceHandle, int roiIndex, int codeNum);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_ModifyImageROI", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_ModifyImageROI(IntPtr deviceHandle, int roiIndex, IDPoint topLeftPoint, IDPoint bottomRightPoint);//更新图像ROI
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetImageROIsLength", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_GetImageROIsLength(IntPtr deviceHandle);//获取图像ROI列表长度
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetImageROIsInfo", CharSet = CharSet.Ansi)]
|
public static extern IDImageROI IDDevice_GetImageROIsInfo(IntPtr deviceHandle, uint index);//获取图像ROI
|
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_ClearImageROI", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_ClearImageROI(IntPtr deviceHandle);//清除所有图像ROI
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_AddCodeType", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_AddCodeType(IntPtr deviceHandle, IDCodeType type);//添加码制
|
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_DeleteCodeType", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_DeleteCodeType(IntPtr deviceHandle, IDCodeType type);//删除码制
|
|
/**
|
* @brief clearCodeType 清除所有码制
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_ClearCodeType", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_ClearCodeType(IntPtr deviceHandle);
|
|
/**
|
* @brief getImageROIs 获取码制信息列表长度
|
* @param
|
* @return 获取码制信息列表长度
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetCodeTypesLength", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_GetCodeTypesLength(IntPtr deviceHandle);
|
|
/**
|
* @brief getImageROIs 获取码制信息
|
* @param index 第几个IDCodeType_C信息
|
* @return IDCodeType_C
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetCodeTypesInfo", CharSet = CharSet.Ansi)]
|
public static extern IDCodeType IDDevice_GetCodeTypesInfo(IntPtr deviceHandle, uint index);
|
|
|
/**
|
* @brief setCodeCategoryParam 设置条码算法参数
|
* @param codeType 条码类型
|
* @param codeParam 条码参数信息
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetCodeCategoryParam", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_SetCodeCategoryParam(IntPtr deviceHandle, IDCodeCategory codeType, IntPtr codeParam);
|
|
|
|
/**
|
* @brief getSolutionImageParams 获取当前方案图像设置页参数
|
* @param solutionImage 图像页参数 //图像参数
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetSolutionImage", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_GetSolutionImage(IntPtr deviceHandle, ref IDSolutionImage solutionImage);
|
|
/**
|
* @brief getSolutionImageParams 获取图像参数组部分参数
|
* @param solutionImageParams 图像参数组部分参数
|
* @param index 参数组第几个参数
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetSolutionImageParams", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_GetSolutionImageParams(IntPtr deviceHandle, int index, ref IDSolutionImageParams solutionImageParams);
|
|
|
/**
|
* @brief getSolutionImageParams 获取图像光源通道参数
|
* @param solutionImageParams 图像参数组部分参数
|
* @param index 参数组第几个参数
|
* @param illIndex 参数组第几个参数的第几个光源通道参数
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetSolutionImageIlluminant", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_GetSolutionImageIlluminant(IntPtr deviceHandle, int index, int illIndex, ref IDSolutionImageIlluminant solutionImageIlluminant);
|
|
|
/**
|
* @brief appendLastImageParam 基于最后一个参数节点新增图像参数组
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_AppendLastImageParam", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_AppendLastImageParam(IntPtr deviceHandle);
|
|
/**
|
* @brief deleteImageParamAtIndex 删除图像参数组
|
* @param paramIndex 参数组序号
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_DeleteImageParamAtIndex", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_DeleteImageParamAtIndex(IntPtr deviceHandle, int paramIndex);
|
|
|
/**
|
* @brief setAutoExposureEnabled 设置使能自动曝光
|
* @param enabled 是否启用自动曝光,`true` 为启用,`false` 为禁用
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetAutoExposureEnabled", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_SetAutoExposureEnabled(IntPtr deviceHandle, bool enabled);
|
|
/**
|
* @brief getExposure 获取当前曝光
|
* @param exposure 曝光值
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetExposure", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_GetExposure(IntPtr deviceHandle, ref double exposure);
|
|
/**
|
* @brief setAutoGainEnabled 设置使能自动增益
|
* @param enabled 是否启用自动增益,`true` 为启用,`false` 为禁用
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetAutoGainEnabled", CharSet = CharSet.Ansi)]
|
|
public static extern long IDDevice_SetAutoGainEnabled(IntPtr deviceHandle, bool enabled);
|
|
/**
|
* @brief getGainCount 获取增益列表个数
|
* @param count 增益列表个数
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetGainCount", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_GetGainCount(IntPtr deviceHandle, ref int count);
|
|
/**
|
* @brief getGain 获取当前增益
|
* @param gain 增益
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetGain", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_GetGain(IntPtr deviceHandle, ref int gain);
|
|
/**
|
* @brief getGain 获取当前增益
|
* @param paramIndex 参数组
|
* @param gain 增益值
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetGain_1330", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_GetGain_1330(IntPtr deviceHandle, int paramIndex, ref double gain);
|
|
/**
|
* @brief getGain 获取增益列表中指定下标对应的增益值
|
* @param index 增益值在列表中的索引
|
* @param gain 增益值
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetGainValueByIndex_1330", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_GetGainValueByIndex_1330(IntPtr deviceHandle, int paramIndex, ref double gain);
|
|
/**
|
* @brief getGamma 获取当前伽马
|
* @param gamma 伽马值
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetGamma", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_GetGamma(IntPtr deviceHandle, ref double gamma);
|
|
/**
|
* @brief setDIParam 设置DI参数
|
* @param pin 引脚编号
|
* @param params DI参数信息
|
* @return
|
*/
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetDIParam", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_SetDIParam(IntPtr deviceHandle, uint pin, ref IDDIParams iDDIParams);
|
|
|
/**
|
* @brief setDOParam 设置DO参数
|
* @param pin 引脚编号
|
* @param params DO参数信息
|
* @return
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetDOParam", CharSet = CharSet.Ansi)]
|
public static extern long IDDevice_SetDOParam(IntPtr deviceHandle, uint pin, IDDOParams iDDOParams);
|
|
|
|
/*
|
* @brief getIOConfigAllParams 获取所有IO输入参数信息长度
|
* @
|
* @
|
* @return
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "getIOConfigInputParamsLength", CharSet = CharSet.Ansi)]
|
public static extern long getIOConfigInputParamsLength(IntPtr deviceHandle);
|
|
/*
|
* 获取IO输入参数信息
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "getIOConfigInputParamsInfo", CharSet = CharSet.Ansi)]
|
public static extern long getIOConfigInputParamsInfo(IntPtr deviceHandle, uint index, ref IDDIParams IDDIParams);
|
|
/* @brief getIOConfigAllParams 获取所有IO输出参数信息长度
|
* @
|
* @
|
* @return
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "getIOConfigOutputParamsLength", CharSet = CharSet.Ansi)]
|
public static extern long getIOConfigOutputParamsLength(IntPtr deviceHandle);
|
|
/**
|
* @brief addDOParam 添加DO参数
|
* @param params DO参数信息
|
* @return
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "addDOParam", CharSet = CharSet.Ansi)]
|
public static extern long addDOParam(IntPtr deviceHandle, ref IDDOParams iDDOParams);
|
|
/*
|
* 获取IO输出参数信息
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "getIOConfigOutputParamsInfo", CharSet = CharSet.Ansi)]
|
public static extern long getIOConfigOutputParamsInfo(IntPtr deviceHandle, uint index, ref IDDOParams IDDOParams);
|
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_ResultNotify_")]
|
public static extern void IDCallback_ResultNotify_(IntPtr deviceHandle, IntPtr resCallback); // 结果回调函数
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_ResultNotify_Image_")]
|
public static extern void IDCallback_ResultNotify_Image_(IntPtr deviceHandle, IntPtr resCallback); // 图片回调函数
|
//[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDDecodeInfo")]
|
//public extern static IntPtr IDCallback_GetIDDecodeInfo(IntPtr decodeInfoHandel); //IDCallback_GetIDDecodeInfo
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDDecodeInfo_A")]
|
public extern static long IDCallback_GetIDDecodeInfo_A(IntPtr decodeInfoHandel, ref IDDecodeInfo info); //IDCallback_GetIDDecodeInfo
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDDecodeROIInfo", CharSet = CharSet.Ansi)]
|
public static extern IDDecodeROIInfo IDCallback_GetIDDecodeROIInfo(IntPtr decodeInfoHandel, uint index);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDDecodeResult", CharSet = CharSet.Ansi)]
|
public static extern IDDecodeResult IDCallback_GetIDDecodeResult(IntPtr decodeInfoHandel, uint decodeROIInfoIndex, uint index);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDDMCodeResult", CharSet = CharSet.Ansi)]
|
public static extern long IDCallback_GetIDDMCodeResult(IntPtr decodeInfoHandel, uint decodeROIInfoIndex, //DM解码数据
|
uint index, ref IDDMCodeResult IDDMCodeResultData);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_CheckDeCodeTypeResult", CharSet = CharSet.Ansi)]
|
public static extern long IDCallback_CheckDeCodeTypeResult(IntPtr decodeInfoHandel, uint decodeType, uint decodeROIInfoIndex); //详细码类型的结果长度 ,0表示没有解码结果,-1 表示roi不存在
|
|
//[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetID_QRODE_Result", CharSet = CharSet.Ansi)]
|
//public static extern long IDCallback_GetID_QRODE_Result(IntPtr decodeInfoHandel, uint decodeROIInfoIndex, //QR解码数据
|
// uint index, ref IDQRCodeResult iDQRCodeResult);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDDMCodeResult_QualityDM15415", CharSet = CharSet.Ansi)]
|
public static extern long IDCallback_GetIDDMCodeResult_QualityDM15415(IntPtr decodeInfoHandel, uint decodeROIInfoIndex, //15414dm码质量
|
uint index, ref IDQualityDM15415 iDQualityDM15415);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDDMCodeResult_QUALITY_DM_29158", CharSet = CharSet.Ansi)]
|
public static extern long IDCallback_GetIDDMCodeResult_QUALITY_DM_29158(IntPtr decodeInfoHandel, uint decodeROIInfoIndex, //29158dm码质量
|
uint index, ref IDQualityDM29518 iDQualityDM29518);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDPDF417CodeResult", CharSet = CharSet.Ansi)]
|
public static extern long IDCallback_GetIDPDF417CodeResult(IntPtr decodeInfoHandel, uint decodeROIInfoIndex,
|
uint index, ref IDPDF417CodeResult iDPDF417CodeResultData);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetID_QR_CODE_Result", CharSet = CharSet.Ansi)]
|
public static extern long IDCallback_GetID_QR_CODE_Result(IntPtr decodeInfoHandel, uint decodeROIInfoIndex,
|
uint index, ref IDQRCodeResult iDQRCodeResult);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetID_QR_CODE_Result_IDQualityQR15415", CharSet = CharSet.Ansi)]
|
public static extern long IDCallback_GetID_QR_CODE_Result_IDQualityQR15415(IntPtr decodeInfoHandel, uint decodeROIInfoIndex, //15414qr码质量
|
uint index, ref IDQualityQR15415 iDQualityQR15415);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetID_QR_CODE_Result_IDQualityQR29518", CharSet = CharSet.Ansi)]
|
public static extern long IDCallback_GetID_QR_CODE_Result_IDQualityQR29518(IntPtr decodeInfoHandel, uint decodeROIInfoIndex, //29518qr码质量
|
uint index, ref IDQualityQR29518 iDQualityQR29518);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDPDF417CodeResult_IDQualityPDF417_15415", CharSet = CharSet.Ansi)]
|
public static extern long IDCallback_GetIDPDF417CodeResult_IDQualityPDF417_15415(IntPtr decodeInfoHandel, uint decodeROIInfoIndex,
|
uint index, ref IDQualityPDF417_15415 iDQualityPDF417_15415);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDBarCodeResult", CharSet = CharSet.Ansi)]
|
public static extern long IDCallback_GetIDBarCodeResult(IntPtr decodeInfoHandel, uint decodeROIInfoIndex,
|
uint index, ref IDBarCodeResult iDBarCodeResultData);
|
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDBarCodeResult_IDQuality15416", CharSet = CharSet.Ansi)]
|
public static extern long IDCallback_GetIDBarCodeResult_IDQuality15416(IntPtr decodeInfoHandel, uint decodeROIInfoIndex,
|
uint index, ref IDQuality15416 iDQuality15416);
|
|
/*
|
* decodeInfoHandel 句柄
|
* decodeType 解码类型 比如 1dm ,2 qr,3 pdf417,4 barcode
|
* decodeROIInfoIndex roi 第几个roi
|
* index 第几个具体解码类型结果
|
* pointIndex第几个点
|
* Position 点数据
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDResultPosition", CharSet = CharSet.Ansi)]
|
public static extern long IDCallback_GetIDResultPosition(IntPtr decodeInfoHandel, uint decodeType, uint decodeROIInfoIndex,
|
uint index, uint pointIndex, ref IDPoint iDPoint);
|
|
/**
|
* @brief IDVIEWER_Init 使用SDK其他功能前需要先调用该初始化方法
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVIEWER_Init_", CharSet = CharSet.Ansi)]
|
public extern static long IDVIEWER_Init_();
|
|
/**
|
* @brief IDVIEWER_DiscoveryDevices 扫描设备列表
|
* @param deviceList 返回获取的设备列表
|
* @param discoveryTime 扫描周期,默认200(单位毫秒)
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVIEWER_DiscoveryDevices_", CharSet = CharSet.Ansi)]
|
public extern static IntPtr IDVIEWER_DiscoveryDevices_(uint discoveryTime = 1000);
|
|
/**
|
* @brief IDVIEWER_GetDevicesLength_ 设备列表长度
|
* @param deviceList 返回获取的设备列表长度
|
*
|
* @return 长度
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVIEWER_GetDevicesLength_", CharSet = CharSet.Ansi)]
|
public extern static long IDVIEWER_GetDevicesLength_(IntPtr DevicesList);
|
|
/**
|
* @brief IDVIEWER_SelectIDDeviceInfo_ 获取某个序号的设备
|
* @param DevicesList 当前设备列表指针
|
* @param index 设备列表的序号
|
|
* @return 设备信息
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVIEWER_SelectIDDeviceInfo_", CharSet = CharSet.Ansi)]
|
public extern static long IDVIEWER_SelectIDDeviceInfo_(IntPtr DevicesList, ref IDDeviceInfo IDDeviceInfoHandel, uint index);
|
|
/**
|
* @brief IDVIEWER_SetIP 设置IP 设置IP后需要重新扫描
|
* @param deviceInfo 当前设备信息
|
* @param iPv4 新的IP地址
|
* @param mask 新的MASK地址
|
* @param gateway 新的网关地址
|
* @param isStatic 是否设置静态IP(false为临时IP)
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVIEWER_SetIP_", CharSet = CharSet.Ansi)]
|
public static extern long IDVIEWER_SetIP_(ref IDViewerDefines.IDDeviceInfo deviceInfo, string iPv4, string mask, string gateway, bool isStatic);
|
|
/**
|
* @brief IDVIEWER_CreateDevice CreateDevice 创建设备
|
* @param deviceInfo 当前设备信息
|
* @param device 创建的设备指针
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVIEWER_CreateDevice_", CharSet = CharSet.Ansi)]
|
public static extern long IDVIEWER_CreateDevice_(ref IDViewerDefines.IDDeviceInfo deviceInfo, ref IntPtr deviceHandle);
|
|
/**
|
* @brief IDVIEWERreateDevice IDVIEWERreateDeviceBySN 更加SN创建设备
|
* @param cameraSN 当前设备SN
|
* @param device 创建的设备指针
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVIEWER_CreateDeviceBySN_", CharSet = CharSet.Ansi)]
|
public static extern long IDVIEWER_CreateDeviceBySN_(string cameraSN, ref IntPtr deviceHandle);
|
|
/**
|
* @brief IDVIEWERreateDevice IDVIEWERreateDeviceByIP 更加SN创建设备
|
* @param cameraIP 当前设备IP
|
* @param device 创建的设备指针
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVIEWER_CreateDeviceByIP_", CharSet = CharSet.Ansi)]
|
public static extern long IDVIEWER_CreateDeviceByIP_(string cameraIP, ref IntPtr deviceHandle);
|
/**
|
* @brief IDVIEWER_UnInit 使用完SDK后调用释放资源
|
* @return 错误码
|
*/
|
[DllImport("IDViewerCSDK.dll", EntryPoint = "IDVIEWER_UnInit_", CharSet = CharSet.Ansi)]
|
public static extern long IDVIEWER_UnInit_(IntPtr deviceList);
|
|
}
|
}
|