本視窗共分成三部分
(1)Network網路監控
(2)Schedule
預約排程
(3) Local
本地端播放
網路監控是我們整個監控系統的主要部分,而預約排程是讓使用者能夠自訂監控和結束時間
的功能。本地端播放則提供使用者日後檢視之前監控動作所錄下畫面。
NETWORK
網路監控

(圖五)
網路播放面板
流程說明:
使用者在LineEdit(1~4)中輸入
ip , port , user name , password
按下PushBotton(5)確認後送出Clicked()
signal,執行confirmSlot()。
首先先檢查是否
有輸入值,若無則不產生反應,有則把輸入值讀入並轉換成檢查帳號密碼所需之格
式。之後彈出QMessageBox,若使用者按Confirm確認輸入資料正確,則離開這個
Slot ;反之則清除讀入值
,並把LineEdit的顯示值清空。
流程和code如下圖所示
:

參考指令
QLineEdit::displayText () const : Returns the displayed text.
void QLineEdit::clear ()
[virtual slot] : Clears
the contents of the line edit.
當使用者確認輸入資料無誤後
,按下PushBotton(6)連線 ,
執行serverSlot()。首先檢查有沒
有輸入資料,若無則離開這個Slot
,
若有則使用一執行緒執行cli
,要求和server建立TCP連
線
,
若帳號密碼無誤 , TCP連線建立
,
則顯示「OK」 DSP板開始壓檔案。否則顯示
「Idel」
表示TCP連線失敗。
流程如下圖所示 :

顯示「OK」 TCP連線建立後,按下PushBotton(7)監控
, 執行connectnet()
slot , 讀取系統時
間
,
以系統時間為檔名儲存監控影像。之後以兩個執行緒分別向server要求接受監控畫面
和連結播放器。
流程如下圖所示:

PushBotton (8)暫停 (9)繼續 (10) 中斷 :
當使用者按下(8)暫停鈕,設定全域變數aoq=0;
當aoq=0,
播放器暫停播放。當(9)繼續鈕被按下,aoq=1,此時播放器繼續播放。
PushBotton(10)中斷鈕被按下
,
則用一執行緒結束和server的連線。
PushBotton (11)被按下,彈出對話框供使用者選取顏色。若使用者選
取有效之顏色並確定,則設定面板顏色,否則則離開Slot。
流程如下 :

Schedule
預約排程

(圖六)
預約排程面板
流程說明 :
(1)
RadioButton 讓使用者選擇要預約網路監控或本地端播放。假若選擇預約網路監控,
則事先須先在監控面板輸入完成帳號密碼等資料。若預約本地播放,則須先選擇好欲
播放之影片。
(2)~(6)SpinBox提供使用者輸入欲預約時間。按下(7) 確定,觸發scheduleSlot()讀入所輸入時
間,設定一QTimer
Class每分鐘去觸發 schedulecompare() 一次。schedulecompare()讀取系
統時間,和使用者所輸入時間做比較。時間相符,若選擇網路監控則觸發 serverSlot()和
connectnet(),若選擇本地端播放則觸發
playslot()。若使用者輸入年份為零,則每年的
預約時間都觸發一次,若年和月皆為零,則每月都預約時間都觸發一次。年月日皆為
零,則每天的預約時間皆觸發一次。同理,年月日時皆零,每個小時皆觸發一次。
(8)~(13)
:結束監控/播放動作之功能。使用者輸入結束時間後,按下(13)確定。若系統時
間和輸入時間吻合,則結束之前預約/播放功能。可以提供使用者自行設定欲監控或播放
本地端影片多少時間。

Local
本地端播放

(圖七))本地端播放面板
流程說明 :
(1)~(2)
CheckBox 當使用者選取檔案後,可選擇是否放大播放視窗和是否重複播放影片:傳送
是否放大視窗和重複播放設定參數至播放器
。
(3)
SliderBar
提供使用者選擇欲播放影片之速度,單位為
(張/每秒)
所選擇之速度顯示在
LCD上
: 傳送播放速度參數至播放器
。
(4)~(6)
PushBotton 播放控制選項
: 提供使用者開始播放
、暫停播放、繼續播放影片之功能。
相關code及動作流程
:

|