본문 바로가기
임베디드.일렉트로닉스

FTDI. FTD2XX.DLL. PC프로그램에서FTDI USB칩과 통신코딩 라이브러리.

by 리치굿맨 2016. 1. 31.


 

개요.

 
FTD2XX.DLL : FTDI 사의 자사 USB 칩의 PC드라이버 통신용 DLL형식의 라이브러리.
아래 계층 구조에서 파박 부분. FTD2XX.DLL 활용하여 응용프로그램개발시 Visual C++  최적.



 
 


 

 

함수 활용법 - 연결상태 , 정보

 

 

USB 경유 PC에 연결된 FTDI 칩의 정보 확보함수 3개.

 

1. FT_STATUS  FT_CreateDeviceInfoList (LPDWORD lpdwNumDevs)

 

 - 호출시점 : 아래 2, 3  함수 호출하기 전에 가장 먼저 호출해야한다.

 - 기능 : DTD2XX.DLL 내부에 정의되어있는 구조체배열 "FT_DEVICE_LIST_INFO_NODE" FTDI USB 칩 정보 갱신하고, PC에 연결된 FTDI 칩의 수량을 함수인자로 lpdwNumDevs 로 반환한다.

 - 주의사항 :  이 함수 호출시점의 FTDU USB 칩의 USb 연결정보만을 보여준다. 즉, 호출된 이후 USB 연결 해제된 경우 DLL내부 "리스트컬렉션의 정보가 자동갱신되지 않고, 이 함수가 다시 호출되어야 신규 정보로 갱신된다.

 

 

2. FT_STATUS FT_GetDeviceInfoList (FT_DEVICE_LIST_INFO_NODE *pDest,  LPDWORD lpdwNumDevs)

 - 호출시점 : 상기 1 먼저 호출하고,  이 함수 호출되어야 한다.

- 기능 : 구조체배열 FT_DEVICE_LIST_INFO_NODE 포인터 반환받는다. 

- 코드예.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
FT_STATUS ftStatus; 
FT_DEVICE_LIST_INFO_NODE *devInfo; 
DWORD numDevs; 
 
// create the device information list 
ftStatus = FT_CreateDeviceInfoList(&numDevs);  
 
if (ftStatus == FT_OK) {  printf("Number of devices is %d\n",numDevs); }  
 
if (numDevs > 0) {  
    // allocate storage for list based on numDevs  
    devInfo = (FT_DEVICE_LIST_INFO_NODE*)malloc(sizeof(FT_DEVICE_LIST_INFO_NODE)*numDevs);
 
    // get the device information list  
    ftStatus = FT_GetDeviceInfoList(devInfo,&numDevs);
 
    if (ftStatus == FT_OK) {
        for (int i = 0; i < numDevs; i++) {
                  printf("Dev %d:\n",i);
                  printf("  Flags=0x%x\n",devInfo[i].Flags);
                  printf("  Type=0x%x\n",devInfo[i].Type);
                  printf("  ID=0x%x\n",devInfo[i].ID);
                  printf("  LocId=0x%x\n",devInfo[i].LocId);
                  printf("  SerialNumber=%s\n",devInfo[i].SerialNumber);
                  printf("  Description=%s\n",devInfo[i].Description); 
                  printf("  ftHandle=0x%x\n",devInfo[i].ftHandle);
        }
     }
}  
 

구조체 FT_DEVICE_LIST_INFO_NODE 정의.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
 
typedef struct _ft_device_list_info_node {  
 
 DWORD Flags;  
 DWORD Type;  
 DWORD ID;  
 DWORD LocId;   
 char SerialNumber[16];   
 char Description[64];   
 FT_HANDLE ftHandle;  
 
} FT_DEVICE_LIST_INFO_NODE;  
 

 

 

 

 

 

 

3. FT_STATUS FT_GetDeviceInfoDetail ( DWORD dwIndex,

                                                     LPDWORD lpdwFlags,

                                                     LPDWORD lpdwType,

                                                     LPDWORD lpdwID,

                                                     LPDWORD lpdwLocId,

                                                     PCHAR pcSerialNumber,

                                                     PCHAR pcDescription,

                                                     FT_HANDLE *ftHandle )

 

 - 호출시점 : 상기 1 먼저 호출하고, 이 함수 호출되어야 한다.

 - 기능 : 인자 dwIndex에 해당하는 기기의 정보를 인자들로 반환한다. 상기2의 함수로 모두 확보되는 정보이므로 상기 2 사용시 본함수는 쓸데없음.

 

 

 

 

 

 


 


///647.

태그

댓글0


.    
현물 |선물 인버스 |선물 USDT     현물 | 선물 USDT |봇제작툴/카피트레이딩     현물 |선물 인버스 |선물 USDT     .