串列埠開發輔助類

2021-09-30 12:17:01 字數 4801 閱讀 1175

using system;

using system.collections.generic;

using system.text;

using system.io.ports;

using system.windows.forms;

namespace testserialport

set

}/// /// 波特率

///

public serialportbaudrates baudrate

set

}/// /// 奇偶校驗位

///

public parity parity

set

}/// /// 資料位

///

public serialportdatabits databits

set

}/// /// 停止位

///

public stopbits stopbits

set

}#endregion

#region 建構函式

/// /// 引數建構函式(使用列舉引數構造)

///

/// 波特率

/// 奇偶校驗位

/// 停止位

/// 資料位

/// 串口號

public serialportutil(string name, serialportbaudrates baud, parity par, serialportdatabits dbits, stopbits sbits)

/// /// 引數建構函式(使用字串引數構造)

///

/// 波特率

/// 奇偶校驗位

/// 停止位

/// 資料位

/// 串口號

public serialportutil(string name, string baud, string par, string dbits, string sbits)

/// /// 預設建構函式

///

public serialportutil()

#endregion

/// /// 埠是否已經開啟

///

public bool isopen

}/// /// 開啟埠

///

///

public void openport()

/// /// 關閉埠

///

public void closeport()

/// /// 丟棄來自序列驅動程式的接收和傳送緩衝區的資料

///

public void discardbuffer()

/// /// 資料接收處理

///

void comport_datareceived(object sender, serialdatareceivedeventargs e)}}

#endregion

//字元轉換

string readstring = system.text.encoding.default.getstring(_bytedata.toarray(), 0, _bytedata.count);

//觸發整條記錄的處理

if (datareceived != null)

}/// /// 錯誤處理函式

///

void comport_errorreceived(object sender, serialerrorreceivedeventargs e)

}#region 資料寫入操作

/// /// 寫入資料

///

///

public void writedata(string msg)

/// /// 寫入資料

///

/// 寫入埠的位元組陣列

public void writedata(byte msg)

/// /// 寫入資料

///

/// 包含要寫入埠的位元組陣列

/// 引數從0位元組開始的位元組偏移量

/// 要寫入的位元組數

public void writedata(byte msg, int offset, int count)

/// /// 傳送串列埠命令

///

/// 傳送資料

/// 接收資料

/// 重複次數

///

public int sendcommand(byte senddata, ref byte receivedata, int overtime)

if (comport.bytestoread >= receivedata.length)

receiveeventflag = false; //開啟事件

return ret;

}#endregion

#region 常用的列表資料獲取和繫結操作

/// /// 封裝獲取串口號列表

///

///

public static string getportnames()

/// /// 設定串口號

///

///

public static void setportnamevalues(combobox obj)

}/// /// 設定波特率

///

public static void setbauratevalues(combobox obj)

}/// /// 設定資料位

///

public static void setdatabitsvalues(combobox obj)

}/// /// 設定校驗位列表

///

public static void setparityvalues(combobox obj)

//foreach (parity party in enum.getvalues(typeof(parity)))//}

/// /// 設定停止位

///

public static void setstopbitvalues(combobox obj)

//foreach (stopbits stopbit in enum.getvalues(typeof(stopbits)))

//

}#endregion

#region 格式轉換

/// /// 轉換十六進製制字串到位元組陣列

///

/// 待轉換字串

/// 位元組陣列

public static byte hextobyte(string msg)

return combuffer;

}/// /// 轉換位元組陣列到十六進製制字串

///

/// 待轉換位元組陣列

/// 十六進製制字串

public static string bytetohex(byte combyte)

return builder.tostring().toupper();

}#endregion

/// /// 檢查埠名稱是否存在

///

///

///

public static bool exists(string port_name)

/// /// 格式化埠相關屬性

///

///

///

public static string format(serialport port)

(,,,,)",

port.portname, port.baudrate, port.databits, port.stopbits, port.parity, port.handshake);}}

public class datareceivedeventargs : eventargs

}public delegate void datareceivedeventhandler(datareceivedeventargs e);

/// /// 串列埠資料位列表(5,6,7,8)

///

public enum serialportdatabits : int

/// /// 串列埠波特率列表。

/// 75,110,150,300,600,1200,2400,4800,9600,14400,19200,28800,38400,56000,57600,

/// 115200,128000,230400,256000

///

public enum serialportbaudrates : int

}

//使用方法

private void btnconnect_click(object sender, eventargs e)

catch (exception ex)

}if (!isopened)

else

isopened = !isopened;

this.btnsend.enabled = isopened;

this.lbltips.text = isopened ? "已連線" : "未連線";

} catch (exception ex) }

void serial_datareceived(datareceivedeventargs e)

));}

前端開發的幾個輔助類工具

為了提高web 的效能,需要將指令碼用樣式檔案壓縮,即減少檔案的大小,將不必要的空格等去除,同時也可以將指令碼中的變數等進行混淆。yui compressor是值得推薦的壓縮工具,它的壓縮比大約為50 詳細資訊可以參考yahoo 開發者網路。在進行css sprites 樣式開發時,經常需要對pho...

併發輔助類

public class countdownlatchdemo string.valueof i start 特性 它不要求呼叫countdown執行緒等待計數到達零之前繼續,它只是阻止任何執行緒通過await 直到所有執行緒可以通過。system.out.println 我可以在await方法之前...

工具類 快取輔助類

在專案中的統計模組中,查詢耗費的時間,實在是太長了,通過優化sql語句或者新增快取來提高查詢的速度,自己就弄了乙個快取的輔助類,方便操作快取中的資料。1 using system 2using system.collections 3using system.collections.generic ...