123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351 |
- /*
- This software is subject to the license described in the License.txt file
- included with this software distribution. You may not use this file except
- in compliance with this license.
- Copyright (c) Dynastream Innovations Inc. 2016
- All rights reserved.
- */
- #if !defined(DSI_CP210XMANUFACTURINGDLL_3_1_H)
- #define DSI_CP210XMANUFACTURINGDLL_3_1_H
- // The following ifdef block is the standard way of creating macros which make exporting
- // from a DLL simpler. All files within this DLL are compiled with the CP210xDLL_EXPORTS
- // symbol defined on the command line. this symbol should not be defined on any project
- // that uses this DLL. This way any other project whose source files include this file see
- // CP210xDLL_API functions as being imported from a DLL, wheras this DLL sees symbols
- // defined with this macro as being exported.
- #ifdef CP210xMANUFACTURINGDLL_EXPORTS
- #define CP210xDLL_API __declspec(dllexport)
- #else
- #define CP210xDLL_API __declspec(dllimport)
- #endif
- // GetProductString() function flags
- #define CP210x_RETURN_SERIAL_NUMBER 0x00
- #define CP210x_RETURN_DESCRIPTION 0x01
- #define CP210x_RETURN_FULL_PATH 0x02
- #ifndef _CP210x_STANDARD_DEF_
- #define _CP210x_STANDARD_DEF_
- // GetDeviceVersion() return codes
- #define CP210x_CP2101_VERSION 0x01
- #define CP210x_CP2102_VERSION 0x02
- #define CP210x_CP2103_VERSION 0x03
- // Return codes
- #define CP210x_SUCCESS 0x00
- #define CP210x_DEVICE_NOT_FOUND 0xFF
- #define CP210x_INVALID_HANDLE 0x01
- #define CP210x_INVALID_PARAMETER 0x02
- #define CP210x_DEVICE_IO_FAILED 0x03
- #define CP210x_FUNCTION_NOT_SUPPORTED 0x04
- #define CP210x_GLOBAL_DATA_ERROR 0x05
- #define CP210x_FILE_ERROR 0x06
- #define CP210x_COMMAND_FAILED 0x08
- #define CP210x_INVALID_ACCESS_TYPE 0x09
- // Type definitions
- typedef int CP210x_STATUS;
- #endif /*_CP210x_STANDARD_DEF_*/
- // Buffer size limits
- #define CP210x_MAX_DEVICE_STRLEN 256
- #define CP210x_MAX_PRODUCT_STRLEN 126
- #define CP210x_MAX_SERIAL_STRLEN 63
- #define CP210x_MAX_MAXPOWER 250
- // Type definitions
- typedef char CP210x_DEVICE_STRING[CP210x_MAX_DEVICE_STRLEN];
- typedef char CP210x_PRODUCT_STRING[CP210x_MAX_PRODUCT_STRLEN];
- typedef char CP210x_SERIAL_STRING[CP210x_MAX_SERIAL_STRLEN];
- //Baud Rate Aliasing definitions
- #define NUM_BAUD_CONFIGS 32
- typedef struct
- {
- WORD BaudGen;
- WORD Timer0Reload;
- BYTE Prescaler;
- DWORD BaudRate;
- } BAUD_CONFIG;
- #define BAUD_CONFIG_SIZE 10
- typedef BAUD_CONFIG BAUD_CONFIG_DATA[NUM_BAUD_CONFIGS];
- //Port Config definitions
- typedef struct
- {
- WORD Mode; // Push-Pull = 1, Open-Drain = 0
- WORD Reset_Latch; // Logic High = 1, Logic Low = =0
- WORD Suspend_Latch; // Logic High = 1, Logic Low = =0
- unsigned char EnhancedFxn;
- } PORT_CONFIG;
- // Define bit locations for Mode/Latch for Reset and Suspend structures
- #define PORT_RI_ON 0x0001
- #define PORT_DCD_ON 0x0002
- #define PORT_DTR_ON 0x0004
- #define PORT_DSR_ON 0x0008
- #define PORT_TXD_ON 0x0010
- #define PORT_RXD_ON 0x0020
- #define PORT_RTS_ON 0x0040
- #define PORT_CTS_ON 0x0080
- #define PORT_GPIO_0_ON 0x0100
- #define PORT_GPIO_1_ON 0x0200
- #define PORT_GPIO_2_ON 0x0400
- #define PORT_GPIO_3_ON 0x0800
- #define PORT_SUSPEND_ON 0x4000 // Can't configure latch value
- #define PORT_SUSPEND_BAR_ON 0x8000 // Can't configure latch value
- // Define bit locations for EnhancedFxn
- #define EF_GPIO_0_TXLED 0x01 // Under device control
- #define EF_GPIO_1_RXLED 0x02 // Under device control
- #define EF_GPIO_2_RS485 0x04 // Under device control
- #define EF_RESERVED_0 0x08 // Reserved, leave bit 3 cleared
- #define EF_WEAKPULLUP 0x10 // Weak Pull-up on
- #define EF_RESERVED_1 0x20 // Reserved, leave bit 5 cleared
- #define EF_SERIAL_DYNAMIC_SUSPEND 0x40 // For 8 UART/Modem signals
- #define EF_GPIO_DYNAMIC_SUSPEND 0x80 // For 4 GPIO signals
- #ifdef __cplusplus
- extern "C" {
- #endif
- CP210xDLL_API
- CP210x_STATUS WINAPI CP210x_GetNumDevices(
- LPDWORD lpdwNumDevices
- );
- CP210xDLL_API
- CP210x_STATUS WINAPI CP210x_GetProductString(
- DWORD dwDeviceNum,
- LPVOID lpvDeviceString,
- DWORD dwFlags
- );
- CP210xDLL_API
- CP210x_STATUS WINAPI CP210x_Open(
- DWORD dwDevice,
- HANDLE* cyHandle
- );
- CP210xDLL_API
- CP210x_STATUS WINAPI CP210x_Close(
- HANDLE cyHandle
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_GetPartNumber( HANDLE cyHandle,
- LPBYTE lpbPartNum
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_SetVid(
- HANDLE cyHandle,
- WORD wVid
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_SetPid(
- HANDLE cyHandle,
- WORD wPid
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_SetProductString(
- HANDLE cyHandle,
- LPVOID lpvProduct,
- BYTE bLength,
- BOOL bConvertToUnicode
- #if defined(__cplusplus)
- = TRUE
- #endif
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_SetSerialNumber(
- HANDLE cyHandle,
- LPVOID lpvSerialNumber,
- BYTE bLength,
- BOOL bConvertToUnicode
- #if defined(__cplusplus)
- = TRUE
- #endif
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_SetSelfPower(
- HANDLE cyHandle,
- BOOL bSelfPower
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_SetMaxPower(
- HANDLE cyHandle,
- BYTE bMaxPower
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_SetDeviceVersion(
- HANDLE cyHandle,
- WORD wVersion
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_SetBaudRateConfig(
- HANDLE cyHandle,
- BAUD_CONFIG* baudConfigData
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_SetLockValue(
- HANDLE cyHandle
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_GetDeviceProductString(
- HANDLE cyHandle,
- LPVOID lpProduct,
- LPBYTE lpbLength,
- BOOL bConvertToASCII
- #if defined(__cplusplus)
- = TRUE
- #endif
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_GetDeviceSerialNumber(
- HANDLE cyHandle,
- LPVOID lpSerialNumber,
- LPBYTE lpbLength,
- BOOL bConvertToASCII
- #if defined(__cplusplus)
- = TRUE
- #endif
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_GetDeviceVid(
- HANDLE cyHandle,
- LPWORD lpwVid
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_GetDevicePid(
- HANDLE cyHandle,
- LPWORD lpwPid
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_GetSelfPower(
- HANDLE cyHandle,
- LPBOOL lpbSelfPower
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_GetMaxPower(
- HANDLE cyHandle,
- LPBYTE lpbPower
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_GetDeviceVersion(
- HANDLE cyHandle,
- LPWORD lpwVersion
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_GetBaudRateConfig(
- HANDLE cyHandle,
- BAUD_CONFIG* baudConfigData
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_GetLockValue(
- HANDLE cyHandle,
- LPBYTE lpbLockValue
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_CreateHexFile(
- HANDLE cyHandle,
- LPCSTR lpvFileName
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_Reset(
- HANDLE cyHandle
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_GetPortConfig(
- HANDLE cyHandle,
- PORT_CONFIG* PortConfig
- );
- CP210xDLL_API
- CP210x_STATUS
- WINAPI
- CP210x_SetPortConfig(
- HANDLE cyHandle,
- PORT_CONFIG* PortConfig
- );
- #ifdef __cplusplus
- }
- #endif
- #endif // !defined(DSI_CP210XMANUFACTURINGDLL_3_1_H)
|