2010年10月1日 星期五

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的物件
   拖拉 SerialPort 到 正在編輯的 Form 上, SerialPort1 就自動產生了。

下方就是產生的 SerialPort1
    其實單純寫 Serial Port 的程式,應該不是很複雜,複雜的工作都是要處理列外狀況,先寫一個按鈕單純的去開 COM1,事實上目前我的 筆記型電腦上是沒有 COM1的,在 buttonclick 處加上


 private void button2_Click(object sender, EventArgs e)
        {
            serialPort1.PortName = "COM1";
            serialPort1.Open();
        }


接著用 Debug 去執行,按下 開啟 Comm Port的按鍵, 果然 IOException 出現了:

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 出:

Exception Error 被攔截到了
    至此Serial Port 的連接已經有點框架了,但此時我的胃也發出 " 餓" 的 Exception,我該去
Try "Feed me"  了。