1. 程式人生 > >關於serialPort控制元件的使用跟INI檔案的建立,讀取,寫入方法

關於serialPort控制元件的使用跟INI檔案的建立,讀取,寫入方法

     剛剛完成了一個關於氦檢的專案,雖然只是做的使用者介面,但是也用到一些之前沒有用到的

    serialPort控制元件是用來跟COM口進行連線的,用在接在CON口的一起上,進行資料傳輸,這裡我用COM口連線的是掃碼槍,

        private void button1_Click(object sender, EventArgs e)
        {
            this.serialPort1.PortName = "COM1";//設定串列埠號
            this.serialPort1.BaudRate = 9600;//設定波特率
            this.serialPort1.Open();//開啟串列埠
            MessageBox.Show("串列埠開啟!");
        }
需要設定他的串列埠號,串列埠號可在我的電腦屬性裡面查到,波特率一般的設定9600根據硬體的要求來。

在使用條碼槍前需要先開啟串列埠,然後在在用條碼槍掃描條碼就可以,一般得到資料分為每隔一段時間讀取一次,和每當使用這個串列埠的時候(在這裡就是使用條碼槍的時候)觸發 ,在serialPort控制元件裡的serialPort1_DataReceived方法就可以實現這一要求,讀取從條碼槍獲得的資料方法:

 private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            serialPort1.Encoding = Encoding.GetEncoding("GB2312");
            string str = serialPort1.ReadExisting().ToString();//得到從串列埠傳過來的資料
            serialPort1.DiscardInBuffer();//清空快取
            //必須要加不然str傳不進去執行緒委託
            this.textBox2.Invoke(new Action(delegate
                {
                    this.textBox2.Text = str;
                }));
        }

這裡需要注意的時,在這個事件裡面如果需要給控制元件賦值,必須呼叫這個控制元件的Invoke方法,因為執行緒的問題,不然就會報錯。

serialPort控制元件暫時就這些,下面是關於INI檔案的建立,讀取,寫入

INI檔案必須先要載入一個類,這個類檔案在我的下載裡面,名字是INIClass.cs

在這個類裡面已經寫好了相應的方法,我這就直接寫怎麼使用了

INI檔案的建立只要給他寫入的時候如果沒有檔案,他就會自動建立一個INI檔案,名字跟內容都可在寫入的裡面設定

            INIClass cIni_one = new INIClass(Directory.GetCurrentDirectory() + "\\TXM3.ini");//讀取指定位置的INI檔案
            string str_one = "1";//INI檔案的內容的模組標籤
            cIni_one.IniWriteValue(str_one, "value", "AB123456789");//寫入INI檔案一個鍵對應一個值
            cIni_one.IniWriteValue(str_one, "value_name", "空調一");//寫入INI檔案一個鍵對應一個值
            str_one = "2";//INI檔案的內容的模組標籤
            cIni_one.IniWriteValue(str_one, "value", "AB987654321");//寫入INI檔案一個鍵對應一個值
            cIni_one.IniWriteValue(str_one, "value_name", "空調二");//寫入INI檔案一個鍵對應一個值

這裡邊Directory.GetCurrentDirectory()方法是獲得當前位置返回一個string,當前位置就是在bin資料夾——》Debug資料夾裡面,也就是程式生成的EXE檔案的位置,這裡就是將檔案的地址通過INIClass的構造方法將值設定好。其他的就按照這個格式來寫,生成之後去看一下就能夠立馬明白這邊的模組標籤等的意義是什麼了。

INI檔案的讀取方法

            INIClass cIni = new INIClass(Directory.GetCurrentDirectory() + "\\TXM3.ini");//讀取指定位置的INI檔案
            string str = "1";//INI檔案的內容的模組標籤
            MessageBox.Show(cIni.IniReadValue(str, "value").ToString());//讀取對應模組裡的對應鍵的值
            MessageBox.Show(cIni.IniReadValue(str, "value_name").ToString());//讀取對應模組裡的對應鍵的值

讀取的方法跟寫入的方法差不多,整個不難,我在用過INI 檔案的時候,感覺這就像個鍵值對集合,用起來挺方便簡單的,特別是在傳輸一些資料的時候,我設定個時間控制元件去讀取,基本就可以了