freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于bs的遠(yuǎn)程查詢系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)-資料下載頁(yè)

2025-06-18 17:03本頁(yè)面
  

【正文】 回調(diào)函數(shù)。四、基于c/s的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)(一)、服務(wù)器所要實(shí)現(xiàn)的功能 1.服務(wù)器要實(shí)現(xiàn)的功能分析。 第一,接到警報(bào)后提示(根據(jù)ip查找冷庫(kù)編號(hào),顯示冷庫(kù)編號(hào)及超標(biāo)情況)。 第二,接收冷庫(kù)數(shù)據(jù),查找相應(yīng)的冷庫(kù)編號(hào),加上時(shí)間插入數(shù)據(jù)庫(kù)。 第三,接到嵌入式設(shè)備發(fā)送的第三種消息,根據(jù)ip查找相應(yīng)的最高溫度,最低溫度,采樣時(shí)間,發(fā)送給嵌入式。 第四,身份檢驗(yàn)及登陸。 第五,更改各種存放物品的最高溫度,最低溫度,采樣時(shí)間,同時(shí)發(fā)送給嵌入式。 第六,查詢數(shù)據(jù):查詢冷庫(kù)表,同時(shí)更新;查詢溫度表,根據(jù)時(shí)間,溫度分別查詢。查詢配置表,同時(shí)更新。第七,刪除數(shù)據(jù):刪除配置表;刪除冷庫(kù)表。 第八,更新冷庫(kù)表。 第九,修改主機(jī)ip地址,并告知嵌入式設(shè)備。2.采用c/s模式的原因因?yàn)楣I(yè)控制不同于家庭控制,當(dāng)壓縮機(jī)失效時(shí)如果沒有人在將會(huì)造成嚴(yán)重的損失,所以機(jī)房要一直有人值班。因此沒必要將pc機(jī)上與嵌入式交互的部分做成b/s模式,使其在任何地方都能上網(wǎng)控制,這樣還會(huì)產(chǎn)生安全隱患,例如有人可以通過管理員的身份惡意更改配置參數(shù)。所以將此部分做成c/s模式,安裝在機(jī)房?jī)?nèi)的pc機(jī)上。(二)、c/s結(jié)構(gòu)系統(tǒng)總體設(shè)計(jì) 1.c/s結(jié)構(gòu)中服務(wù)器的數(shù)據(jù)庫(kù)基本表結(jié)構(gòu)冷庫(kù)表:字段名稱數(shù)據(jù)類型可否為空說(shuō)明sh_idvarchar否冷庫(kù)編號(hào)sh_thingvarchar是存放物品sh_ipvarchar是相應(yīng)嵌入式設(shè)備的ip地址配置表:字段名稱數(shù)據(jù)類型可否為空說(shuō)明sh_thingvarchar否存放物品sh_maxint是最高溫度sh_minint是最低溫度sh_timeint是采樣間隔時(shí)間溫度表:字段名稱數(shù)據(jù)類型可否為空說(shuō)明sh_idvarchar否冷庫(kù)編號(hào)sh_datetimedatetime是采樣時(shí)間sh_tempvarchar是溫度sh_thingvarchar是存放物品用戶表:(由于采用c/s模式,用戶權(quán)限只有一種,即超級(jí)用戶)字段名稱數(shù)據(jù)類型可否為空說(shuō)明user_idvarchar否用戶編號(hào)user_namevarchar是用戶名user_passwardvarchar是用戶密碼2.表的關(guān)系圖sh_thingsh_maxsh_minsh_tempsh_idsh_datetimesh_tempsh_thingsh_idsh_thingsh_ip(三)、服務(wù)器端程序設(shè)計(jì) Pc上位機(jī)上的服務(wù)器端程序采用c開發(fā),后臺(tái)數(shù)據(jù)庫(kù)采用sqlserver。由于這兩個(gè)開發(fā)工具比較常見,所以不再做介紹。1.連接數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)操作。 由于程序中會(huì)頻繁使用關(guān)于數(shù)據(jù)庫(kù)的操作,因此將此類操作封裝為DataObject類。只需聲明此類變量,只需調(diào)用相應(yīng)方法,就可以進(jìn)行相應(yīng)的操作。類的結(jié)構(gòu)如下: public class DataObject { public DataObject() {//連接數(shù)據(jù)庫(kù) string connstr =database=storeh。user id=storeh。password=storeh。server=(local)。Connect Timeout=5。 try { conn=new SqlConnection(connstr)。 ()。 } catch(Exception ex) { } } public SqlDataAdapter GetDataAdapter(string strSql) /// 獲取和strSql對(duì)應(yīng)的DataSet public DataSet GetDataSet(string strSql) /// 綁定DataGrid public void BindDataGrid(DataGrid dg,string strSql) /// 執(zhí)行SQL public int ExecuteSQL(string strSql) /// 數(shù)據(jù)庫(kù)有關(guān)的錯(cuò)誤處理 protected void Err(Exception ex) /// 用來(lái)關(guān)閉數(shù)據(jù)庫(kù)連接 public void CloseConnection() } 錯(cuò)誤處理的相關(guān)代碼如下 /// 錯(cuò)誤的數(shù)目,大于0就有錯(cuò)誤 public int ErrorCount /// 錯(cuò)誤信息 public string ErrorMessage2.用戶登錄及用戶管理模塊 此模塊主要實(shí)現(xiàn)用戶信息管理和驗(yàn)證用戶身份,由于pc機(jī)放在機(jī)房中,我們可以假定接觸到的人是固定的,都必須是有管理身份的人,所以一旦進(jìn)入系統(tǒng),就擁有所有權(quán)限。否則不能進(jìn)行任何操作。插入時(shí)會(huì)自動(dòng)顯示用戶編號(hào),這是一個(gè)自動(dòng)增加的變量,由于工業(yè)應(yīng)用中能接觸到pc機(jī)的人并不多,因此,不設(shè)置編輯功能。插入的代碼如下:DataObject do1=new DataObject()。string mysql=(insert into usertab (user_id,user_name,user_password) values (39。{0}39。,39。{1}39。,39。{2}39。),)。(mysql)。3.冷庫(kù)管理模塊本模塊可以對(duì)冷庫(kù)的存放物品進(jìn)行管理,并且可以更改嵌入式設(shè)備的ip地址,若嵌入式設(shè)備損壞需要進(jìn)行ip地址的更換,再次模塊中可以進(jìn)行,同時(shí)還可以進(jìn)行插入和刪除操作。不用ip做溫度表的主鍵,因?yàn)槿鬷p改變將導(dǎo)致溫度表中數(shù)據(jù)作廢,代價(jià)較大,所以采用冷庫(kù)編號(hào)作主鍵,雖然操作時(shí)麻煩一些,但安全性好。此模塊主要操作有:修改,添加和刪除。修改時(shí)不能修改主鍵,即不能修改冷庫(kù)編號(hào),如要修改冷庫(kù)編號(hào),只能先刪除再添加。當(dāng)主鍵重復(fù)時(shí),將會(huì)提示操作非法。修改的sql語(yǔ)句為:mysql=(update storehouse set sh_id=39。{0}39。,sh_thing=39。{1}39。,sh_ip=39。{2}39。wheresh_id=39。{3}39。, ,)。插入語(yǔ)句為:mysql=(insert into storehouse (sh_id,sh_thing,sh_ip)values(39。{0}39。,39。{1}39。,39。{2}39。),)。 這個(gè)模塊中需要注意的就是輸入值的有效性判斷。這里采用的通過程序中的代碼判斷,主要是ip地址格式是否合法。4.參數(shù)配置管理模塊 本模塊可以對(duì)不同的物資參數(shù)進(jìn)行配置,可以任意更新,插入,刪除相應(yīng)的配置信息。修改配置信息時(shí)主鍵存放物品不能修改,其他配置可以修改。插入時(shí)會(huì)判斷新插入的物品是否已存在,若已存在,可以修改或刪除后重新插入。由于最大值最小值,以及采樣間隔時(shí)間都是數(shù)字,不能為字符,所以此處還要判斷輸入的合理性。這里采用的是textbox控件的Validating事件,在Validating事件中編程,可以在該控件失去焦點(diǎn)后判斷內(nèi)容是否符合格式,不符合即會(huì)提示操作錯(cuò)誤。例如判斷最大值是否為數(shù)字的Validating事件中的編程:private void tb_max_Validating(object sender, e) { if(!StringIsNumber()) (最大值必須為整數(shù))。 }5.溫度查詢模塊 本模塊可以對(duì)冷庫(kù)的溫度數(shù)據(jù)進(jìn)行查詢,可以按冷庫(kù)號(hào),起止時(shí)間分別或綜合查詢。為了直觀的顯示,我們也可以制作水晶報(bào)表,關(guān)于水晶報(bào)表的具體內(nèi)容將在下一部分介紹。界面如圖:6.Ip更改模塊 本模塊可以修改嵌入式設(shè)備將要發(fā)送消息的目的ip地址進(jìn)行改變。如果服務(wù)器要變更ip,只需要在變更之前采用此窗口操作,即可順利改變。 首先要判斷輸入的ip地址形式是否合法,這與冷庫(kù)管理模塊中的作法相同。點(diǎn)擊確定按鈕即向數(shù)據(jù)庫(kù)中所有的嵌入式設(shè)備發(fā)送新的服務(wù)器ip地址。當(dāng)ip地址合法后調(diào)用StartClinent向嵌入式設(shè)備發(fā)送信息。StartClient函數(shù)是在c中的Socket程序,代碼見附錄。五、基于b/s的遠(yuǎn)程查詢系統(tǒng)的設(shè)計(jì)(一)、b/s模式實(shí)現(xiàn)的功能及用途 由于本設(shè)計(jì)以工業(yè)冷庫(kù)為例研究,而在工業(yè)冷庫(kù)的實(shí)際應(yīng)用中,冷庫(kù)的溫度數(shù)據(jù)需要提交給商檢部分檢查,以判定儲(chǔ)藏物品是否有溫度不符合實(shí)際的情況發(fā)生。傳統(tǒng)的方法是將溫度打印成報(bào)表,定期提交給商檢部門。這種方法存在很多弊端,造假容易,而且如果工廠比較偏僻就會(huì)很不方便。所以我們?cè)O(shè)計(jì)了b/s模塊,它主要是針對(duì)遠(yuǎn)程查詢的。(二)、水晶報(bào)表簡(jiǎn)介 Crystal Reports是一套完整的網(wǎng)絡(luò)與Windows報(bào)表制作解決方案,讓您能存取、分析、報(bào)告、分享資料。從Crystal Reports 8,即可獲得您所需要的彈性高、能擴(kuò)充的報(bào)表制作解決方案。 Crystal Reports公認(rèn)的Windows報(bào)表制作程序佼佼者。它為網(wǎng)站提供額外的易于使用、具彈性及功能強(qiáng)大等報(bào)表制作技術(shù)。(三)、遠(yuǎn)程查詢模塊的實(shí)現(xiàn)1.水晶報(bào)表的使用方法水晶報(bào)表的使用總體上分三步:首先,設(shè)定必要的數(shù)據(jù)庫(kù)聯(lián)接。其次,將CrystalReportViewer 。最后, 在code behind page文件中調(diào)用databind方法。2.遠(yuǎn)程查詢的實(shí)現(xiàn) 遠(yuǎn)程查詢模塊采用的開發(fā)工具是C,服務(wù)器采用IIS。這部分由我組劉月穎同學(xué)完成,詳情見其畢業(yè)論文。六、結(jié)論 本設(shè)計(jì)實(shí)現(xiàn)了原計(jì)劃的既定功能,基本實(shí)現(xiàn)了工業(yè)冷庫(kù)遠(yuǎn)程測(cè)控的基本功能。但是很多功能的實(shí)現(xiàn)是基于模擬的基礎(chǔ)之上,例如數(shù)據(jù)采集和壓縮機(jī)的控制等。這些模塊的實(shí)現(xiàn)要聯(lián)系關(guān)于工業(yè)控制的相關(guān)知識(shí),由于時(shí)間有限,專業(yè)跨度較大,這些部分沒有能給與完善的解決。但是通過此次畢業(yè)設(shè)計(jì),鍛煉了我發(fā)現(xiàn)問題,解決問題的能力。更深入地了解了嵌入式系統(tǒng)的相關(guān)知識(shí),為以后進(jìn)一步的工作和學(xué)習(xí)打下了良好的基礎(chǔ)。謝 辭參考文獻(xiàn)[1] 王學(xué)龍 嵌入式Linux系統(tǒng)設(shè)計(jì)應(yīng)用 清華大學(xué)出版社 2001,[2] 張炯 Unix網(wǎng)絡(luò)編程實(shí)用技術(shù)與實(shí)力分析 清華大學(xué)出版社 2002,[3] 阮戈,林魏 最新Unix程序設(shè)計(jì)與編程技巧 清華大學(xué)出版社 2001,[4] 田澤 嵌入式系統(tǒng)的開發(fā)與應(yīng)用教程 北京航空航天大學(xué)出版社 2005[5] 陳賾 ARM嵌入式技術(shù)實(shí)踐教程 北京航空航天大學(xué)出版社 2005,[6] 鄧全良 Winsock網(wǎng)絡(luò)程序設(shè)計(jì) 中國(guó)鐵道出版社 2002,[7] Julia Case Bradley C.NET程序設(shè)計(jì) 清華大學(xué)出版社 2005,[8] Geetanjali Arora C專業(yè)項(xiàng)目實(shí)例開發(fā) 中國(guó)水利水電出版社 2003,[9] 徐國(guó)智 SQL Server數(shù)據(jù)庫(kù)開發(fā)實(shí)例精粹 電子工業(yè)出版社 2006,[10] uClinux , [11] Cate McCoy 水晶報(bào)表從入門到精通 電子工業(yè)出版社 2003,[12] 李紅霞 嵌入式監(jiān)控系統(tǒng)軟件研究與開發(fā) 西北工業(yè)大學(xué) 2005,[13] 譚鋒 基于Ethernet的嵌入式監(jiān)控系統(tǒng)的研究與開發(fā) 西北工業(yè)大學(xué) 2005,[14] 章煒巍 嵌入式直放站監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 浙江大學(xué) 2005。附 錄public void StartClient(string ipstring,string sendmessage) { // Data buffer for ining data. byte[] bytes = new byte[1024]。 // Connect to a remote device. try { // Establish the remote endpoint for the socket. // The name of the // remote device is . IPHostEntry ipHostInfo = (ipstring)。 IPAddress ipAddress = [0]。 IPEndPoint remoteEP = new IPEndPoint(ipAddress,1100)。 // Create a TCP/IP socket. Socket sender = new Socket(, , )。 // Connect the socket to the remote endpoint. Catch any errors. try { (remoteEP)。 sendmessage=i+sendmessage+ 。 // Encode the data string into a byte array. byte[] msg = (sendmessage)。 // Send the data through the socket. int bytesSent = (msg)。 // Release the socket. ()。 ()。 } }
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1