|
|
Rank: มือสมัครเล่น Groups: Member
Joined: 9/7/2008 Posts: 11 Location: HatYai
|
สืบเนื่องจาก กระทู้"ขอปรึกษาโปรเจค RFID หน่อยครับ"
ผมลองเอาโค้ดที่คุณpaedotnet อธิบายไปลองแล้วครับจากนั้นผมก็กำหนดให้แสดงค่านั้นออกมาทางtextbox แต่ปรากฎว่ามันไม่แสดงค่านั้นออกมา
จึงอยากขอ รบกวน ช่วย เขียนโค้ด(อย่างละเอียด) แสดงการอ่านค่าจากเครื่องRFID แล้วแสดงค่าออกทาง textbox ให้ดูหน่อยครับ
ขอรบกวนด้วยครับผมเพิ่งหัด C# สำหรับทำโปรเจคRFID ได้ไม่นานเองครับเลยไม่ค่อยเข้าใจ
ขอบคุณครับ
|
|
Rank: มือพระกาฬ Groups: Member
Joined: 9/9/2008 Posts: 62
|
|
|
Rank: มือสมัครเล่น Groups: Member
Joined: 9/7/2008 Posts: 11 Location: HatYai
|
ขอบคุณครับแต่
ที่ให้มามันใช้ Phidgets ซึ่งมันเป็นการต่อตัวReader ผ่าน พอร์ต USB อ่ะครับผมเคยลองแล้วมานไม่Work
แต่ที่ผมใช้ ตัวREADER มันต่อผ่าน COM Port อ่าครับ 
รบกวนช่วยสอนการ อ่านค่าในTag ผ่านCom Portแบบละเอียดด้วยคร้าฟ
ขอบคุณครับ
|
|
Rank: มือพระกาฬ Groups: Member
Joined: 9/9/2008 Posts: 62
|
ต้องขอโทษด้วยนะครับ เรื่อง RFID ผมไม่เคยทำมาก่อน แล้วก็ไม่มีตัว READER ให้ลองซะด้วย
พอดีผมไปเจอ source code อันนึง อาจจะใช้เป็นไกด์ไลน์ได้นะครับ เค้าใช้ของ Mifare (อันเดียวกับของคุณรึเปล่า)
ตามลิ้งข้างล่างนี้
http://upload.gangza.com/view.aspx?ItemID=1ebd8a0a-ef7f-dd11-b5cb-00e08127749e
|
|
 Rank: มือเทพ Groups: Member
Joined: 12/6/2007 Posts: 354 Location: bkk
|
ขอดูโค้ดที่ติดต่อและรับค่าจาก rfid หน่อยได้หรือเปล่าครับ [With great power comes great responsibility]
|
|
Rank: มือสมัครเล่น Groups: Member
Joined: 9/7/2008 Posts: 11 Location: HatYai
|
อย่าขอโทษ เลยครับคุณ nuttaponp แค่คุณมาช่วยตอบให้ผมก็ดีใจมากแล้วครับแล้วครับ 
แล้วก็คุณ paedotnet ครับ คือว่าตอนนี้ คอม ผมเสียอ่ะครับ เดี๋ยวตอนเที่ยงจารีบ เอาโค้ดมา ให้ดูน่ะครับ ขอบคุณมากครับ ทั้ง2 ท่านที่
มาช่วยตอบคำถามมือใหม่อย่างผม
PS.มหาลัยผมมีแต่คนใช้ Java กับ C++ อ่ะครับ เข้าไปดูในกระทู้ของบอร์ดแล้วอยากไปอยู่ กทม.บ้างจังจะได้ไปขอความรู้จากพวกท่านๆบ้าง ^.^ บ้านนอกจริงๆเลยเรา เหอๆ
|
|
Rank: มือสมัครเล่น Groups: Member
Joined: 9/7/2008 Posts: 11 Location: HatYai
|
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace TEST_BOARD
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
SerialPort port = new SerialPort();
port.PortName = "COM5";
port.Parity = Parity.None;
port.BaudRate = 9600;
port.DataBits = 8;
port.Open();
port.DataReceived += new SerialDataReceivedEventHandler(MyDataReceive);
port.close();
}
public void MyDataReceive(object sender, SerialDataReceivedEventArgs e)
{
string data = DataReceive;
textBox1.Text = data;
}
}
}
//ผมจะเขียนไห้ รับค่าจาก บัตรแล้วเก็บไว้ในตัวแปร แล้วก็เอาค่าไปเป็น Primary Key ในDB ไว้ คิวรี่ออกมาอ่ะครับ
|
|
Rank: มือพระกาฬ Groups: Member
Joined: 9/9/2008 Posts: 62
|
ผมว่าน่าจะเป็นเพราะคุณปิด port ไปก่อน มันเลยไม่รอรับค่า
ลองแก้เป็นแบบนี้ดูนะครับ
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace TEST_BOARD
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SerialPort port;
private void Form1_Load(object sender, EventArgs e)
{
port = new SerialPort();
port.PortName = "COM5";
port.Parity = Parity.None;
port.BaudRate = 9600;
port.DataBits = 8;
port.DataReceived += new SerialDataReceivedEventHandler(MyDataReceive);
port.Open();
}
public void MyDataReceive(object sender, SerialDataReceivedEventArgs e)
{
string data = port.ReadExisting();
textBox1.Text = data;
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
port.close();
}
}
}
|
|
Rank: มือสมัครเล่น Groups: Member
Joined: 9/7/2008 Posts: 11 Location: HatYai
|
  .jpg)
