基于Wifi的電子看板的語音系統(tǒng)的設計與實現(xiàn)
壓縮的數(shù)據(jù)通過idudpclient控件傳輸。參考代碼如下:
idudpclient 1.host:=IP
idudoclient 1.PORT:=PORT
idudoclient 1.SendBuffer
idudpclient控件brodcastenable屬性可以打開廣播。采用廣播方式,所有下位機都可以接收到上位機發(fā)出的數(shù)據(jù)包。
Delphi使用IdUDPServer控件監(jiān)聽端口讀取下位機聲音數(shù)據(jù),解碼調(diào)用waveOutOpen(),waveOutPrepareHeader(),wave()utWrit()播放聲音。程序流程參如圖4所示。
圖4 上位機聲音采集及傳輸流程圖
3 下位機程序設計
下位機為分布在生產(chǎn)線或者車間內(nèi)的管理看板。采用linux操作系統(tǒng)。Linux操作系統(tǒng)下把硬件作為一個設備文件。文件位于dev目錄下,文件名為dsp,讀取聲音使用read函數(shù),播放使用write函數(shù)。下位機軟件同樣啟動兩個線程一個監(jiān)聽相應的端口獲取壓縮后的聲音數(shù)據(jù)并解壓播放,另外一個線程采集聲卡數(shù)據(jù)壓縮后傳送。
1)首先打開設備文件:
fd=open("/dev/dsp",oflag);設置采樣位數(shù)、頻率等。
2)建立線程1:pthread_create.
建立udp網(wǎng)絡連接sockfd()
讀取聲卡:
read(fd,inbuf,sizeof(inbuf));
3)adpcm編碼并傳輸
4)建立線程2
建立udp網(wǎng)絡連接監(jiān)聽端口,獲取網(wǎng)絡數(shù)據(jù),解壓縮。
寫入聲卡設備:
write(fd,outbuf,sizeof(outbuf));
程序流程參如圖5所示。
圖5 下位機程序框圖
結(jié)論
通過實踐,新型管理看板能實時、準確的反映現(xiàn)場的情況。改善了生產(chǎn)及管理信息傳遞性,并且改善了傳統(tǒng)監(jiān)控的模式,看板安裝方便,無須考慮布線可以根據(jù)已有的無線路由自適應組網(wǎng)。此外聲音廣播及上下位機實時語音通話方便了管理人員及操作人員。
評論