Window 7 - 列印發票軟體 / Visual C# 2010 express 序列埠 (RS232) - 1
列印發票的機器有很多都是接 Rs232 (序列埠) 的,所以要能在 Window 7 下執行,另一個重要的工作就是要能解決 Serial Port Communication, 先 Google 一下 "serial port visual c#" ,果然網路上有不少介紹 Visual C# and Serial Port 的文章 ,其中有一篇淺顯易懂的在 http://csharp.simpleserial.com/ Simple Serial Communication with Microsoft Visual C# Express。 接著用Visual C# 2010 打開原有的專案,開啟 ToolBox ,很幸運在 Visual C# 2010 Express 版中 Microsoft 已經內含一個 SerialPort的物件。
拖拉 SerialPort 到 正在編輯的 Form 上, SerialPort1 就自動產生了。
其實單純寫 Serial Port 的程式,應該不是很複雜,複雜的工作都是要處理列外狀況,先寫一個按鈕單純的去開 COM1,事實上目前我的 筆記型電腦上是沒有 COM1的,在 buttonclick 處加上
private void button2_Click(object sender, EventArgs e)
{
serialPort1.PortName = "COM1";
serialPort1.Open();
}
接著用 Debug 去執行,按下 開啟 Comm Port的按鍵, 果然 IOException 出現了:
為了不讓程式在執行時因為 IOException 跳出, 在 serialPort.Open 用 try 及 catch 包起來如下:
private void button2_Click(object sender, EventArgs e)
{
serialPort1.PortName = "COM1";
try
{
serialPort1.Open();
}
catch (Exception ex) {
MessageBox.Show("Exception Error -> " + ex.Message);
}
}
再次Debug 程式 ,按下 開啟 Comm Port的按鍵 ,這下Window 抓住 IOException 並 Show 出:
至此Serial Port 的連接已經有點框架了,但此時我的胃也發出 " 餓" 的 Exception,我該去
Try "Feed me" 了。
有框處就是SerialPort的物件 |
下方就是產生的 SerialPort1 |
private void button2_Click(object sender, EventArgs e)
{
serialPort1.PortName = "COM1";
serialPort1.Open();
}
接著用 Debug 去執行,按下 開啟 Comm Port的按鍵, 果然 IOException 出現了:
IOException 出現 |
private void button2_Click(object sender, EventArgs e)
{
serialPort1.PortName = "COM1";
try
{
serialPort1.Open();
}
catch (Exception ex) {
MessageBox.Show("Exception Error -> " + ex.Message);
}
}
再次Debug 程式 ,按下 開啟 Comm Port的按鍵 ,這下Window 抓住 IOException 並 Show 出:
Exception Error 被攔截到了 |
Try "Feed me" 了。
留言
張貼留言
請多指教