ขอโทษครับ คือว่า พอdebug แล้ว มันก็ผ่านอ่ะครับ แต่พอเอา [y9iเข้าไปใกล้แล้วมันก็เกิด error ดัง รูป อ่ะครับช่วยหน่อย ครับ
|
|
Rank: มือสมัครเล่น Groups: Member
Joined: 9/7/2008 Posts: 11 Location: HatYai
|
ได้โปรด เถอะคร้าบ ช่วยด้วยครับ ผมทำตัวโปรแกรมเชื่อมกับDBเสร็จแล้วเหลือแค่อันนี้แหละครับที่ทำไม่เป็น แงๆ 
|
|
Rank: มือพระกาฬ Groups: Member
Joined: 9/9/2008 Posts: 62
|
คุณ noop ลองเพิ่มฟังชั่นการรับข้อมูลไปอีกนิดนะครับ
โค้ดหน้าตาเป็นประมาณนี้
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace TEST_BOARD
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SerialPort port;
private void DisplayData(string msg) //<--เพิ่มฟังชั่นนี้เข้าไป
{
textBox1.Invoke(new EventHandler(delegate
{
textBox1.Text = msg;
}));
}
private void Form1_Load(object sender, EventArgs e)
{
port = new SerialPort();
port.PortName = "COM5";
port.Parity = Parity.None;
port.BaudRate = 9600;
port.DataBits = 8;
port.DataReceived += new SerialDataReceivedEventHandler(MyDataReceive);
port.Open();
}
public void MyDataReceive(object sender, SerialDataReceivedEventArgs e)
{
string data = port.ReadExisting();
DisplayData(data); //<--แก้ให้เป็นแบบนี้
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
port.close();
}
}
}
|
|
Rank: มือสมัครเล่น Groups: Member
Joined: 9/7/2008 Posts: 11 Location: HatYai
|

ยังติดอยู่อีกนิดอ่ะครับ มานerror แบบนี้

ลืมบอกไปว่าค่าที่เครื่อง อ่านออกมามันจะเป็น ASCII อ่ะครับเอาไปลองกับHyperterminalแล้ว (เกี่ยวกันมั้ยครับ T_T)
|
|
Rank: มือพระกาฬ Groups: Member
Joined: 9/9/2008 Posts: 62
|
เช็คดูนะครับว่าบนหัวของโปรแกรมมีตัวไหนขาดไปบ้าง เพิ่มให้ครบนะครับ
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
|
|
Rank: มือสมัครเล่น Groups: Member
Joined: 9/7/2008 Posts: 11 Location: HatYai
|
ได้แล้วครับ คุณ nuttaponp แต่ค่าที่ได้มัน ขาดๆ เกินๆ ซะงั้นอ่ะครับ >.<




