web项目与硬件设备的物联网项目总结
三月份開(kāi)始,導(dǎo)師接了個(gè)本地發(fā)行銀行的內(nèi)部一些系統(tǒng)的改造項(xiàng)目。這個(gè)項(xiàng)目是一個(gè)物聯(lián)網(wǎng)方向的、銀行內(nèi)部使用的web端的Java項(xiàng)目。里面涉及非常多的與硬件通訊的東西,并非是一個(gè)單純的web端的Java項(xiàng)目。由于該項(xiàng)目中使用的設(shè)備來(lái)自一二十家不同的廠商,每個(gè)廠商采用的通訊方式也各不相同,導(dǎo)致我們?cè)谧鲇布y(cè)試和Java通訊代碼的編寫(xiě)也帶來(lái)不小的麻煩,更不用說(shuō)工作量了,整個(gè)六月七月都在高強(qiáng)度的工作,白天去現(xiàn)場(chǎng)實(shí)地測(cè)試、調(diào)試,晚上回實(shí)驗(yàn)室熬夜改代碼,一切辛苦盡在不言中。
接下來(lái)我對(duì)在這個(gè)項(xiàng)目中自己做了些什么,又學(xué)到了什么東西,做一些總結(jié);
1、 物聯(lián)網(wǎng)的發(fā)展是一定要和硬件建立連接的,從而建立起數(shù)據(jù)的采集,數(shù)據(jù)上傳到控制中心,最后通過(guò)對(duì)數(shù)據(jù)分析給予一定的控制輸出。首先如果要采集到硬件設(shè)備的信息,我們一定要搞清楚硬件的通訊方式,通過(guò)一些軟件調(diào)試軟件來(lái)和硬件設(shè)備進(jìn)行數(shù)據(jù)的交互。目前主流的一些通訊方式主要有TCP/IP、UDP、RS232/485等。由于物聯(lián)網(wǎng)要實(shí)現(xiàn)集中控制,所以所有的硬件設(shè)備無(wú)論采用什么樣的通訊方式,都要通過(guò)網(wǎng)線與交換機(jī)相連接,這樣在使用到串口的通訊方式的設(shè)備的時(shí)候就要采用一些轉(zhuǎn)換設(shè)備把串口通訊通過(guò)轉(zhuǎn)換設(shè)備來(lái)接入到控制中心的交換機(jī)上,當(dāng)然在接入交換機(jī)的每個(gè)設(shè)備中都要設(shè)置不同的IP地址。
2、 在采集數(shù)據(jù)的時(shí)候,一定要充分的研究說(shuō)明書(shū),當(dāng)然在一些公司為了節(jié)約成本可能使用的硬件是小廠家生產(chǎn)的產(chǎn)品,這就導(dǎo)致設(shè)備內(nèi)附的說(shuō)明書(shū)極其簡(jiǎn)陋甚至不配說(shuō)明書(shū),這就要我們?nèi)ヂ?lián)系生產(chǎn)廠家,一般小廠家銷售和技術(shù)售后都是很好找的,他們也都很直接的會(huì)把和設(shè)備相關(guān)的說(shuō)明資料發(fā)給你。當(dāng)然你在使用設(shè)備的時(shí)候遇到什么問(wèn)題也可以咨詢他們。但是一些做的比較的大的廠商,因?yàn)閮?nèi)部管理機(jī)構(gòu)比較復(fù)雜,把銷售和技術(shù)部門(mén)的職責(zé)分配的非常的細(xì)致,當(dāng)我們要去咨詢關(guān)于他們?cè)O(shè)備的問(wèn)題的時(shí)候,往往需要先聯(lián)系銷售,通過(guò)銷售去聯(lián)系技術(shù)人員,再來(lái)給我們指導(dǎo)解決技術(shù)問(wèn)題,這可能還是比較好的,有些公司售后部門(mén)可能有聯(lián)系電話,但是卻無(wú)法打通,只能聯(lián)系本地的經(jīng)銷商,一層一層的聯(lián)系技術(shù)人員,這會(huì)特別的耗費(fèi)時(shí)間。
3、 Web端與硬件設(shè)備的通訊,我們是通過(guò)在web端調(diào)用所需設(shè)備的webservice來(lái)交互數(shù)據(jù)的。我們編寫(xiě)的webservice服務(wù)是讓硬件設(shè)備傳來(lái)的數(shù)據(jù)一直不停的上傳給我們的web端,通過(guò)web端來(lái)對(duì)數(shù)據(jù)進(jìn)行分析處理;這樣的底層通訊方式會(huì)造成數(shù)據(jù)量的龐大,并且會(huì)使通訊效率降低,給設(shè)備下發(fā)控制命令的時(shí)間會(huì)有延遲。考慮到這個(gè)問(wèn)題我們的解決方式是,讓webservice主動(dòng)監(jiān)控硬件設(shè)備的數(shù)據(jù)變化,如有數(shù)據(jù)的變化,再把設(shè)備的實(shí)時(shí)數(shù)據(jù)上傳給web端,從而經(jīng)過(guò)web端的分析,下發(fā)控制命令,這種方式會(huì)有效的解決通訊延遲的問(wèn)題。
4、 硬件廠商一般都會(huì)提供二次開(kāi)發(fā)的demo,這些demo可能是用C#編寫(xiě)的,亦或者是Java編寫(xiě)、VB語(yǔ)言編寫(xiě)的;大部分廠商會(huì)提供主要的使用C#編寫(xiě)的,因?yàn)榇蟛糠值目蛻舳司褪怯肅#編寫(xiě)的,好些廠商為了方便就直接在開(kāi)發(fā)包中提供C#編寫(xiě)的demo;一些小廠商,為了節(jié)約成本,一般不會(huì)設(shè)置通過(guò)登錄固定的IP去修改硬件設(shè)備的參數(shù),如果要修改參數(shù)就必須運(yùn)行C#demo,與硬件建立連接,來(lái)修改硬件的參數(shù)。一些大廠的設(shè)備,比如海康威視、昆侖海岸等使用的客戶群體比較大,當(dāng)然客戶的要求也就會(huì)增多,為了提升自身產(chǎn)品的影響力及降低二次開(kāi)發(fā)的難度,他們都會(huì)提供不同版本的、使用不同語(yǔ)言編寫(xiě)的demo。
5、 為了能夠讓web端與硬件建立通訊,我們必須要編寫(xiě)webservcie,并將其以網(wǎng)站的形式通過(guò)IIS部署到服務(wù)器上,要編寫(xiě)webservice就必須要熟悉廠商提供的C#demo,有時(shí)候我們可能只用到demo中的一些功能,我們并不需要把所有的函數(shù)都寫(xiě)進(jìn)webservice,弄清我們要使用demo中的什么內(nèi)容,提供可調(diào)用的接口,這寫(xiě)是非常重要的,當(dāng)然我們也要從分的把上述第三點(diǎn)給考慮進(jìn)去,這點(diǎn)是非常的重要,這關(guān)乎我們的系統(tǒng)的整體性能。
以上幾點(diǎn)是關(guān)于一些硬件的開(kāi)發(fā)所了解到的知識(shí)。接下來(lái)就是在前端開(kāi)發(fā)所學(xué)的和所遇到的問(wèn)題。
6、 這個(gè)項(xiàng)目中,我們要通過(guò)硬件實(shí)現(xiàn)室內(nèi)定位,并能夠在前端網(wǎng)頁(yè)中顯示出定位的坐標(biāo)以及在平面圖中的位置。這里我們主要是通過(guò)svg標(biāo)簽來(lái)實(shí)現(xiàn)的,我們首先要把客戶提供的室內(nèi)平面圖(CAD)通過(guò)svg標(biāo)簽來(lái)在前端頁(yè)面中顯示,這要求我們知道平面圖的縮放尺寸,我們放進(jìn)svg標(biāo)簽中,不能整張圖都放進(jìn)去,我們也要適當(dāng)?shù)目s放,并在里面加入滾輪、鼠標(biāo)操作,來(lái)進(jìn)行放大縮小平移。同時(shí)還要熟悉svg內(nèi)部所屬的標(biāo)簽的屬性,如何繪制圖形,并給圖形內(nèi)部上色和添加事件等。從硬件傳來(lái)的位置信息要實(shí)時(shí)的顯示在前端頁(yè)面中。
7、 前端的東西上手比較容易,但是真正能把頁(yè)面的做的非常漂亮是有一定的難度,如何運(yùn)用div標(biāo)簽真是一門(mén)很大的學(xué)問(wèn),現(xiàn)在大部分的前端開(kāi)發(fā)都在使用div來(lái)進(jìn)行頁(yè)面布局,由于接觸前端開(kāi)發(fā)事件比較短,雖然知道一些div標(biāo)簽的使用方法,但是div標(biāo)簽的配套使用真的要花費(fèi)很大的力氣,前端頁(yè)面的優(yōu)化對(duì)于新手來(lái)說(shuō)是真的很耗費(fèi)時(shí)間。
最后,還有一點(diǎn),開(kāi)發(fā)項(xiàng)目一定要有一定的規(guī)范,代碼里面一定要添加適當(dāng)?shù)淖⑨?#xff0c;這會(huì)給我們后期的修改和維護(hù)帶來(lái)很大的方便。
總結(jié)
以上是生活随笔為你收集整理的web项目与硬件设备的物联网项目总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java求乘法逆元的代码_求乘法逆元的几
- 下一篇: Cisco 2651路由器IP电话配置