DEMO Board API Manual
V2.3
Page 1 of 11
INDEX
DEMO Board API Manual...........................................................................................................................1
1. API Function Description ....................................................................................................................3
1.1 Error code .........................................................................................................................................3
1.2 Export from SynoAPI.dll..................................................................................................................3
1.3 Export from ARTH_DLL.dll ....................................................................................................................9
2 Oprate flow.............................................................................................................................................10
2.1 Enroll a finger and save to Flash ....................................................................................................10
2.2 Search finger from flash ................................................................................................................. 11
Page 2 of 11
1. API Function Description
1.1 Error code
#define PS_OK 0x00 //success
#define PS_COMM_ERR 0x01 //package error
#define PS_NO_FINGER 0x02 //There is no finger on the sensor
#define PS_GET_IMG_ERR 0x03 //fail to get image
#define PS_FP_TOO_DRY 0x04 //the finger too dry
#define PS_FP_TOO_WET 0x05 //the finger too wet
#define PS_FP_DISORDER 0x06 //Too disorderly fingerprint"
#define PS_LITTLE_FEATURE 0x07 //too little feature
#define PS_NOT_MATCH 0x08 //No matching fingerprint
#define PS_NOT_SEARCHED 0x09//No fingerprint searched
#define PS_MERGE_ERR 0x0a //Combine character error
#define PS_ADDRESS_OVER 0x0b//Address number is out of fingerprint range
#define PS_READ_ERR 0x0c//Read templet from fingerprint library error
#define PS_UP_TEMP_ERR 0x0d//Upload character failed
#define PS_RECV_ERR 0x0e//Recv package error
#define PS_UP_IMG_ERR 0x0f//Upload image failed"
#define PS_DEL_TEMP_ERR 0x10//Del Template error
#define PS_CLEAR_TEMP_ERR 0x11 //Clear Template error
#define PS_SLEEP_ERR 0x12 //Can't go into Sleep mode
#define PS_INVALID_PASSWORD 0x13//Password is not correct
#define PS_RESET_ERR 0x14//reset system error
#define PS_INVALID_IMAGE 0x15 //Invalid fingerprint image
#define PS_HANGOVER_UNREMOVE 0X17//Must move finger
1.2 Export from SynoAPI.dll
1. OpenDevice;
BOOL WINAPI PSOpenDevice(int nDeviceType,int nPortNum,int nPortPara,int
nPackageSize=2);
Parameter: nDeviceType: 0:USB Device ;1:Serial Port Device
nPortNum: if nDeviceType equal 1 then nPortNum is a Serail port
number representation.
nPortPara: baudRate setting
Return: if device opened success then the function return true.
2. CloseDevice
Page 3 of 11
BOOL WINAPI PSCloseDevice();
Return: if device closed success then the function return true.
3. Detect finger and Get Image
int WINAPI PSGetImage(int nAddr);
Parameter: nAddr: the address of device , generally it is 0xffffffff, the function below the
address is also same.
Return: function return 0 Indicates success,others see error code
4. Generate Character file
int WINAPI PSGenChar(int nAddr,[in] int iBufferID);
Parameter: iBufferID: Indicates a character file buffer chip internal. The
value is always 0 or 1.
Return: function return 0 Indicates success,others see error code
5. Match two character file on chip
int WINAPI PSMatch(int nAddr,[out] int* iScore);
Parameter: iScore: if the function return success then this variable can
get a Score of one Matching.
Return: function return 0 Indicates success,others see error code
reference.
6. Search a part or all of fingerprint libray
int WINAPI PSSearch(int nAddr,int iBufferID, int iStartPage, int iPageNum, [out]int
*iMbAddress);
Parameter: iBufferID: Indicates a character file buffer chip internal. The
value is always 0 or 1.
iStartPage:Indicates a Start Page of search.
iPageNum: Indicates numbers of Page to search.
iMbAddress: if find a valid character ,the variable retrieve page id
Return: function return 0 Indicates success,others see error code
reference.
7. Combine BufferAs character file with BufferBs character file and generate the templet
int WINAPI PSRegModule(int nAddr);
Return: function return 0 Indicates success,others see error code
reference.
8. Store BufferA or BufferBs character file to flash fingerprint library
int WINAPI PSStoreChar(int nAddr,int iBufferID, int iPageID);
Parameter: iBufferID: Indicates a character file buffer chip internal. The
value is always 0 or 1.
Page 4 of 11
iPageID: this Indicates character file storage page.
Return: function return 0 Indicates success,others see error code
reference.
9. Transfer a templet to BufferA or BufferB from flash fingerprint library
int WINAPI PSLoadChar(int nAddr,int iBufferID,int iPageID);
Parameter: same as PSStoreChar.
Return: function return 0 Indicates success,others see error code
reference.
10. Transfer character file from BufferA or BufferB to PC
int WINAPI PSUpChar(int nAddr,int iBufferID, [out]unsigned char* pTemplet, [out]int*
iTempletLength);
Parameter: iBufferID :same as PSStoreChar.
* pTemplet: Receive character file data from specify buffer.
iTempletLength: serial port communicate used. Indicates
received datas length.
Return: function return 0 Indicates success,others see error code
reference.
11. Download a character form form pc to BufferA or BufferB
int WINAPI PSDownChar(int nAddr,int iBufferID,[in] unsigned char* pTemplet, [in]int
iTempletLength);
Parameter: same as PSUpChar.
Return: function return 0 Indicates success,others see error code
reference.
12. Upload Original Image
int WINAPI PSUpImage(int nAddr,[out]unsigned char* pImageData, [out]int* iImageLength);
Parameter: pImageData: image data buffer.
iImageLength: serial port communicate used. Indicates
received datas length.
Return: function return 0 Indicates success,others see error code
reference.
13. Download original Image
int WINAPI PSDownImage(int nAddr,[in]unsigned char *pImageData, [in]int iLength);
Parameter: same as PSUpImage
Return: same as PSUpImage
Page 5 of 11
14. Genarate a BMP file from image data buffer
int WINAPI PSImgData2BMP(unsigned char* pImgData,const char* pImageFile);
Parameter: pImgData: Bmp file data buffer. It doesnt include header of bmp file.
pImageFile: path of bmp file save.
Return: function return 0 Indicates success,others see error code
reference.
15. Delete specify range of character file from flash fingerprint libaray
int WINAPI PSDelChar(int nAddr,int iStartPageID,int nDelPageNum);
Parameter: iStartPageID: start of range.
nDelPageNum: numbers of character file.
Return: function return 0 Indicates success,others see error code
reference.
16. Clear flash fingerprint libaray
int WINAPI PSEmpty(int nAddr);
Return: function return 0 Indicates success,others see error code
reference.
17. Read Parameter table
int WINAPI PSReadParTable(int nAddr,[out]unsigned char* pParTable);
Parameter: pParTable: Parameter table buffer.
Return: function return 0 Indicates success,others see error code
reference.
18. Set Device Communicate Key
int WINAPI PSSetPwd(int nAddr,unsigned char* pPassword);
19. Verify Device Communicate Key
int WINAPI PSVfyPwd(int nAddr,unsigned char* pPassword);
20. Read Notepad
int WINAPI PSReadInfo(int nAddr,int nPage,[out]unsigned char* UserContent);
Parameter: nPage: specify page of notepad.
UserContent: the content buffer.
Return: function return 0 Indicates success,others see error code
reference.
21. Write Notepad
int WINAPI PSWriteInfo(int nAddr,int nPage,[in]unsigned char* UserContent);
Parameter: nPage: specify page of notepad.
Page 6 of 11
UserContent: the content buffer.
Return: function return 0 Indicates success,others see error code
reference.
22. Set baudrate
int WINAPI PSSetBaud(int nAddr,int nBaudNum);
Parameter: nBaudNum: set baudrate.
Return: function return 0 Indicates success,others see error code
reference.
23. Set security level
int WINAPI PSSetSecurLevel(int nAddr,int nLevel);
Parameter: nBaudNum: set Security Level.
Return: function return 0 Indicates success,others see error code
reference.
24. Set parket size
int WINAPI PSSetPacketSize(int nAddr,int nSize);
Parameter: nBaudNum: set packet size of serial port communication.
Return: function return 0 Indicates success,others see error code
reference.
25. Upload character file to PC
int WINAPI PSUpChar2File(int nAddr,int iBufferID, const char* pFileName);
Parameter: iBufferID: Indicates a character file buffer chip internal. The
value is always 0 or 1.
pFileName: Indicates character file path.
Return: function return 0 Indicates success,others see error code
reference.
26. Download a character file to BufferA or BufferB from PC
int WINAPI PSDownCharFromFile(int nAddr,int iBufferID, const char* pFileName);
Parameter: same as PSUpChar2File
Return: function return 0 Indicates success,others see error code
reference.
27. Get random data generate by chip
int WINAPI PSGetRandomData(int nAddr,unsigned char* pRandom);
Parameter: pRandom: Random data buffer.
Return: function return 0 Indicates success,others see error code
reference.
Page 7 of 11
28. Set Chip address
int WINAPI PSSetChipAddr(int nAddr,unsigned char* pChipAddr);
Parameter: pChipAddr: Chip address buffer.
Return: function return 0 Indicates success,others see error code
reference.
29. Get templet count
int WINAPI PSTemplateNum(int nAddr,[out]int *iMbNum);
Parameter: iMbNum: numbers of templet count.
Return: function return 0 Indicates success,others see error code
reference.
30. Generate binary image
int WINAPI PSGenBinImage(int nAddr, int nImgType);
31. Format error information
char* WINAPI PSErr2Str(int nErrCode);
Parameter: nErrCode: Error code.
Return: function return a detail information of corresponding error code
32. Change Finger data to BMP format data
int WINAPI PSFingerData2BMPData([in]unsigned char *pFingerData,
[out]unsigned char *pBMPData,
[out]int* nBMPDataLen)
Parameter: pFingerData- the finger data get from PSUpImage function.
pBMPData-the BMP format data
nBMPDataLen-the BMP data buffer size,if pFingerData==NULL or
pBMPData==NULL,then the nBMPDataLen return the length of buffer.
Return: function return 0 Indicates success,others see error code
reference.
33. Show Finger Data in DC
int WINAPI PSShowFingerData(HWND hWnd,unsigned char *pFingerData)
Parameter: hWnd-the handle of control,
pFingerData- the finger data get from PSUpImage function.
Return: function return 0 Indicates success,others see error code
reference.
Page 8 of 11
1.3 Export from ARTH_DLL.dll
1, Match two character file on PC
int WINAPI Match2Fp(unsigned char* Src,unsigned char* Dst);
Parameter: Src: source character file buffer.
Dst: destination character file buffer.
Return: function return a score of one matching. Basicly , Should the
number be equal or above 50, that indicates successful matching.
And the higher the number, the more precise the matching.
2, Generate character file on PC
int WINAPI GenChar([in]unsigned char* FingerData,[out]unsigned char* CharData);
Parameter: FingerData: Fingerprint image file data buffer.
CharData: character file buffer
Return: function return a detail information of corresponding error code
Page 9 of 11
2 Oprate flow
2.1 Enroll a finger and save to Flash
Page 10 of 11
2.2 Search finger from flash
Page 11 of 11