版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、山東微分電子科技有限公司 智能家居綜合實(shí)驗(yàn)1山東微分電子科技有限公司目錄目錄1第一章綜合實(shí)驗(yàn)21.智能家居21.1實(shí)驗(yàn)?zāi)康?1.2實(shí)驗(yàn)環(huán)境21.3實(shí)驗(yàn)內(nèi)容21.4實(shí)驗(yàn)原理21.4.5.實(shí)驗(yàn)步驟5附錄23協(xié)議介紹23通訊格式23傳輸編碼2425第一章 綜合實(shí)驗(yàn)1.智能家居1.1實(shí)驗(yàn)?zāi)康耐ㄟ^對(duì)智能家居案例的學(xué)習(xí),讓學(xué)生充分認(rèn)識(shí)物聯(lián)網(wǎng)在智能家居的作用,充分了解并深入掌握光照,溫度,濕度等各傳感器的作用。1.2實(shí)驗(yàn)環(huán)境1. Microsoft Visual Studio 20102. Microsoft SQL Server 20083. 微分電子實(shí)驗(yàn)箱或?qū)嶒?yàn)臺(tái)以及配套的C#SDK開發(fā)包 1.3實(shí)驗(yàn)內(nèi)
2、容通過對(duì)光照、溫度、濕度、火焰、燃?xì)?、煙霧等多種傳感器的利用,實(shí)時(shí)采集光照、溫度、濕度、火焰、燃?xì)?、煙霧等多種傳感信息,進(jìn)而與窗簾、空調(diào)、燈光、風(fēng)扇等多種繼電器和電機(jī)實(shí)施聯(lián)動(dòng)控制,可以配置報(bào)警記錄,產(chǎn)生歷史記錄。顯示報(bào)警記錄,歷史記錄等信息。1.4實(shí)驗(yàn)原理1.系統(tǒng)背景電子信息的日益更新,控制技術(shù)的逐步提升,社會(huì)信息化的逐步加快,促使人們的生活、工作、學(xué)習(xí)以及通訊技術(shù)的關(guān)系日益緊密,信息化的社會(huì)在改變?nèi)藗兩盍?xí)慣和工作方式的同時(shí),也對(duì)我們傳統(tǒng)住宅提出了更高的要求,環(huán)視四周,我們很容易發(fā)現(xiàn),人們對(duì)家居的要求早已不再時(shí)簡(jiǎn)單的物質(zhì)空間,更為關(guān)注的是一個(gè)高度安全、舒適以及美觀方便的居住環(huán)境,先進(jìn)的通訊設(shè)
3、施,完備高效的信息終端,自動(dòng)、智能的家電,網(wǎng)絡(luò)化的資源管理及購(gòu)物方式等等?,F(xiàn)今社會(huì)人們?nèi)找媾蛎浀男枨笫沟眉揖又悄芑讶怀蔀橐环N趨勢(shì)。2.系統(tǒng)功能概述系統(tǒng)結(jié)構(gòu)圖系統(tǒng)功能設(shè)計(jì)智能家居系統(tǒng)分為兩個(gè)部分:實(shí)時(shí)的數(shù)據(jù)采集,包括對(duì)各地點(diǎn)的環(huán)境信息監(jiān)控,與電機(jī)的聯(lián)動(dòng)配置,網(wǎng)絡(luò)通訊的設(shè)置;數(shù)據(jù)記錄查詢,歷史記錄查詢和報(bào)警記錄查訊。廚房查詢:監(jiān)控廚房各傳感器的信息值,進(jìn)行用戶的手動(dòng)配置,以圖表形式實(shí)時(shí)顯示各傳感器信息??蛷d查詢:監(jiān)控客廳各傳感器的信息值,進(jìn)行用戶的手動(dòng)配置,以圖表形式實(shí)時(shí)顯示各傳感器信息。臥室查詢:監(jiān)控臥室各傳感器的信息值,進(jìn)行用戶的手動(dòng)配置,以圖表的形式實(shí)時(shí)顯示各傳感器信息。閾值設(shè)置:對(duì)客廳、
4、臥室的光照、溫度、濕度的傳感器信息進(jìn)行閾值配置,判斷是否進(jìn)行電機(jī)聯(lián)動(dòng)和產(chǎn)生報(bào)警信息,從而在主界面進(jìn)行反饋。歷史查詢:查詢客廳,臥室,廚房歷史記錄信息,并在界面顯示。報(bào)警查詢:查詢客廳,臥室,廚房報(bào)警記錄信息,并在界面顯示。退出系統(tǒng):退出整個(gè)系統(tǒng)。4.數(shù)據(jù)庫(kù)的設(shè)計(jì)通過數(shù)據(jù)庫(kù)保存光照、溫度、濕度、火焰、燃?xì)?、煙霧等傳感器信息的數(shù)據(jù)信息,保存各傳感器數(shù)據(jù)閾值的記錄和對(duì)聯(lián)動(dòng)信息電機(jī)的狀態(tài)的值,從而有利于用戶對(duì)各傳感器的故障排除和記錄查詢,保證家居環(huán)境的安全。數(shù)據(jù)庫(kù)名稱:SmartHome數(shù)據(jù)庫(kù)表名:歷史記錄查詢表 dbo.HistoryData字段數(shù)據(jù)類型主鍵描述允許為空HistoryIDInt是歷史
5、記錄ID否HistoryMinValueNvarchar(30)否歷史記錄的最小值否HistoryMaxValueNvarchar(30)否歷史記錄的最大值否SensorIDNvarchar(20)否傳感器ID否SensorValueNvarchar(30)否傳感器采集值否SensorCollectTimeDateTime否設(shè)備采集時(shí)間否數(shù)據(jù)庫(kù)表名:地點(diǎn)表 dbo.Place字段數(shù)據(jù)類型主鍵描述允許為空placeNoNvarchar(20)是地點(diǎn)ID否PlaceNameNvarchar(30)否地點(diǎn)名稱否數(shù)據(jù)庫(kù)表名:傳感器表dbo.SensorTable字段數(shù)據(jù)類型主鍵描述允許為空Sensor
6、NoNvarchar(20)是傳感器編號(hào)否SensorTypeIDNvarchar(30)否傳感器類型否SensorPlaceNonvarChar(20)否傳感器采集地點(diǎn)編號(hào)否數(shù)據(jù)庫(kù)表名:傳感器類型表dbo.SensorType字段數(shù)據(jù)類型主鍵描述允許為空SensorTypeIDNvarchar(20)是傳感器類型ID否SensorTypeNvarchar(30)否傳感器類型否數(shù)據(jù)庫(kù)表名:報(bào)警數(shù)據(jù)表dbo.WarningData字段數(shù)據(jù)類型主鍵描述允許為空WarnIDint是報(bào)警編號(hào)否WarnSensorIDNvarchar(20)否報(bào)警傳感器ID否WarnValuefloat否產(chǎn)生報(bào)警采集值
7、否WarnlimitMinValuefloat否報(bào)警最小值閾值否WarnlimitMaxValuefloat否報(bào)警最大值閾值否WarnTimedateTime否報(bào)警值采集時(shí)間否WarnPlaceNoNvachar(20)否傳感器所在地點(diǎn)否WarnInfoNtext否報(bào)警信息否數(shù)據(jù)庫(kù)表名:傳感器配置表 dbo.SensorConfig字段數(shù)據(jù)類型主描述允許為空SensorConfigIDint是配置編號(hào)否SensorIDNvarchar(20)否配置傳感器ID否SensorPlaceIDNvarchar(20)否配置傳感器ID否SensorConRealyIDNvarchar(20)否相關(guān)連的繼
8、電器ID否SensorCollectValueFloat 否傳感器采集值否SensorlimitMinValueFloat 否配置最小值閾值信息否SensorlimitMaxValueFloat 否配置最大值閾值信息否SensorAlarmInfoNvarchar(50)否傳感器報(bào)警信息狀態(tài)否SensorlimitSetTimedateTime 否配置閾值當(dāng)前時(shí)間否數(shù)據(jù)庫(kù)表名:繼電器狀態(tài)表 dbo.RealyStatus字段數(shù)據(jù)類型主鍵描述允許為空RealyIDNvarchar(20)是繼電器類型ID否RealyNameNvarchar(30)否繼電器類型否RealyStatusNvarcha
9、r(10)否繼電器狀態(tài)是1.4.5.實(shí)驗(yàn)步驟第一步 :網(wǎng)絡(luò)參數(shù)的讀取,界面效果如下:在【進(jìn)入】時(shí),由從XML文件讀取的IP和Port配置,并ping IP地址,如果網(wǎng)絡(luò)聯(lián)通正常,將IP和端口號(hào)賦給各個(gè)窗體,進(jìn)入【智能家居實(shí)時(shí)監(jiān)控】/讀取配置文件/實(shí)例化XMLDocument類 XmlDocument xmldoc = new XmlDocument(); /讀取IPConfig文件 xmldoc.Load("IPConfig.xml");/讀取節(jié)點(diǎn) XmlNode nodeIP = xmldoc.SelectSingleNode("config/ip")
10、; XmlNode nodePort = xmldoc.SelectSingleNode("config/Port"); /判斷信息正確與否,并給全部變量賦值 if (txtIP.Text = nodeIP.InnerText &&txtPort.Text=nodePort.InnerText) try /實(shí)例化ping類 Ping p = new Ping();/將所要ping的IP地址傳到后臺(tái) PingReply reply = p.Send(txtIP.Text);/判斷ping IP的狀態(tài) if (reply.Status = IPStatus.Su
11、ccess) MessageBox.Show("當(dāng)前網(wǎng)絡(luò)聯(lián)通正常!"); else MessageBox.Show("當(dāng)前網(wǎng)絡(luò)聯(lián)通異常或當(dāng)前IP錯(cuò)誤!"); catch (Exception ex) MessageBox.Show(ex.Message); FrmMain frmMa = new FrmMain(); frmMa.Show(); FrmDrawing.NetIP = nodeIP.InnerText; FrmDrawing.Port = nodePort.InnerText; FrmKitchen.NetIP = nodeIP.Inner
12、Text; FrmKitchen.Port = nodePort.InnerText; FrmRoom.NetIP = nodeIP.InnerText; FrmRoom.Port = nodePort.InnerText; FrmMain.NetIP = nodeIP.InnerText; FrmMain.Port = nodePort.InnerText; this.Hide(); else MessageBox.Show("輸入的信息有誤!"); 第二步 當(dāng)IP與Port配置成功后,進(jìn)入到【智能家居實(shí)時(shí)監(jiān)控】,顯示界面效果如下:在【智能家居實(shí)時(shí)監(jiān)控】中,實(shí)時(shí)監(jiān)測(cè)臥室的
13、環(huán)境信息,當(dāng)網(wǎng)絡(luò)配置正常時(shí),自動(dòng)進(jìn)行聯(lián)動(dòng)控制主要功能代碼(以臥室為例)如下:/讀取配置文件 XmlDocument xmldoc = new XmlDocument(); xmldoc.Load("IPConfig.xml"); XmlNode nodeNetIP = xmldoc.SelectSingleNode("config/ip"); XmlNode nodePort = xmldoc.SelectSingleNode("config/Port");/判斷IP和端口號(hào) if (NetIP = nodeNetIP.InnerTe
14、xt && Port = nodePort.InnerText) try string light = sm.getLight("" + NetIP + "", "" + Port + "", "3", "", "", ""); lblRoomlight.Text = "臥室光照:“+light1 + "LX"int lightValue = int.Parse(light1); if (l
15、ightRoomlimitMaxValue >= lightRoomlimitMinValue) /顯示設(shè)定的最小值 string strReadMinValue = "select SensorlimitMinValue from SensorConfig where SensorID='C0003_3'" /顯示設(shè)定的最大 string strReadMaxValue = "select SensorlimitMaxValue from SensorConfig where SensorID='C0003_3'"
16、 /判斷光照與閾值的關(guān)系,并進(jìn)行聯(lián)動(dòng)操作 /判斷光照值是否小于最小值,如果滿足條件,打開燈光 if (int.Parse(SQLDBHelper.GetDataSet(strReadMinValue).Tables0.Rows0"SensorlimitMinValue".ToString() > lightValue) Roomlight.Visible = false; RoomlightRed.Visible = true;/判斷聯(lián)動(dòng)電機(jī)的狀態(tài) String strRead = "SELECT RealyStatus,SensorID,SensorCon
17、RealyID FROM RealyStatus,SensorConfig where SensorConfig.SensorConRealyID=RealyStatus.RealyID and SensorID='C0003_3' and SensorConRealyID='S0001'" /如果LED燈狀態(tài)為“關(guān)”,自動(dòng)關(guān)閉LED燈,否則就打開LED if (SQLDBHelper.GetDataSet(strRead).Tables0.Rows0"RealyStatus".ToString() = "關(guān)")
18、 string close = sm.getOrSetSwitch("" + NetIP + "", "" + Port + "", "101", "", "", "", "3", "0"); else string open = sm.getOrSetSwitch("" + NetIP + "", "" + Port + "&
19、quot;, "101", "", "", "", "3", "1"); /判斷光照度是否大于設(shè)定的最大值,如果滿足,打開步進(jìn)電機(jī) else if (lightValue > int.Parse(SQLDBHelper.GetDataSet(strReadMaxValue).Tables0.Rows0"SensorlimitMaxValue".ToString() Roomlight.Visible = false; RoomlightRed.Vis
20、ible = true; string strRoomlight= "SELECT RealyStatus,SensorID,SensorConRealyID FROM RealyStatus,SensorConfig where SensorConfig.SensorConRealyID=RealyStatus.RealyID and SensorID='C0003_3' and SensorConRealyID='S0003'" /判斷步進(jìn)電機(jī)的狀態(tài)if (SQLDBHelper.GetDataSet(strRoomlight).Tabl
21、es0.Rows0"RealyStatus".ToString() = "關(guān)") string close = sm.getOrSetStepMotor("" + NetIP + "", "" + Port + "", "104", "", "", "", "3", "0", 800); else string open = sm.getOrSetStepM
22、otor("" + NetIP + "", "" + Port + "", "104", "", "", "", "3", "1", 800); /如果條件都不滿足,則將LED和步進(jìn)電機(jī)都關(guān)閉 else Roomlight.Visible = true; RoomlightRed.Visible = false; string closeStep = sm.getOrSetStepMotor(&q
23、uot;" + NetIP + "", "" + Port + "", "104", "", "", "", "3", "0", 800); string closeMotor = sm.getOrSetSwitch("" + NetIP + "", "" + Port + "", "101", "
24、", "", "", "3", "0"); catch (Exception ex) Console.WriteLine(ex); 【廚房監(jiān)測(cè)環(huán)境監(jiān)控】,界面效果如下:對(duì)于廚房的環(huán)境,燃?xì)?,煙霧,火焰進(jìn)行實(shí)時(shí)采集和顯示,手動(dòng)進(jìn)行聯(lián)動(dòng)設(shè)置,例如:電機(jī)的開啟與關(guān)閉。/獲取燃?xì)庵?,將?shù)據(jù)保存到數(shù)據(jù)庫(kù) try string Gas = sm.getCombustibleGas("" + NetIP + "", "" + Port + "&quo
25、t;, "7", "", "", ""); /獲取燃?xì)庵?lblGas.Text = Gas1; if (lblGas.Text != null && int.Parse(Gas1) > 0) /設(shè)置picSwitch 背景 picSwitch.ImageLocation = "picture/off.png" /將燃?xì)庵堤砑拥綌?shù)據(jù)庫(kù) string strSqlGas = "insert into HistoryData (HistoryMinValue,Hist
26、oryMaxValue,SensorID,SensorValue,SensorCollectTime)values('0','25','A0001_3','" + Gas1 + "','" + DateTime.Parse(time) + "')" SQLDBHelper.ExecuteNonQuery(strSqlGas); else picSwitch.ImageLocation = "picture/on.png" /從數(shù)據(jù)庫(kù)讀取信息,并綁
27、定在chart圖表上 string strfindGas = "select TOP 100 SensorCollectTime,SensorValue from HistoryData where SensorID='A0001_3' order by(SensorCollectTime)desc" /聲明數(shù)據(jù)類型為int的list List<int> listData = new List<int>(); /聲明數(shù)據(jù)類型為string的list List<string> listDate = new List<s
28、tring>(); for (int i = 0; i < SQLDBHelper.GetDataSet(strfindGas).Tables0.Rows.Count; i+) / 從數(shù)據(jù)庫(kù)讀取數(shù)據(jù),添加到list listData.Add(int.Parse(SQLDBHelper.GetDataSet(strfindGas).Tables0.Rowsi"SensorValue".ToString(); listDate.Add(SQLDBHelper.GetDataSet(strfindGas).Tables0.Rowsi"SensorCollec
29、tTime".ToString(); /綁定廚房燃?xì)鈹?shù)據(jù) chtKitChen.Series0.Points.DataBindXY(listDate, listData); catch (Exception ex) Console.WriteLine(ex); /獲取廚房火焰數(shù)據(jù),保存在數(shù)據(jù)庫(kù) try string flame = sm.getFire("" + NetIP + "", "" + Port + "", "156", "", "",
30、 ""); if (flame1 = "1") lblflame.Text = "有" lblflame.ForeColor = Color.Red; string strSqlflame = "insert into HistoryData (HistoryMinValue,HistoryMaxValue,SensorID,SensorValue,SensorCollectTime)values('0','100','A0001_2','火焰:有','
31、" + DateTime.Parse(time) + "')" SQLDBHelper.ExecuteNonQuery(strSqlflame); catch (Exception ex) Console.WriteLine(ex); /在窗體載入時(shí)開啟線程threadCollect = new Thread(collect);threadCollect.Start();/定義變量 bool flag = false; /對(duì)于線程的方法 public void collect() flag = true; while (flag) try string t
32、emp = sm.getTemperature("" + NetIP + "", "" + Port + "", "1", "", "", ""); lblTemp.Text = temp1; /將數(shù)據(jù)添加到歷史記錄表 string strSqlTemp = "insert into HistoryData(HistoryMinValue,HistoryMaxValue,SensorID,SensorValue,SensorC
33、ollectTime) values('" + FrmMain.templimitMinValue + "','" + FrmMain.templimitMaxValue + "','B0002_1','" + lblTemp.Text + "','" + DateTime.Parse(time) + "')" SQLDBHelper.ExecuteNonQuery(strSqlTemp); /從數(shù)據(jù)庫(kù)讀取信息,將數(shù)據(jù)綁定到c
34、hart圖表 string strfindtemp = "select TOP 100 SensorCollectTime,SensorValue from HistoryData where SensorID='B0002_1' order by(SensorCollectTime)desc" /定義數(shù)據(jù)類型為int的list List<int> listData = new List<int>(); /定義數(shù)據(jù)類型為string的list List<string> listDate = new List<stri
35、ng>(); for (int i = 0; i < SQLDBHelper.GetDataSet(strfindtemp).Tables0.Rows.Count; i+) if (int.Parse(SQLDBHelper.GetDataSet(strfindtemp).Tables0.Rowsi"SensorValue".ToString() > 0) /將獲得數(shù)據(jù)添加到list listData.Add(int.Parse(SQLDBHelper.GetDataSet(strfindtemp).Tables0.Rowsi"SensorVal
36、ue".ToString(); listDate.Add(SQLDBHelper.GetDataSet(strfindtemp).Tables0.Rowsi"SensorCollectTime".ToString(); /通過委托傳遞參數(shù)this.Invoke(new Action() => lblTemp.Text = temp1;/綁定客廳溫度到chart圖表 chtLivingwt.Series0.Points.DataBindXY(listDate, listData); ); catch (Exception ex) Console.WriteLi
37、ne(ex); 【客廳監(jiān)測(cè)環(huán)境監(jiān)控】,界面效果如下:監(jiān)測(cè)客廳的環(huán)境信息(這里指溫度),保存到數(shù)據(jù)庫(kù),并將數(shù)據(jù)綁定到chart圖表,手動(dòng)進(jìn)行聯(lián)動(dòng)電機(jī)的開啟與關(guān)閉。/在窗體載入時(shí)開啟線程threadCollect = new Thread(collect);threadCollect.Start();/定義變量 bool flag = false; /對(duì)于線程的方法 public void collect() flag = true; while (flag) try string temp = sm.getTemperature("" + NetIP + "&quo
38、t;, "" + Port + "", "1", "", "", ""); lblTemp.Text = temp1; /將數(shù)據(jù)添加到歷史記錄表 string strSqlTemp = "insert into HistoryData(HistoryMinValue,HistoryMaxValue,SensorID,SensorValue,SensorCollectTime) values('" + FrmMain.templimitMinValu
39、e + "','" + FrmMain.templimitMaxValue + "','B0002_1','" + lblTemp.Text + "','" + DateTime.Parse(time) + "')" SQLDBHelper.ExecuteNonQuery(strSqlTemp); /從數(shù)據(jù)庫(kù)讀取信息,將數(shù)據(jù)綁定到chart圖表 string strfindtemp = "select TOP 100 SensorCo
40、llectTime,SensorValue from HistoryData where SensorID='B0002_1' order by(SensorCollectTime)desc" /定義數(shù)據(jù)類型為int的list List<int> listData = new List<int>(); /定義數(shù)據(jù)類型為string的list List<string> listDate = new List<string>(); for (int i = 0; i < SQLDBHelper.GetDataSet(s
41、trfindtemp).Tables0.Rows.Count; i+) if (int.Parse(SQLDBHelper.GetDataSet(strfindtemp).Tables0.Rowsi"SensorValue".ToString() > 0) /將獲得數(shù)據(jù)添加到list listData.Add(int.Parse(SQLDBHelper.GetDataSet(strfindtemp).Tables0.Rowsi"SensorValue".ToString(); listDate.Add(SQLDBHelper.GetDataSet(
42、strfindtemp).Tables0.Rowsi"SensorCollectTime".ToString(); /通過委托傳遞參數(shù)this.Invoke(new Action() => lblTemp.Text = temp1;/綁定客廳溫度到chart圖表 chtLivingwt.Series0.Points.DataBindXY(listDate, listData); ); catch (Exception ex) Console.WriteLine(ex); (注意:由于數(shù)據(jù)需要從數(shù)據(jù)庫(kù)中讀取,可能數(shù)據(jù)獲取比較慢)對(duì)chart的設(shè)置主要代碼:/設(shè)置溫度圖表
43、樣式/設(shè)置chart標(biāo)題 chtLivingwt.Titles.Add("客廳溫濕度監(jiān)控"); /實(shí)例化圖表區(qū) ChartArea ca = new ChartArea("圖表區(qū)");/實(shí)例化圖表序列seTemp = new Series("溫度");/設(shè)置圖表序列樣式 seTemp.ChartType = SeriesChartType.Spline; /將溫度的圖表序列添加到圖表區(qū) seTemp.ChartArea = ca.Name; /圖表ca添加到圖表區(qū) chtLivingwt.ChartAreas.Add(ca); /將溫
44、度seTemp的圖表序列添加到圖表序列chtLivingwt.Series.Add(seTemp); /設(shè)置圖表序列樣條線的寬度chtLivingwt.Series0.BorderWidth = 2; /設(shè)置X軸主題 chtLivingwt.ChartAreas0.AxisX.Title = "時(shí)間:( /s)" /設(shè)置Y軸主題chtLivingwt.ChartAreas0.AxisY.Title = "單位:" 【臥室環(huán)境實(shí)時(shí)監(jiān)控】,界面效果如下:注:代碼及注釋請(qǐng)參考“客廳環(huán)境監(jiān)控”【智能家居控制區(qū)】,界面效果如下:將配置的電機(jī),繼電器的狀態(tài),是否報(bào)警
45、等信息在界面顯示,同時(shí)并更改數(shù)據(jù)庫(kù)數(shù)據(jù)的狀態(tài)。主要代碼如下(以客廳光照為例):/設(shè)置客廳光照/窗體載入判斷數(shù)據(jù)記錄是否存在,如果存在,則不插入數(shù)據(jù),否則就將數(shù)據(jù)記錄插入到數(shù)據(jù)庫(kù) string sqlRead = " select count(*)as Count from SensorConfig where SensorID='B0002_3' "/如果數(shù)據(jù)不存在 if (int.Parse(SQLDBHelper.GetDataSet(sqlRead).Tables0.Rows0"Count".ToString() <= 1)
46、string time = DateTime.Now.ToLocalTime().ToString(); string strSqlIns = "insert into SensorConfig values('5','B0002_3','B10002','S0001','" + txtLivinglight.Text + "','" + txtlivinglightMinVa.Text + "','" + txtlivinglig
47、htMaxVa.Text + "','否','" + time + "')" SQLDBHelper.ExecuteNonQuery(strSqlIns); string strSqlSec = "insert into SensorConfig values('6','B0002_3','B10002','S0003','" + txtLivinglight.Text + "','" +
48、 txtlivinglightMinVa.Text + "','" + txtlivinglightMaxVa.Text + "','否','" + time + "')" SQLDBHelper.ExecuteNonQuery(strSqlSec); else Console.WriteLine("該記錄已存在!"); /判斷低溫報(bào)警是否被選中 string strReadWarn1 = "SELECT SensorAlarmInfo FROM SensorConfig where SensorConfigID='5'" if (SQLDBHelper.GetDataSet(strReadWarn1).Tables0.Rows0"SensorAlarmInfo".ToString() = "否") cblivinglightPolice1.Checked = fals
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《室內(nèi)設(shè)計(jì)空間組織》課件
- 《電源系統(tǒng)的建?!氛n件
- 《病理心理學(xué)》課件
- 通史版2025屆高考?xì)v史二輪總復(fù)習(xí)第二編考前突破突破一史學(xué)入門與史料研讀課件
- 大學(xué)生網(wǎng)絡(luò)安全教育
- 單位管理制度集合大合集人員管理十篇
- 單位管理制度合并選集【職員管理篇】十篇
- 單位管理制度分享匯編職員管理篇
- 單位管理制度分享大全職工管理
- 單位管理制度范例選集職工管理篇十篇
- 部編新人教版小學(xué)語文6六年級(jí)上冊(cè)(全冊(cè))教案設(shè)計(jì)
- 山東省濟(jì)南市2023-2024學(xué)年高二年級(jí)上冊(cè)1月期末英語試題(解析版)
- 初中體育教案【完整版】七年級(jí)
- 2024-2030年中國(guó)城市供熱行業(yè)市場(chǎng)前景預(yù)測(cè)及發(fā)展趨勢(shì)預(yù)判報(bào)告
- 2024年計(jì)算機(jī)二級(jí)MS Office考試題庫(kù)500題(含答案)
- 人教版七年級(jí)上冊(cè)《生物》期末試卷(完整)
- 福建中考英語作文15分評(píng)分標(biāo)準(zhǔn)
- 智慧磐石工程建設(shè)方案
- 等保2完整版本.0介紹及建設(shè)流程
- 蘇教版科學(xué)六年級(jí)上冊(cè)期末測(cè)試卷含完整答案(各地真題)
- 市場(chǎng)法評(píng)估企業(yè)價(jià)值
評(píng)論
0/150
提交評(píng)論