ด้านล่างนี้เป็นsource code ที่ผมเขียนครับ รบกวนช่วยดูให้หน่อยน่ะครับ(จาส่งพรุ่งนี้แล้ว งานอย่างอื่น เรียบร้อย แล้ว เหลือแต่อ่านค่านี่แระ เฮ้อๆเครียด ครับ)
PS.. ขอบคุณน่ะครับ คุณ nuttaponp นี่ถ้าผมอยู่ กทม คงพา คุณไปเลี้ยงขอบคุณแล้ว (ที่จิงจาไปแอบดูดความรู้ ^.^)
http://upload.gangza.com/view.aspx?ItemID=a06d6c03-c083-dd11-b5cb-00e08127749e
|
|
Rank: มือพระกาฬ Groups: Member
Joined: 9/9/2008 Posts: 62
|
พอดีเครื่องผมใช้ Visual studio 2005 เลยเปิดไม่ได้น่ะครับ
ลองแก้บรรทัดที่รับข้อมูลตรง
string data = port.ReadExisting();
ให้เป็น
string data = port.ReadLine();
ลองดูนะครับถ้าไม่ได้ยังไงค่อยแก้ไขกันต่อไป ยังพอมีเวลาครับ
หน้าตาก็จะออกมาประมาณแบบนี้
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace TEST_BOARD
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SerialPort port;
private void DisplayData(string msg)
{
textBox1.Invoke(new EventHandler(delegate
{
textBox1.Text = msg;
}));
}
private void Form1_Load(object sender, EventArgs e)
{
port = new SerialPort();
port.PortName = "COM5";
port.Parity = Parity.None;
port.BaudRate = 9600;
port.DataBits = 8;
port.DataReceived += new SerialDataReceivedEventHandler(MyDataReceive);
port.Open();
}
public void MyDataReceive(object sender, SerialDataReceivedEventArgs e)
{
string data = port.ReadLine(); //<--แก้ให้เป็นแบบนี้
DisplayData(data);
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
port.Close();
}
}
}
|
|
Rank: มือสมัครเล่น Groups: Member
Joined: 9/7/2008 Posts: 11 Location: HatYai
|
สุดยอดดดครับ คุณ nuttaponp สำเร็จแล้วครับ อ่านค่าออกมาแล้ว ขอบคุณจริงๆครับ 
ติดอยู่นิดเดียว ตรงที่ มีตัวอักษรที่ไม่ต้องการ เหลือ อยู่ด้านหน้า 1 ตัว หรือ ถ้าเอาบัตรไปอ่านค่าอีกครั้ง
มันจะมีเกิน มา 2 ตัวอักษรครับ แต่ไม่ขึ้น เกิน 2ตัวแล้วครับ จะตัดมันออกไงดีเหรอครับ


PS.. เย็นแล้วอย่าลืม ทานข้าวน่ะครับ คุณ nuttaponp
|
|
Rank: มือพระกาฬ Groups: Member
Joined: 9/9/2008 Posts: 62
|
ผมไม่แน่ใจว่าจะใช้ได้หรือเปล่านะลองเปลี่ยนตรง DisplayData(data); ให้เป็น
DisplayData(data.TrimStart((char)191).TrimStart((char)192));
จะได้แบบนี้ (แก้ที่เดียวนะครับ)
public void MyDataReceive(object sender, SerialDataReceivedEventArgs e)
{
string data = port.ReadLine();
DisplayData(data.TrimStart((char)191).TrimStart((char)192));
}
|
|
Rank: มือสมัครเล่น Groups: Member
Joined: 9/7/2008 Posts: 11 Location: HatYai
|
เย้ ขอบคุณครับ คุณ nuttaponp ผ่าน แล้วววว ครับ ^.^
ขอบคุณ มากๆๆเลยครับ ^.^
|
|
|
Guest |