SSPC-Tester/Driver/UDP5080-100/UNI-T SDK/examples/UCI/VC/UCIDemoProj/lib/ucidef.h

571 lines
16 KiB
C
Raw Normal View History

/********************************************************************
created: 2014/12/23
author: M.Yang
purpose: UCI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
modify:
*********************************************************************/
#ifndef ucidef_h__
#define ucidef_h__
#if (defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)) && !defined(_NI_mswin16_)
#define _UCIAPI __stdcall
#define _UCICallBack __stdcall
#endif
#define _in
#define _out
#define _in_out
#ifdef __cplusplus
namespace uci {
#endif // __cplusplus
#ifdef _CVI_
#define u_inline static
#else
#define u_inline inline
#endif // _CVI_
#ifndef MAX_PATH
#define MAX_PATH 260
#endif // !MAX_PATH
//////////////////////////////////////////////////////////////////////////
//{ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>
#ifdef _UNICODE
//@brief : <20><>ʾһ<CABE><D2BB> Unicode <20>ַ<EFBFBD><D6B7><EFBFBD>
#define u_tchar wchar_t
#else
//@brief : <20><>ʾһ<CABE><D2BB> ASCII <20>ַ<EFBFBD><D6B7><EFBFBD>
#define u_tchar char
#endif // _UNICODE
#if defined(_WIN64)
typedef unsigned __int64 u_unit_ptr;
typedef __int64 u_long_ptr;
#else
typedef unsigned int u_unit_ptr;
typedef long u_long_ptr;
#endif
//@brief : Boolean<61><6E>
#define u_bool bool
//@brief : 8λ<38>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define u_byte unsigned char
//@brief : 8λ<38>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define u_char char
//@brief : <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵Ļ<CDB5><C4BB><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
#define u_buf void*
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵ij<CDB5><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define u_object void
//@brief : <20><>ʾ 16 λ<>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define u_short short
//@brief : <20><>ʾ 16 λ<>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define u_ushort unsigned short
//@brief : <20><>ʾ 16 λ<>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define u_int16 u_short
//@brief : <20><>ʾ 16 λ<>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define u_uint16 u_ushort
//@brief : <20><>ʾ 32 λ<>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define u_int32 int
//@brief : <20><>ʾ 32 λ<>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define u_uint32 unsigned int
//@brief : <20><>ʾUCI<43>ӿڷ<D3BF><DAB7>ص<EFBFBD>״ֵ̬(32λ<32>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD>)
#define u_status u_int32
//@brief : <20><>ʾ<EFBFBD><CABE>С<EFBFBD><D0A1>32λ<32>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>
#define u_size u_uint32
//@brief : <20><>ʾ<EFBFBD>ỰID<49><44>32λ<32>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>
#define u_session u_uint32
//@brief : <20><>ʾ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define u_string u_tchar*
//@brief : <20><>ʾֻ<CABE><D6BB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define u_cstring const u_tchar*
//@brief : <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ID<49><44><EFBFBD>ͣ<EFBFBD>32λ<32>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>
#define u_attr u_int32
//@brief : <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ͣ<EFBFBD>32λ<32>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>
#define u_attr_v u_int32
//@brief : <20><>ʾһ<CABE><D2BB>16λ<36>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵ĵ<CDB5><C4B5><EFBFBD>
#define u_word u_ushort
//@brief : <20><>ʾһ<CABE><D2BB>32λ<32>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>˫<EFBFBD><CBAB>
#define u_dword u_uint32
//@brief : <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
#define u_wparam u_unit_ptr
//@brief : <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
#define u_lparam u_long_ptr
//}
//////////////////////////////////////////////////////////////////////////
//{ <20>ӿڷ<D3BF><DAB7><EFBFBD>״ֵ̬<CCAC><D6B5><EFBFBD><EFBFBD>
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
#define UCI_SUCCESS (0)
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼֵ
#define UCI_ERR (-1000)
//@brief : <20>жϵ<D0B6>ǰ<EFBFBD>ӿ<EFBFBD><D3BF>Ƿ<EFBFBD>ִ<EFBFBD><D6B4>ʧ<EFBFBD><CAA7>
//@brief : <20>жϵ<D0B6>ǰ<EFBFBD>ӿ<EFBFBD><D3BF>Ƿ<EFBFBD>ִ<EFBFBD>гɹ<D0B3>
#define UCIERR(r) (r < 0)
#define UCISUCCESS(r) (!UCIERR(r))
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef enum _UCIErr {
NoError = 0,
//@brief : <20><>Դ<EFBFBD><D4B4>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
InitResourceError = UCI_ERR - 20,
//@brief : <20><>Ч<EFBFBD>ĻỰ
Invalid_Session,
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
Timeout,
//@brief : <20><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
Failed,
//@brief : <20><>֧<EFBFBD>ֵIJ<D6B5><C4B2><EFBFBD>
Unsupported,
//@brief : <20>ڴ<EFBFBD><DAB4>ռ<D5BC><E4B2BB>
Insufficient_Memory,
//@brief : ϵͳ<CFB5><CDB3>æ<EFBFBD><C3A6><EFBFBD>޷<EFBFBD><DEB7><EFBFBD>Ӧ
Busy,
//@brief : ͨ<><CDA8><EFBFBD><EFBFBD><ECB3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
COMExpection,
//@brief : ͨ<><CDA8>δ<EFBFBD>򿪣<EFBFBD>
ChannelNotOpened,
//@brief : WinAPI <20><><EFBFBD><EFBFBD>
API_Failed,
//@brief : δ֪<CEB4>Ĵ<EFBFBD><C4B4><EFBFBD>
Unknown = UCI_ERR - 40 - 1,
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
Connect_InvalidAddress = UCI_ERR - 40,
//@brief : <20><><EFBFBD>ӻ<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>
Connect_NotBuild,
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD>ѶϿ<D1B6>
Connect_Break,
//@brief : <20><>֧<EFBFBD>ֵ<EFBFBD>ͨ<EFBFBD>ŷ<EFBFBD>ʽ
Connect_Unsupported_COMType,
//@brief : δ<><CEB4><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>
Device_NoFound = UCI_ERR - 60,
//@brief : <20><>֧<EFBFBD>ֵ<EFBFBD><D6B5>
Device_Unsupported,
//@brief : <20><>Ҫ<EFBFBD><D2AA>ִ<EFBFBD>в<EFBFBD>ѯ<EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
Device_QueryFirst,
//@brief : <20><><EFBFBD>Ͳ<EFBFBD>ƥ<EFBFBD><C6A5>
Device_NotMatch,
//@brief : <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD>豸ʧ<E8B1B8><CAA7>
Query_LANNodesFailed,
//@brief : USB<53><EFBFBD><E8B1B8>ַֻ<D6B7><D6BB>ִ<EFBFBD>в<EFBFBD>ѯ<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>
//@remarks : <20><>UCI<43><EFBFBD><E2B5BC><EFBFBD><EFBFBD>USB<53><EFBFBD><E8B1B8>ַ<EFBFBD><D6B7>ֻ<EFBFBD><D6BB>һ<EFBFBD><D2BB><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>ַ<EFBFBD><D6B7>
AddrValid_AfterQueryDeviceOper,
//@brief : δ<><CEB4><EFBFBD><EFBFBD>U<EFBFBD>̽<EFBFBD><CCBD><EFBFBD>
UDisk_NotFound,
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>
Key_Locked,
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
CMD_Invalid_StringFormat = UCI_ERR - 80,
//@brief : ֻ֧<D6BB>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CMD_OnlySupportSingle,
//@brief : һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ֧<D6BB><D6A7>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CMD_OnlySupportSingleAttr,
//@brief : <20><>֧<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>
CMD_Unsupported,
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
CMD_SendFailed,
//@brief : Э<><D0AD><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
CMD_Invalid_ProtocolFormat,
//@brief : <20><EFBFBD><E8B1B8>д<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>flashʧ<68>ܣ<EFBFBD>
CMD_WriteFileToFlash_Failed,
//@brief : δ<><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>Ļظ<C4BB><D8B8><EFBFBD><EFBFBD><EFBFBD>
CMD_NoFound_Valid_Reply_Data,
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9BFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><D0AD>
CMD_Error_Message,
//@brief : <20><>Ч<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>ʽ
CMD_Invalid_Expression,
//@brief : <20>ڵ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ģʽ<C4A3>²<EFBFBD><C2B2><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2B2A8><EFBFBD>ļ<EFBFBD>
CMD_Cannot_LoadARB_InCurrent_MOD_Mode,
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Args_Invalid = UCI_ERR - 100,
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀռ<C4BF>̫С
Args_MemoryTooSmall,
//@brief : <20><><EFBFBD><EFBFBD><E1B9A9><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>̫<EFBFBD><CCAB>(<28>50<35><30><EFBFBD>ֽ<EFBFBD>)
Args_FileNameTooLong,
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>С<EFBFBD><D0A1>Э<EFBFBD>鲻ƥ<E9B2BB><C6A5>(<28><>ֹ<EFBFBD><D6B9><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>)
Args_DataLenNotMatch,
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Data_Overflow = UCI_ERR - 120,
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
Data_OutRange,
//@brief : <20><><EFBFBD><EFBFBD>δȫ<CEB4><C8AB><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>
Data_NotReadEnoughLenth,
//@brief : <20><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ʧ<EFBFBD><CAA7>
Data_ECC_Failed,
//@brief : <20><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Data_Invalid,
//@brief : <20><><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9>ʧ<EFBFBD><CAA7>
Data_Zip_Error,
//@brief : <20><><EFBFBD>ݽ<EFBFBD>ѹ<EFBFBD><D1B9>ʧ<EFBFBD><CAA7>
Data_UnZip_Error,
//@brief : <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>ʧ<EFBFBD><CAA7>
Data_Transfer_Error,
//@brief : <20><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD>ʧ<EFBFBD><CAA7>
Data_Transfer_Break,
//@brief : <20><><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD>ݿɶ<DDBF>ȡ
Data_No_Data_Incoming,
//@brief :
File_AccessDenied = UCI_ERR - 140,
//@brief : An unspecified error occurred.
File_GenericException,
//@brief : The file could not be located.
File_NotFound,
//@brief : All or part of the path is invalid.
File_BadPath,
//@brief : The permitted number of open files was exceeded.
File_TooManyOpenFiles,
//@brief : There was an attempt to use an invalid file handle
// or The file format is unsupported!
// or The file data is error!
File_InvalidFile,
//@brief : The current working directory cannot be removed
File_RemoveCurrentDir,
//@brief : There are no more directory entries
File_DirectoryFull,
//@brief : There was an error trying to set the file pointer
File_BadSeek,
//@brief : There was a hardware error
File_HardIO,
//@brief : SHARE.EXE was not loaded, or a shared region was locked
File_SharingViolation,
//@brief : There was an attempt to lock a region that was already locked
File_LockViolation,
//@brief : The disk is full
File_DiskFull,
//@brief : The end of file was reached
File_EndOfFile,
//@brief : д<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
File_SaveToDiskFailed,
//@brief : <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ȳ<EFBFBD><C8B3><EFBFBD><EFBFBD><EFBFBD>Χ
File_Length_OutOfRange,
}UErr;
//}
//////////////////////////////////////////////////////////////////////////
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD>ĻỰID
#define INVALID_SESSION ((u_uint32)(-1))
//////////////////////////////////////////////////////////////////////////
//{ <20><><EFBFBD><EFBFBD>
//<2F>л<EFBFBD><D0BB><EFBFBD>Ӣ<EFBFBD>ģ<EFBFBD> "lang:zh-hans" or "lang:en-us"
//ʹ<><CAB9>USB<53><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> "devchange:1"
//}
#define CACHE_LINE 1
#define CACHE_ALIGN __declspec(align(CACHE_LINE))
//@brief : <20><><EFBFBD>ýṹ<C3BD><E1B9B9><EFBFBD>Ķ<EFBFBD><C4B6>ʽ
#define PACK_ALIGN(n) __declspec(align(n))
#ifdef __cplusplus
extern "C"{
#endif // __cplusplus
//one Word is 2 bytes
u_inline u_word UCI_HIWORD(u_dword _dw) { return ((u_word)((_dw >> 16) & 0xffff)); }
u_inline u_word UCI_LOWORD(u_dword _dw) { return ((u_word)(_dw & 0xffff)); }
//#pragma pack(show)// C4810
//ensure byte-packed structures<65><73>1<EFBFBD>ֽڶ<D6BD><DAB6>
#include <PshPack1.h>//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBBBB7><EFBFBD><EFBFBD>û<EFBFBD>и<EFBFBD><D0B8>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻Ϊ<E6BBBB><CEAA>ǰƽ̨<C6BD><CCA8><EFBFBD>ֽڶ<D6BD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD>ݽӿڵIJ<DAB5><C4B2><EFBFBD><EFBFBD><EFBFBD>
//@remarks : <20><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>uci_CreateRParams<6D>ӿڴ<D3BF><DAB4><EFBFBD>
typedef struct _RParams {
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'\0'<27><>β. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
u_cstring CMDString;
//@brief : Ҫ<><D2AA><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӿ<EFBFBD><D3BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ȡ\<5C><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD>Ӧ<EFBFBD>ģ<EFBFBD>
u_uint32 RetCount;
//@brief : <20><><EFBFBD><EFBFBD>ʱ
u_uint32 Timeout;
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//@remarks : <20><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><C3A3>ɿ<EFBFBD><C9BF><EFBFBD>;<3B>ڲ<EFBFBD>ѯ<EFBFBD>豸ʱ<E8B1B8>õ<EFBFBD><C3B5><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪQParams<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>Ϊ׼<CEAA><D7BC>
u_buf ExtraData; //reserve
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵij<DDB5><C4B3><EFBFBD>
u_size ExtraDataLen;
}RParams, *PRParams;
#ifdef __cplusplus
inline RParams* uci_CreateRParams(RParams& _p, u_cstring _cmd,
u_uint32 _timeout, u_buf _ExtraData,
u_size _ExtraDataLen) {
memset(&_p, 0, sizeof(_p));
_p.CMDString = _cmd;
_p.Timeout = _timeout;
_p.ExtraData = _ExtraData;
_p.ExtraDataLen = _ExtraDataLen;
return &_p;
}
#else
u_inline RParams* uci_CreateRParams(RParams* _p, u_cstring _cmd,
u_uint32 _timeout, u_buf _ExtraData,
u_size _ExtraDataLen) {
memset(_p, 0, sizeof(*_p));
_p->CMDString = _cmd;
_p->Timeout = _timeout;
_p->ExtraData = _ExtraData;
_p->ExtraDataLen = _ExtraDataLen;
return _p;
}
#endif
typedef struct _DeviceIOParams {
u_int32 Count;
u_int32* Data;
}DeviceIOParams;
typedef struct _QParams {
//@brief : Ҫ<><D2AA>ѯ<EFBFBD><D1AF>ͨ<EFBFBD>Žڵ<C5BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
//@remarks : <20><>enum NodeType ȡֵ<C8A1><D6B5> ͨ<><CDA8><EFBFBD><EFBFBD>־λ<D6BE><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
//@eg <20><> NodeType::USB | NodeType::LAN
u_int32 Type;
//@brief : <20>˿ڼ<CBBF><DABC>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>
u_int32 PortCount;
//@brief : <20>˿ڼ<CBBF>
u_int32* Ports;
//@brief : PVID<49><44><EFBFBD><EFBFBD>PVID<49>ĸ<EFBFBD><C4B8><EFBFBD>
//@remarks :
u_int32 PVIDCount;
//@brief : PID <20><> VID<49><44>
//@remarks : ʹ<><CAB9>MakePVID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD>GetPID<49><44>GetVID<49><44>ȡ
u_int32* PVID;
//@brief : <20><>ѯ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>nullptrʱ<72><CAB1>ʾ<EFBFBD><CABE>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯָ<D1AF><D6B8><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>
u_cstring Msg;
}QParams, *PQParams;//@brief : <20><>ѯ<EFBFBD>豸ʱ<E8B1B8><CAB1><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
u_inline u_int32 MakePVID(u_ushort _pid, u_ushort _vid) { return ((_pid << 16) | (_vid)); };
u_inline u_ushort GetPID(u_int32 _pvid) { return UCI_HIWORD(_pvid); }
u_inline u_ushort GetVID(u_int32 _pvid) { return UCI_LOWORD(_pvid); }
#ifdef __cplusplus
inline QParams* UCI_CreateQParam(QParams& _qp, u_int32 _type,
u_int32* _ports, u_int32 _port_cnt,
u_int32* _pvid, u_int32 _pvid_cnt, u_cstring _msg) {
memset(&_qp, 0, sizeof(_qp));
_qp.Type = _type;
_qp.Ports = _ports;
_qp.PortCount = _port_cnt;
_qp.PVID = _pvid;
_qp.PVIDCount = _pvid_cnt;
_qp.Msg = _msg;
return &_qp;
}
#else
u_inline QParams* UCI_CreateQParam(QParams* _qp, u_int32 _type,
u_int32* _ports, u_int32 _port_cnt,
u_int32* _pvid, u_int32 _pvid_cnt, u_cstring _msg) {
memset(_qp, 0, sizeof(*_qp));
_qp->Type = _type;
_qp->Ports = _ports;
_qp->PortCount = _port_cnt;
_qp->PVID = _pvid;
_qp->PVIDCount = _pvid_cnt;
_qp->Msg = _msg;
return _qp;
}
#endif
//@brief : д<><D0B4><EFBFBD>ݽӿڲ<D3BF><DAB2><EFBFBD><EFBFBD><EFBFBD>
//@remarks : <20><>ͨ<EFBFBD><CDA8><EFBFBD>ӿ<EFBFBD>uci_CreateWParams<6D><73><EFBFBD><EFBFBD>
typedef struct _WParams {
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'\0'<27><>β. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
u_cstring CMDString;
//@brief : <20><><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӿ<EFBFBD><D3BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
u_uint32 RetCount;
//@brief : <20><><EFBFBD><EFBFBD>ʱ
u_uint32 Timeout;
}WParams, *PWParams;
#ifdef __cplusplus
u_inline WParams* uci_CreateWParams(WParams& _p, u_cstring _cmd, u_uint32 _timeout) {
memset(&_p, 0, sizeof(_p));
_p.CMDString = _cmd;
_p.Timeout = _timeout;
return &_p;
}
#else
u_inline WParams* uci_CreateWParams(WParams* _p, u_cstring _cmd, u_uint32 _timeout) {
memset(_p, 0, sizeof(*_p));
_p->CMDString = _cmd;
_p->Timeout = _timeout;
return _p;
}
#endif
typedef struct _CommandParams {
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'\0'<27><>β. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
u_cstring CMDString;
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
u_uint32 Param1;
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
u_uint32 Param2;
//@brief : <20><>ʱ
u_uint32 Timeout;
}CommandParams, *PCommandParams;
//@brief : д<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>
typedef struct _WFileParams {
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'\0'<27><>β. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
u_cstring CMDString;
//@brief : Ҫд<D2AA><D0B4><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
u_cstring FilePath;
//@brief : д<><D0B4>ʱ(<28><>λ<EFBFBD><CEBB>ms)
u_uint32 Timeout;
}WFileParams, *PWFileParams;
//@brief : <20><><EFBFBD>ļ<EFBFBD><C4BC>ӿڵIJ<DAB5><C4B2><EFBFBD><EFBFBD><EFBFBD>
typedef struct _RFileParams {
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'\0'<27><>β. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
u_cstring CMDString;
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD>ش<EFBFBD><D8B4>̵<EFBFBD><CCB5>ļ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ͺ<EFBFBD>׺<EFBFBD><D7BA>
u_cstring FilePath;
//@brief : <20><><EFBFBD><EFBFBD>ʱ(<28><>λ<EFBFBD><CEBB>ms)
u_uint32 Timeout;
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>·<EFBFBD><C2B7>
u_tchar FilePathFinal[MAX_PATH];
}RFileParams, *PRFileParams;
//@brief : ͨ<>Žڵ<C5BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
//@remarks : <20><>QParams<6D><73><EFBFBD>ǰ<EFBFBD>λ<EFBFBD><EFBFBD><EBA3AC>Node<64><65>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>enumֵ<6D><D6B5>
typedef enum _NodeType{
LAN = 0x0001,
USB = 0x0010,
}NodeType;
//@brief : USB<53><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//@remarks :
typedef struct _USBDescriptor {
//@brief : PID
u_ushort PID;
//@brief : VID
u_ushort VID;
//@brief : <20><>ַ
u_ushort Addr;
}USBDescriptor;
//@brief : IP<49><50>ַ
//@remarks : <20><><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>Ϊ f1(192).f2(168).f3(1).f4(253) - С<><D0A1>ģʽ
typedef union _IPAddr {
struct { u_byte f1, f2, f3, f4; } Field;
u_int32 Addr;
}u_IPAddr;
//@brief : LAN<41><4E>ͨ<EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//@remarks :
typedef struct _LANDescriptor {
//@brief : IP<49><50>ַ<EFBFBD><D6B7><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>
u_tchar IP[16];
//@brief : IP<49><50>ַ
u_IPAddr Addr;
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
//@remarks : TCPIP<49><50><EFBFBD><EFBFBD><EFBFBD>õĶ˿ں<CBBF>
u_ushort Port;
}LANDescriptor;
//@brief : <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5>IJ<EFBFBD><C4B2><EFBFBD>
//@remarks :
typedef struct _Node {
//@brief : ͨ<>Žӿڷ<D3BF>ʽ
NodeType Type;
//@brief : <20><EFBFBD><E8B1B8>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
//@remarks : <20>ڱ<EFBFBD>UCI<43><EFBFBD><E2B5BC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪUCI<43><49>Э<EFBFBD><D0AD>һ<EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD>ƣ<EFBFBD>
// <20><><EFBFBD>ѳ<EFBFBD><D1B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͳһ<CDB3><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>UCI<43><49><EFBFBD>ڲ<EFBFBD><DAB2>Զ<EFBFBD>ƥ<EFBFBD><C6A5>ΪUCIЭ<49><D0AD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>֣<EFBFBD>
u_tchar Name[50];
//@brief : <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
//@remarks : <20>ź<EFBFBD>Դ = SG, ʾ<><CABE><EFBFBD><EFBFBD> = DSO;
u_tchar DevType[10];
//@brief : LAN<41>ڲ<EFBFBD><DAB2><EFBFBD>
LANDescriptor LAN;
//@brief : USB<53>ӿڲ<D3BF><DAB2><EFBFBD>
USBDescriptor USB;
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
u_tchar UCIAddr[256];
//@brief : <20><><EFBFBD>к<EFBFBD>
u_tchar SN[50];
//@brief : <20>豸״̬
u_status Status;
//@brief : <20>豸ʵ<E8B1B8><CAB5><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
u_tchar IDN[20];
}Node, *PNode;
//@brief : <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5>IJ<EFBFBD><C4B2><EFBFBD>
//@remarks :
typedef struct _NodeEx {
//@brief : ͨ<>Žӿڷ<D3BF>ʽ
NodeType Type;
//@brief : <20><EFBFBD><E8B1B8>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
//@remarks : <20>ڱ<EFBFBD>UCI<43><EFBFBD><E2B5BC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪUCI<43><49>Э<EFBFBD><D0AD>һ<EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD>ơ<EFBFBD>
u_tchar Name[50];
//@brief : <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
//@remarks : <20>ź<EFBFBD>Դ = SG, ʾ<><CABE><EFBFBD><EFBFBD> = DSO;
u_tchar DevType[10];
//@brief : LAN<41>ڲ<EFBFBD><DAB2><EFBFBD>
LANDescriptor LAN;
//@brief : USB<53>ӿڲ<D3BF><DAB2><EFBFBD>
USBDescriptor USB;
//@brief : <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
u_tchar UCIAddr[256];
//@brief : <20><><EFBFBD>к<EFBFBD>
u_tchar SN[50];
//@brief : <20>豸״̬
u_status Status;
//@brief : <20>豸ʵ<E8B1B8><CAB5><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
u_tchar IDN[20];
}NodeEx, *PNodeEx;
typedef struct _UCIMSG {
u_session Session;
u_uint32 Message;
u_wparam wParams;
u_lparam lParams;
u_byte Reserved[240];
}UCIMSG;//256Bytes
//////////////////////////////////////////////////////////////////////////
typedef enum _uci_msg {
//@brief : <20><><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE>Ͽ<EFBFBD>
//@remarks : Ŀǰֻ֧<D6BB><D6A7>LAN<41>ڷ<EFBFBD><DAB7>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
// wParams LAN : <20>˿ں<CBBF><><CAAE><EFBFBD><EFBFBD>)<29><>
// Reserved LAN : IP <20><>ַ
UMSG_CONNECT_CLOSED = 1,
//@brief : <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
//@remarks :
// wParams <20><>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>
// lParams ֡<><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -1 <20><> <20><>ʼ<EFBFBD><CABC><EFBFBD>䣻 [0,wParams)<29><><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD> <20><><EFBFBD><EFBFBD>wParams<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//-> UCIMSGProc return -1 <20><> <20><>ʾ<EFBFBD>жϴ<D0B6><CFB4><EFBFBD>.
UMSG_FILE_TRANSFER = 2,
//@brief : USB<53><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
//@remarks :
// wParams : ʹ<>õ<EFBFBD>16λ<36><CEBB><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD>8λΪpid<69><64><EFBFBD><EFBFBD>8λΪvid<69><64>
// lParams : <20>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>ͣ<EFBFBD> <20>Ƴ<EFBFBD> = 0<><30> <20><><EFBFBD><EFBFBD> = 1<><31>
UMSG_DEVICE_NOTIFY = 3,
}EUCIMSG;
typedef int(__stdcall *UCIMSGProc)(UCIMSG* _msg);
#include <poppack.h>
#ifdef __cplusplus
}
#endif//__cplusplus
#ifdef __cplusplus
}
#endif // __cplusplus
#endif // ucidef_h__