asp.net下的串口编程
最近,公司這邊有幾個新的項目即將啟動!因為公司主要是做電力載波通信產品,諸如集中控制器,路燈控制器等.在應用軟件這部分基本上就我一個人,其他相關文檔還在整理中.應用軟件部分,主要就是和集中控制器通信,通信方式主要是通過GPRS或者串口.
?
目前初步確定系統采用B/S架構實現!我大概的計劃是GPRS服務使用Windows服務去處理,然后串口通訊直接在asp.net中去控制.這兩天基本把相關的技術大概實現了!在實現asp.net下對串口數據的處理時有個奇怪的問題,就是當串口數據在寫到session中時,系統總是提示"只有在配置文件或 Page 指令中將 enableSessionState 設置為 true 時,才能使用…."錯誤信息;我又新建了一個WebApplication,然后測試Session,但是可以正常使用,說明Session是正常的;又在該項目Page_Load中加上Session的使用,程序運行就正常了,去掉就會報錯!具體原因不明白!
以下是相關代碼,還請大家指教這個問題
VS2008環境
??????? #region? Page_Load
??????? protected void Page_Load(object sender, EventArgs e)
??????? {
??????????? Session["test"] = "1234";
??????????? Session["test"] = null;
??????????? if (!IsPostBack)
??????????? {
??????????????? sp.DataReceived+=new SerialDataReceivedEventHandler(sp_DataReceived);
??????????????? //獲取所有的串口
??????????????? PortsName = SerialPort.GetPortNames();
??????????????? Array.Sort(PortsName);
??????????????? foreach (string s in PortsName)
??????????????? {
??????????????????? this.ddlPortName.Items.Add(s);
??????????????? }
??????????? }
??????? }
??????? #endregion
?
??????? #region 接收串口數據
??????? public void sp_DataReceived(object sender, EventArgs e)
??????? {
??????????? byte[] bytes=new byte[1024];
??????????? if (sp.IsOpen)
??????????? {
??????????????? try
??????????????? {
??????????????????? if (sp.BytesToRead>0)
??????????????????? {
??????????????????????? int DataLength = sp.Read(bytes, 0, sp.BytesToRead);
??????????????????????? Session["value"]= Encoding.Unicode.GetString(bytes);
??????????????????? }
??????????????? }
??????????????? catch (Exception ex)
??????????????? {
??????????????????? Session["value"] = "發生異常錯誤:"+ex.Message;
??????????????? }
??????????? }
??????? }
??????? #endregion
轉載于:https://www.cnblogs.com/MyFavorite/archive/2010/01/06/1640804.html
總結
以上是生活随笔為你收集整理的asp.net下的串口编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flash补间引擎应用:图片特效(2)
- 下一篇: 这样保养让你皮肤变水嫩 - 健康程序员,