142 lines
4.8 KiB
C#
142 lines
4.8 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace CP210xRuntime_DLL
|
|
{
|
|
internal class CP210xRuntime
|
|
{
|
|
public const int CP210x_MAX_MAXPOWER = 250;
|
|
|
|
//GetPartNumber()
|
|
public const byte CP210x_CP2108_VERSION = ((Byte)(0xFF & 0x08));
|
|
|
|
// GetProductString() function flags
|
|
public const byte CP210x_RETURN_SERIAL_NUMBER = 0x00;
|
|
public const byte CP210x_RETURN_DESCRIPTION = 0x01;
|
|
public const byte CP210x_RETURN_FULL_PATH = 0x02;
|
|
|
|
// GetDeviceVersion() return codes Deprecated
|
|
//public const byte CP210x_USBXPRESS_EFM8 = 0x80;
|
|
//public const byte CP210x_USBXPRESS_EFM32 = 0x81;
|
|
//public const byte CP210x_CP2101_VERSION = 0x01;
|
|
//public const byte CP210x_CP2102_VERSION = 0x02;
|
|
//public const byte CP210x_CP2103_VERSION = 0x03;
|
|
//public const byte CP210x_CP2104_VERSION = 0x04;
|
|
//public const byte CP210x_CP2105_VERSION = 0x05;
|
|
//public const byte CP210x_CP2108_VERSION = 0x08;
|
|
//public const byte CP210x_CP2109_VERSION = 0x09;
|
|
//public const byte CP210x_CP2102N_QFN28_VERSION = 0x20;
|
|
//public const byte CP210x_CP2102N_QFN24_VERSION = 0x21;
|
|
//public const byte CP210x_CP2102N_QFN20_VERSION = 0x22;
|
|
|
|
// Return codes
|
|
public const byte CP210x_SUCCESS = 0x00;
|
|
public const byte CP210x_DEVICE_NOT_FOUND = 0xFF;
|
|
public const byte CP210x_INVALID_HANDLE = 0x01;
|
|
public const byte CP210x_INVALID_PARAMETER = 0x02;
|
|
public const byte CP210x_DEVICE_IO_FAILED = 0x03;
|
|
public const byte CP210x_FUNCTION_NOT_SUPPORTED = 0x04;
|
|
public const byte CP210x_GLOBAL_DATA_ERROR = 0x05;
|
|
public const byte CP210x_FILE_ERROR = 0x06;
|
|
public const byte CP210x_COMMAND_FAILED = 0x08;
|
|
public const byte CP210x_INVALID_ACCESS_TYPE = 0x09;
|
|
|
|
// Buffer size limits
|
|
//public const int CP2108_MAX_PRODUCT_STRLEN = 126;
|
|
//public const int CP2108_MAX_SERIAL_STRLEN = 63;
|
|
|
|
// Type Definitions
|
|
//readonly char CP210x_PRODUCT_STRING[] = new char[CP2108_MAX_PRODUCT_STRLEN]();
|
|
//char CP210x_SERIAL_STRING[CP2108_MAX_SERIAL_STRLEN];
|
|
|
|
// Mask and Latch value bit definitions
|
|
public const UInt32 CP210x_GPIO_0 = 0x0001; // (1<<0)
|
|
public const UInt32 CP210x_GPIO_1 = 0x0002; // (1<<1)
|
|
public const UInt32 CP210x_GPIO_2 = 0x0004; // (1<<2)
|
|
public const UInt32 CP210x_GPIO_3 = 0x0008;// etc.
|
|
public const UInt32 CP210x_GPIO_4 = 0x0010;
|
|
public const UInt32 CP210x_GPIO_5 = 0x0020;
|
|
public const UInt32 CP210x_GPIO_6 = 0x0040;
|
|
public const UInt32 CP210x_GPIO_7 = 0x0080;
|
|
public const UInt32 CP210x_GPIO_8 = 0x0100;
|
|
public const UInt32 CP210x_GPIO_9 = 0x0200;
|
|
public const UInt32 CP210x_GPIO_10 = 0x0400;
|
|
public const UInt32 CP210x_GPIO_11 = 0x0800;
|
|
public const UInt32 CP210x_GPIO_12 = 0x1000;
|
|
public const UInt32 CP210x_GPIO_13 = 0x2000;
|
|
public const UInt32 CP210x_GPIO_14 = 0x4000;
|
|
public const UInt32 CP210x_GPIO_15 = 0x8000;
|
|
|
|
[DllImport("CP210xRuntime.dll")]
|
|
public static extern int CP210xRT_GetNumDevices(
|
|
ref uint lpdwNumDevices
|
|
);
|
|
|
|
[DllImport("CP210xRuntime.dll")]
|
|
public static extern int CP210xRT_Open(
|
|
uint deviceIndex,
|
|
ref IntPtr pcyHandle
|
|
);
|
|
|
|
[DllImport("CP210xRuntime.dll")]
|
|
public static extern int CP210xRT_Close(
|
|
IntPtr cyHandle
|
|
);
|
|
|
|
[DllImport("CP210xRuntime.dll")]
|
|
public static extern int CP210xRT_ReadLatch(
|
|
IntPtr cyHandle,
|
|
ref ushort lpwLatch
|
|
);
|
|
|
|
[DllImport("CP210xRuntime.dll")]
|
|
public static extern int CP210xRT_WriteLatch(
|
|
IntPtr cyHandle,
|
|
ushort Mask,
|
|
ushort Latch
|
|
);
|
|
|
|
[DllImport("CP210xRuntime.dll")]
|
|
public static extern int CP210xRT_GetPartNumber(
|
|
IntPtr cyHandle,
|
|
ref byte lpbPartNum
|
|
);
|
|
|
|
[DllImport("CP210xRuntime.dll")]
|
|
public static extern int CP210xRT_GetDeviceProductString(
|
|
IntPtr cyHandle,
|
|
[Out] byte[] lpProduct,
|
|
ref byte lpbLength,
|
|
bool bConvertToASCII
|
|
);
|
|
|
|
[DllImport("CP210xRuntime.dll")]
|
|
public static extern int CP210xRT_GetDeviceSerialNumber(
|
|
IntPtr cyHandle,
|
|
[Out] byte[] lpSerialNumberString,
|
|
ref byte lpbLength,
|
|
bool bConvertToASCII
|
|
);
|
|
|
|
[DllImport("CP210xRuntime.dll")]
|
|
public static extern int CP210xRT_GetDeviceInterfaceString(
|
|
IntPtr cyHandle,
|
|
[Out] byte[] lpInterfaceString,
|
|
ref byte lpbLength,
|
|
bool bConvertToASCII
|
|
);
|
|
|
|
[DllImport("CP210xRuntime.dll")]
|
|
public static extern int CP210xRT_GetReceiverMaxTimeout(
|
|
IntPtr cyHandle,
|
|
ref UInt16 maxTimeout
|
|
);
|
|
|
|
[DllImport("CP210xRuntime.dll")]
|
|
public static extern int CP210xRT_SetReceiverMaxTimeout(
|
|
IntPtr cyHandle,
|
|
UInt16 maxTimeout
|
|
);
|
|
}
|
|
}
|