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 ...