พอดีว่า ผมได้มีโอกาสมาสัมนาเรื่อง RFID ที่ทาง SIPA จัดขึ้น และวิทยาการได้กล่าวถึงเรื่องการติดต่อกับตัว Reader ผ่านทาง Serial Port (ที่ Emulate ผ่าน USB อีกที) วิทยากรเขาแนะนำการเขียนด้วย VB6 และใช้ MSCOMM32 ระหว่างที่ท่านนั่งอธิบายอยู่ ผมเลยใช้เวลานี้ เขียนคลาส C# ที่จะนำมาใช้ในการติดต่อกับตัว RFID Reader ครับ
สำหรับตัว RFID นั้น ใช้ชิพ Silicon Labs CP210x ในการแปลง USB เป็น Serial ครับ ซึ่งปรากฏว่า เป็นชิพเดียวกันกับ GPS Receiver หลายยี่ห้อ ผมเลยสามารถหา Driver สำหรับ x64 ได้ไม่ยากเย็นนักครับ
สำหรับ Protocol การติดต่อกับตัว RFID ผมลองนั่งหาดู ปรากฏว่าไปเจอเข้าจนได้ ดาวน์โหลดได้จากที่หน้าไฟล์เลยครับ
ส่วนโค๊ดในการติดต่อ ผมทดลองทำง่ายๆ 2 คำสั่ง คือ คำสั่ง Beep และ LED ครับ โดยผมมีฟังก์ชั่นสำหรับส่งให้พร้อมแล้ว น่าจะสามารถเติมคำสั่งอื่นๆ ได้ไม่ยากเย็นนัก
ขอให้สนุกครับ
จุดน่าสนใจ
- เหมือนว่า การส่ง จะต้องส่งเป็นแบบ Big-Endian คือ เอาไบต์น้อยขึ้นก่อน เช่น 0x0106 เวลาส่ง จะต้องส่ง 06 ไปก่อน 01 ผมก็เลยใช้วิธีเอา BitConverter แปลงค่าเป็น Byte ก่อน แล้วสั่ง Reverse แล้ว ToArray เอาครับ
- เนื่องจากความยาวไม่มีทางเกิน 32 (แค่ไบต์เดียว) เลยไม่ต้องกลับ Little/Big Endian ครับ