|
本來這個文字應(yīng)該屬于其他類別的,但是因?yàn)槭且郧皽囟蕊@示器制作的延續(xù),所以放在電子制作類別了。
先看看這個溫度顯示報(bào)警裝置是如何一步一步的增強(qiáng)的吧。先是M8作出了單機(jī)電路,無通訊功能,然后增加了一個串口電路,是單向的,不能雙向通訊,同時用C#開發(fā)了一個windows程序,用于接收顯示溫度數(shù)據(jù)。到此為止,其實(shí)是能實(shí)現(xiàn)遠(yuǎn)程顯示功能了,只是需要這個裝置運(yùn)行在服務(wù)器上,且能從外網(wǎng)訪問到,否則失去了實(shí)用價值,而要查看數(shù)值,只要遠(yuǎn)程登錄服務(wù)器,查看那個WIDOWS程序的顯示界面即可。
但是DIY是無止境的,通過遠(yuǎn)程登錄才能查看顯然不夠地道,這次要實(shí)現(xiàn)的是通過web網(wǎng)站顯示數(shù)值!
考慮了一下,有兩個方案。
1.直接由windows程序輸出html代碼,這個方法簡單,但是靈活性欠佳,要改界面就要改windows程序,而且不能實(shí)現(xiàn)無刷更新。
2.windows程序輸出xml數(shù)據(jù),使用asp程序提取出數(shù)據(jù),然后顯示在頁面上,這個方法有一定靈活性,但是需要IIS開通ASP服務(wù),而這樣不是很安全,而且也不能無刷更新。
3.windows程序輸出xml數(shù)據(jù),這個數(shù)據(jù)用xslt格式化后用ajax程序讀出,實(shí)現(xiàn)無刷更新。
為了服務(wù)器安全運(yùn)行,決定采用3號方案。
實(shí)測表明,用ajax讀出的xml數(shù)據(jù)是不能加載xslt的,也就是說,xml不能被格式化;后下載了一個xslt的jQuery插件,好像也不太行;再后來查看了有關(guān)資料,知道jQuery的ajax方法載入xml后,是可以像普通頁面一樣,用$取得節(jié)點(diǎn)字段的,這些字段讀取后用javascript寫入頁面位置即可。
方案3取得成功,xml數(shù)據(jù)成功呈現(xiàn)在一個靜態(tài)頁面上,然后是加上1s定時ajax程序,實(shí)現(xiàn)了頁面的無刷更新。
因?yàn)閤ml數(shù)據(jù)是由windows寫入磁盤文件的,如何這個程序掛了的話,xml是不會有任何異常的,為了便于遠(yuǎn)程知悉這個通訊程序的工作狀態(tài),xml又增加了一個時間戳字段,這樣如果windows程序掛了的話,這個時間戳就不會實(shí)時更新,這樣遠(yuǎn)程端就可以輕易覺察出來了。
遠(yuǎn)程顯示頁面制作成功后,再將這個xml及html所在目錄加入某個網(wǎng)站的虛擬目錄就完成了!
|
|