njh框架
1view codepublic
class
baseserialport
16private encoding encoding;//
字元編碼
17#endregion
1819
#region 建構函式
20///
21///
使用位元組型通訊協議呼叫此建構函式
22///
23///
串列埠名24
///波特率
25///
資料位26
///停止位
27///
奇偶校驗
28public baseserialport(string portname, int baudrate, int
databits, stopbits stopbits, parity parity)
38///
39///
使用字串型通訊協議呼叫此建構函式
40///
41///
串列埠名42
///波特率
43///
資料位44
///停止位
45///
奇偶校驗
46public baseserialport(string portname, int baudrate, int
databits, stopbits stopbits, parity parity, encoding encoding)
56#endregion
5758
#region 連線裝置
59public
void
connect() 64}
65catch
已被占用或被拒絕訪問
",this
._device.portname));67}
68}69#endregion
7071
#region 關閉連線
72public
void
close() 76}
77#endregion
7879
#region 接收資料
80public
void device_datareceived(object
sender, serialdatareceivedeventargs e)
9091
byte msg = new
byte
[startindex];
92array.copy(buff, msg, startindex);
9394
if (this.encoding == null
) 97
else
101waiterforrsp.set();
102}
103}
104}
105#endregion
106107
#region 傳送訊息
108public
void sendmsg(byte
msg)
112113
public
void sendmsg(string
msg)
118#endregion
119120
#region 原子操作
121///
122///
接收裝置的響應訊息(位元組型通訊協議)
123///
124///
等待裝置回覆的最大時長
125///
收到的裝置的回覆
126///
127public
bool recvrsp(int timeout, out
byte
msg)
134///
135///
接收裝置的響應訊息(字元型通訊協議)
136///
137///
等待裝置回覆的最大時長
138///
收到的裝置的回覆
139///
140public
bool recvrsp(int timeout, out
string
msg)
145146
public
void
occupyroute()
150151
public
void
abandonroute()
154#endregion
155 }
使用方法:
1,適用場景
上位機和裝置通過協議傳送和接收資料互動,從而達到上位機控制裝置的目的。
2,使用方法
(1)示例
現在有個需求:上位機軟體包括乙個點膠機控制器,用來控制點膠機的開始吐膠,停止吐膠,真空壓力值等行為。
///(2)首先建立乙個「控制器」類。///點膠機控制器
/// class
dispensercontroler
//吐膠
public
void
tujiao()
else
port.abandonroute();
}public
void
shutdown()
}
(3)建立乙個baseserialport例項,作為控制器的通訊工具。
(4)根據通訊協議是位元組型還是字串型,選用不同的建構函式建立baseserialport例項。
(5)public void occupyroute() public void abandonroute() 兩個函式極為重要;
一.保證乙個由若干指令組合而成的互動過程的連貫性
occupyroute();
send();//不需要回覆的指令
send();//需要回覆的指令
recvrsp();//處理回覆
abandonroute();
二,每條指令的開頭和結尾
occupyroute();
send();//需要回覆的指令
recvrsp();//處理回覆
abandonroute();
含義:傳送完指令,處理裝置的回覆,然後讓出 串列埠接收資料的唯一快取,允許其他指令和裝置互動。
三,recvrsp()的使用方法
檢查返回值,若false,表示規定時間內未收到裝置的回覆,rsp超時。
檢查返回值,若true,則使用recvrsp()傳出的接收到的資料。
串列埠與socket通訊
到資訊。對於那種需要很長時間才能完成的操作來說,重疊i o機制尤其有用,因為發起 重疊操作的執行緒在重疊請求發出後就可以自由地做別的事情了。在windows nt 2000上,提供真正可擴充套件的i o模型就是使用完成埠 completion port 的重疊i o。可以把完成埠看成系統維護的乙個佇...
串列埠與socket通訊
2.完成埠建立成功後,在socket和完成埠之間建立關聯。再次呼叫createiocompletionport 函式,這一次在第1個引數filehandle傳入建立的socket控制代碼,引數existingcompletionport 為已經建立的完成埠控制代碼。以下 建立了乙個socket並把它...
串列埠通訊 串列埠通訊原理
1 rs232介面 rs232 c介面聯結器一般使用型號為db 9的9芯插頭座,只需3條介面線,即 傳送資料 接收資料 和 訊號地 即可傳輸資料,其9個引腳的定義如圖11 3所示。圖11 3 rs232 c介面聯結器定義 在rs232的規範中,電壓值在 3v 15v 一般使用 6v 稱為 0 或 o...