中職擴展資源包資料:項目分塊講解_第1頁
中職擴展資源包資料:項目分塊講解_第2頁
中職擴展資源包資料:項目分塊講解_第3頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、項目分塊講解UI界面串口 E早口口S蘆首先UI界面的編輯區(qū),流程三,有四個下拉列表選擇框,對應四個自定義函數(shù),對應四個信息提示的彈出框,以及一個總開關,總開關連接一個switch判斷,對應兩個保存開關信息的自定義函數(shù)四個下拉列表分別是列車通信波特率選擇,列車通信串口號選擇,軌道通信波特率選擇,軌道通信串口號選擇等。幾點發(fā)布按鈕,打開瀏覽器輸入:localhost:1880/ui/, 展示到UI界面對應的效果是:網辜Jf?莖舅®31吁第口=sra特串口通信串口通信收發(fā)列車位置如下圖所示:通過串口接收發(fā)來的列車位置協(xié)議,通過判斷協(xié)議來獲取列車位置。我們知道列車位置信息的協(xié)議是:EE CC

2、 01(序列號)FF 03(限速命令)00(車速)08 (軌道號)00 00 00 00 00 00 00 00 FF如圖所示,通過判斷第六位我們獲取到列車位置信息。1 var temp ® msg.payluadEf;2 var t&M - msg.p3yload0*3 - if<temp = 1)4 context ,set( '-falg' ,0);5 context.set('baojingr j;變燈獲取位置信息以后, 根據(jù)列車的位置來決定發(fā)送什么協(xié)議,怎么變燈,在軌道一的時候,軌道一的小燈是紅色,其余都是綠色,并且列車速度是0.Dao

3、jing wpj;1HF (ternp - 1 && ten var nil - (payload:ntw var n2 = -(payload: new var m3 = payload : riBbr var nwa = payload: neu var mB (paylDad: neu- var nti - (payload: new var in?二payloads new Vdir iti8 = payload neu vjir = pylod:Bu+fer( Bu-Ffer( Buffer( ELrFfer (BLrfferfl204?042424Z04Bbr+fe

4、r( 1(204Bu+ferd 2:04Buffer(2d4Buffer(2&40&000©return HU,鼻丄y初上,祺,ttit?;); ); )k )h B;尸匕蘭事£0聲J已旅曲:, r , i Sb ft;r0>0>2S5 );d ,小 q): 叭務劭弟工55);前面已經講過他的邏輯關系,就不在重復了,注意到了returnm1 .m9,是通個口發(fā)送的數(shù)據(jù),因為我們有九條協(xié)議。在配置中,最下方,可以配置輸出口的多少。G Properties29 10亠 11 12 13亍141516 ” 17 IS 11 &&- 2玉

5、二 口sylomd 二 nmiwj Evar tem = msgpaylo白d0; if(temp “ 1)context.set('falg'、0); context.set('baojlng',9); global.set('jin' ,3); global.set(r chu1j4);else if(temp =S) context,set( '-falg1,1);if(global.gpt('fl'iffglabal.get('liebo'=e &憶 glob;i-F(context. ge

6、t( '-Falg') 9)if(temp >= context.get('baocontest*' baojin呂r jteraip1連接9個delay節(jié)點,起到延遲效果,保證發(fā)送的協(xié)議是一條一條的,不是一堆協(xié)議同時發(fā)出,最后連接一個軌道電路的串口輸出我們要發(fā)送的變燈協(xié)議。來讓軌道上的小燈變化延遲 SOOrris延遲1ms延遲100TS延遲200ms延遲300 ms辻遲400ms延遲500 nns延遲600 TS延遲700ms砂 口 flATirrn;執(zhí)道電路通信串號報警項目中的報警分為:區(qū)間模式正常行駛中發(fā)生倒車報警;進出站模式沒有得到進出站允許強行進

7、出站報警。獲',相當于每移動一baoj ing '首先是區(qū)間模式正常行駛發(fā)生倒車,邏輯之前已經講過了, 講一下關鍵的地方,列車移動, 取到的軌道號,每移動一次,都把軌道號賦值給定義的變量baoji ng次列車,就刷新一次變量的值,這樣,當我們倒車的時候,得到的軌道號小于變量 的話我們就判定他違規(guī)倒車,報警if(context.get("falg") - 9)if(temp >= context.get'bacjing') 匚ontext,5et(rbaojing1jtemp);if (temp =- 1 呂& tem “ 238

8、)報警的協(xié)議。If(temp < context君*b日ojim呂")/ar baoi = payload:new Buffer' 204, ZdS, 1,25b, J,2,6,0.0,0,0,255); return baol,null±nullfnulljnull,null,null,null,null;iFf context .ffet 1 4 a Io ' 'i = 1V與變燈發(fā)送數(shù)據(jù)的方式一樣。發(fā)送到軌道上,使其報警。延遲800TIS延遲1ms延遲100 ms延遲200ms延遲SOOim延遲400ms延遲 OOrris延遲 6'

9、;OOftisJgg 700ms恭二日 flrbfime紈道電路逋信罩口號樹莓派固定串口號在這里講一個特殊的點, 在普通windows 系統(tǒng)下,在Node-red 中編輯串口號的命名一般 是Com* ,在樹莓派中的名稱就變了,不是com* ,變成了 ttyUSB*,而且還有一個問題比較麻煩,樹莓派對第一個插入的 USB設備命名為ttyUSBO,對第二個插入的命名為 ttyUSBI, 這樣的話就比較麻煩,每次的修改Node-red 中程序,修改串口號。所以我們需要給樹莓派 固定串口號,并且起一個別名,這樣我們可以給他起名為com*,這樣在windows和樹莓派程序中串口名稱都不用改變,固定每個U

10、SB 口的串口號,這樣無論先插那個口,他都不會變。教程如下:樹莓派的 USB端口接通時被映射為一個文件存在/dev/目錄下,通常是ttyUSBO,ttyUSBI等等。實際應用它存在這樣一個問題,樹莓派并不是指定哪一個端口就是ttyUSBO,或哪一個就是ttyUSBI,而是把第一個接入設備的USB 口定為ttyUSBO,第二個是ttyUSBI,這在接一個設備時是優(yōu)點,可是接多個設備,在程序里就分不清ttyUSBO,ttyUSBI到底指 的哪一個設備了。 所以應給各個 USB 口定一個固定的名字,在程序中好讓我們準確地找 到它。方法如下:1 .查看USB號執(zhí)行命令:Is - /sys/class/

11、ttyUtaftndTrvx 1畑弋 D Jun 艸 晦訂HW袖1/1 1. I 1 2/1 1 la?ilIrwiFhfflrvx 1 f»! FMt G Jun I* 14:44 ttyvfiil * 一/./deMic«i/plb/ui171-1.1/1 1.X. Pl 1 1. J11.1tyUSBl/ttI.Fitftruxrvi I mi r«OT Q Jyn 1 中 H 弼 們理4 / k - /4*v Uft丿 1D7 , 片巧也丁八柯片*河理孑在樹莓派系統(tǒng)里,其實對 USB 口是有區(qū)分的,反復插拔 USB,并執(zhí)行上面的命令,可以找 出系統(tǒng)對USB

12、 口的命名規(guī)律,如下圖所示:不論怎樣插拔USB,端口自身都是上面的編號,因此,只要給這幾個編號指定別名就可以了2 編輯配置文件執(zhí)行命令:sudo vi /etc/udev/rules.d/99-com.rules在文件末尾加入下面內容,這里的SYMLINK += “ device* ”可以改為KERNEL="fKERNELS=KERNEL=PKERMELS=KERNEL=,KFRNFIS=KFRNFI="KFRMFIS=SYMLINK += “ com* ”更為方便。(看個人習慣)川 ODE : = h,9777M, SYMLrNK+=',MODE:9777&quo

13、t;,SYMLTNK+=fMO)F : =" 9777" ,SYMl INK+=btpsMbrtPLas97不砒耳LI32日?/OiQ以上幾句話的意思就是為 USB編號指定別名。3 重啟服務執(zhí)行命令:sudo /etc/i nit.d/udev restartpiraspberr/pi:-/NyProgram/w_seund $ stdo /etc/init.d/udev restart Res La r tiny udev (via s ternett J: udev,SPvit4.4 查看結果5.命令:1.:q2:q!3. :wq4. :w5. h6. j7. k8.I

14、執(zhí)行命令:Is - /dev |grep ttyUSB*piraspber rypi:-/MyProgrm/u sound $ Is -1 /dev | gretJ ttUSB1 rwxrwx1rootroot7Jun1914:63deviceO->ttyUSBl1rwxrwx rwx1rootroot7JunL914:01devlcel->ttyUSBO1rwxrxrw>1rootroot7Jun1914:03deviceAttyUSB2crwxrwx rw>1rootdlalout188.0Jun1914:G1rtyUSBGc rwx rwx rwx1raordla

15、louT18B(1Jun1914:03ttyUSBlcrwxrwxrwx1rootdial out13fi(艮抽閃:IQ也諭111121 j 018這是一些編輯樹莓派的簡單命令,可以參考:直接退出強制退出,不保存保存退出保存光標左移光標下移光標上移光標右移9.i插入,在光標前10.a插入,在光標后11.d刪除網絡通信TCP輸入節(jié)點在項目中的網絡通信就是指 TCP通信了,服務端開啟一個服務,我們只需要去連接他,然后拖入一個輸入節(jié)點,如圖:輸入端接受服務端傳來的通信協(xié)議,經過函數(shù),處理數(shù)據(jù)。12TCP輸出節(jié)點在之前的變燈中,大家可能注意到了,在最后有連接TCp的輸出節(jié)點,沒錯;發(fā)送到服務器的協(xié)議也是這樣,連接delay節(jié)點,保證結果正確,最快連接一個TCP輸出節(jié)點,將列車位置發(fā)送到服務端。遲遲SCO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論