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