ข้อมุลทั้งหมดคัดลอกมาจากไฟล์ Demo Software-A.pdf ที่ได้มาตอนซื้อเครื่อง RFID จาก Acentech ครับ
ผมคัดลองเอาไว้เผื่อว่าไฟล์หายจะได้มีข้อมุลเก็บไว้
เท่าที่ทดลองมาบางบางคำสั่งก็ใช้ได้กับเครื่องบางรุ่นเท่านั้น และบางคำสั่งอาจจะไม่จำเป้นต้องใช้
เน้นนะครับว่าสำหรับ Visual Basic 6 เท่านั้น ส่วนภาษาอื่นผมไม่แน่ใจว่าใช้ฟังก์ชั่นแบบเดียวกันหรือเปล่า
== 2. รูปแบบชุดคำสั่งต่างๆใน DLL ฟังก์ชั่น ที่นำมาใช้งาน ==
2.1 System ฟังก์ชั่น
2.1.1 INT WINAPI LIB_VER
ฟังก์ชั่น: Get DLL Version
รูปแบบใช้งาน: int WINAPI lib_ver (unsigned int *pVer)
พารามิเตอร์: pVer: [OUT] DLL version
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
2.1.2 INT WINAPI RF_INIT_COM
คำอธิบาย: ใช้กำหนดค่าBaud Rate เพื่อรับส่งข้อมูลระหว่างเครื่องอ่านและคอมพิวเตอร์
โดยค่าปรกติเมื่อเสียบสายจ่ายไฟให้เครื่องอ่านBaud rateจะเท่ากับ19200 bps เสมอ
ฟังก์ชั่น: Connect
รูปแบบใช้งาน: int WINAPI rf_init_com (int port, long baud)
พารามิเตอร์: port: [IN] serial port number
baud: [IN] communication baud rate, 4800 ~ 115200 bps
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
2.1.3 INT WINAPI RF_CLOSEPORT
คำอธิบาย: ปิดพอร์ต หยุดการติดต่อกับเครื่องอ่าน
ฟังก์ชั่น: Disconnect
รูปแบบใช้งาน: int WINAPI rf_ClosePort(void)
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
2.1.4 INT WINAPI RF_INIT_DEVICE_NUMBER
คำอธิบาย: สำหรับตั้งหมายเลขประจำตัวของเครื่องอ่านในกรณีที่ระบบมีเครื่องอ่านจำนวน
มากเมื่อคอมพิวเตอร์ต้องการติดต่อกับเครื่องอ่านบางตัวเท่านั้น สามารถนำหมายเลขนี้มา
ใช้เพื่อระบุเครื่องอ่าน
ฟังก์ชั่น: Designate Device ID
รูปแบบใช้งาน: int WINAPI rf_init_device_number (unsigned short iddev)
พารามิเตอร์: iddev: [IN] Device ID
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
2.1.5 INT WINAPI RF_GET_DEVICE_NUMBER
คำอธิบาย: สำหรับอ่านค่าหมายเลขประจำตัวของเครื่องอ่าน กรณีนี้จะต้องต่อเครื่องอ่านที
ละตัวเพื่ออ่านค่าออกมาได้ถูกต้อง
ฟังก์ชั่น: Read Device ID
รูปแบบใช้งาน: int WINAPI rf_get_device_number (unsigned short *pIddev)
พารามิเตอร์: pIddev: [OUT] response Device ID
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
2.1.6 INT WINAPI RF_INIT_TYPE
คำอธิบาย: กรณีที่ใช้เครื่องอ่านรุ่นที่สามารถอ่าน/เขียนTagได้หลายมาตรฐาน สามารถใช้คำสั่งนี้กำหนดให้เครื่องอ่านใช้อ่านTagตามมาตรฐานใด
ฟังก์ชั่น: Set Reader contactless working mode
รูปแบบใช้งาน: int WINAPI rf_init_type(unsigned short iddev, unsigned char type)
พารามิเตอร์: iddev: [IN] Device ID
type: [IN] reader working mode
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
หมายเหตุ: ฟังก์ชั่นนี้ไม่รองรับเครื่องอ่านที่อ่านได้เพียงโปรโตคอลเดียว
type = ‘A': set ISO14443A mode
type = ‘B': set ISO14443B mode
type = ‘1’: set ISO15693 mode
2.1.7 INT WINAPI RF_ANTENNA_STA
คำอธิบาย: สำหรับจัดการเปิดปิดเสาอากาศบนPCBที่ต่อกับเครื่องอ่าน
ฟังก์ชั่น: Manage RF Transmittal
รูปแบบใช้งาน: int WINAPI rf_antenna_sta (unsigned short iddev, unsigned char
model)
พารามิเตอร์: iddev: [IN] Device ID
model: [IN] transmittal state
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
หมายเหตุ: model = 0: ปิดสัญญาณเสาอากาศ
model = 1: ปิดสัญญาณเสาอากาศ
2.1.8 INT WINAPI RF_LIGHT
คำอธิบาย: สำหรับสั่งเปิดปิดLEDในเครื่องอ่านใช้แสดงสัญญาณไฟสีต่างๆจำนวน3สีคือ
แดง, เขียว, เหลือง และปิด
ฟังก์ชั่น: Manage LED
รูปแบบใช้งาน: int WINAPI rf_light (unsigned short iddev, unsigned char color)
พารามิเตอร์: iddev: [IN] Device ID
color: [IN] 0 = off
1 = red
2 = green
3 = yellow
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
2.1.9 INT WINAPI RF_BEEP
คำอธิบาย: สำหรับสั่งให้Buzzerในเครื่องอ่านส่งสัญญาณเสียงออกมาเป็นเวลา10msec.
ฟังก์ชั่น: beep
รูปแบบใช้งาน: int WINAPI rf_beep (unsigned short iddev, unsigned char msec)
พารามิเตอร์: iddev: [IN] Device ID
msec: [IN] beep time, unit 10 MSEL
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
2.2 Mifare Standard Function
รวมฟังก์ชั่นที่ใช้กับ Reader และ Tag มาตรฐาน Mifare ISO14443A เท่านั้น
2.2.1 INT WINAPI RF_REQUEST
ฟังก์ชั่น: ReqA
รูปแบบใช้งาน: int WINAPI rf_request ( unsigned short iddev,
unsigned char model,
unsigned short *pTagType)
พารามิเตอร์: iddev: [IN] Device ID
model: [IN] REQ MODE
pTagType: [OUT] response data, chip type code
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
หมายเหตุ: mode = 0x26: REQ_STD
mode = 0x52: REQ_ALL
2.2.2 INT WINAPI RF_ANTICOLL
ฟังก์ชั่น: Mifare card Anticollision
รูปแบบใช้งาน: int WINAPI rf_anticoll ( unsigned short iddev,
unsigned char bcnt,
unsigned char *pSnr,
unsigned char *pLen)
พารามิเตอร์: iddev: [IN] Device ID
bcnt: [IN] must be 4
pSnr: [OUT] response data from card, unique serial number
pLen: [OUT] length of response data
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
2.2.3 INT WINAPI RF_SELECT
ฟังก์ชั่น: Mifare card Selectting
รูปแบบใช้งาน: int WINAPI rf_select (unsigned short iddev,
unsigned char *pSnr,
unsigned char snrLen,
unsigned char *pSize)
พารามิเตอร์: iddev: [IN] Device ID
pSnr: [IN] card unique serial number
snrLen:[IN] length of pSnr
pSize: [OUT] response data from card, capacity code
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
หมายเหตุ: บัตรMifare Type A ที่ถูกเลือกจะอยู่ในสถานะใช้งานหลังจากได้รับคำสั่งนี้
2.2.4 INT WINAPI RF_M1_AUTHENTICATION2
ฟังก์ชั่น: Mifare_Std Authentify
รูปแบบใช้งาน: int WINAPI rf_M1_authentication2 ( unsigned short iddev,
unsigned char model,
unsigned char block,
unsigned char *pKey)
พารามิเตอร์: iddev: [IN] Device ID
model: [IN] key validate mode
block: [IN] block absolute address
pKey: [IN] 6 bytes password
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
หมายเหตุ : model = 0x60: via KeyA
model = 0x61: via KeyB
2.2.5 INT WINAPI RF_M1_READ
ฟังก์ชั่น: MifareOne Read
รูปแบบใช้งาน: int WINAPI rf_M1_read ( unsigned short iddev,
unsigned char block,
unsigned char *pData,
unsigned char *pLen)
พารามิเตอร์: iddev: [IN] Device ID
block: [IN] block absolute address
pData: [OUT] response data from card
pLen: [OUT] length of response data
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
2.2.6 INT WINAPI RF_M1_WRITE
ฟังก์ชั่น: Mifare_Std Write
รูปแบบใช้งาน: int WINAPI rf_M1_write (unsigned short iddev,
unsigned char block,
unsigned char *pData)
พารามิเตอร์: iddev: [IN] Device ID
block: [IN] block absolute address
pData: [IN] written data, 16 bytes
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
2.2.7 INT WINAPI RF_M1_INITVAL
ฟังก์ชั่น: Mifare_Std card Initialize Value
รูปแบบใช้งาน: int WINAPI rf_M1_initval ( unsigned short iddev, unsigned char block,
long value)
พารามิเตอร์: iddev: [IN] Device ID
block: [IN] block absolute address
pValue: [IN] initialize purse value at HEX format, low byte in former
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
2.2.8 INT WINAPI RF_M1_READVAL
ฟังก์ชั่น: Mifare_Std Read Value
รูปแบบใช้งาน: int WINAPI rf_M1_readval ( unsigned short iddev,unsigned char block,
long *pValue)
พารามิเตอร์: iddev: [IN] Device ID
block: [IN] block absolute address
pValue: [OUT] response value at HEX format, low byte in former
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
2.2.9 INT WINAPI RF_M1_INCREMENT
ฟังก์ชั่น: Mifare purse increment
รูปแบบใช้งาน: int WINAPI rf_M1_increment (unsigned short iddev,
unsigned char block,
long value)
พารามิเตอร์: iddev: [IN] Device ID
block: [IN] block absolute address
value: [IN] increase value at HEX format, low byte in former
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
2.2.10 INT WINAPI RF_M1_DECREMENT
ฟังก์ชั่น: Mifare purse decrement
รูปแบบใช้งาน: int WINAPI rf_M1_decrement (unsigned short iddev,
unsigned char block,
long value)
พารามิเตอร์: iddev: [IN] Device ID
block: [IN] block absolute address
value: [IN] decrease value at HEX format, low byte in former
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
2.2.11 INT WINAPI RF_M1_RESTORE
ฟังก์ชั่น: Mifare_Std Restore
รูปแบบใช้งาน: int WINAPI rf_M1_restore (unsigned short iddev,
unsigned char block)
พารามิเตอร์: iddev: [IN] Device ID
block: [IN] block absolute address
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
2.2.12 INT WINAPI RF_M1_TRANSFER
ฟังก์ชั่น: Mifare_Std Transfer
รูปแบบใช้งาน: int WINAPI rf_M1_transfer (unsigned short iddev,
unsigned char block)
พารามิเตอร์: iddev: [IN] Device ID
block: [IN] block absolute address
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
หมายเหตุ: ฟังก์ชั่นนี้จะทำงานหลังจากคำสั่ง increment, decrement และ restore
2.2.13 INT WINAPI RF_HALT
ฟังก์ชั่น: Mifare Halt
รูปแบบใช้งาน: int WINAPI rf_halt (unsigned short iddev)
พารามิเตอร์: iddev: [IN] Device ID
คืนค่า: คืนค่าเป็น 0 หากการทำงานถูกต้อง
หมายเหตุ: บัตรMifare Type A ที่อยู่ในระยะการทำงานของเครื่องอ่านจะถูกระงับการใช้
ชั่วคราวหลังจากได้รับคำสั่งนี้