新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 數(shù)據(jù)傳輸進(jìn)程子面板

數(shù)據(jù)傳輸進(jìn)程子面板

作者: 時(shí)間:2017-01-06 來(lái)源:網(wǎng)絡(luò) 收藏
一.概述

Tcp傳輸文件夾的任務(wù)也完成了,想要把程序做的完美一點(diǎn),于是想起了win8中在copy文件或文件夾時(shí)的傳輸進(jìn)程面板,顯示了要從何位置傳輸多少文件到何位置,已傳輸多少的進(jìn)度條還有顯示實(shí)時(shí)速度和平均速度的圖標(biāo),于是我借鑒了win8的做法,想要實(shí)現(xiàn)這樣一個(gè)功能,使得數(shù)據(jù)傳輸過(guò)程更加清晰。下圖為win8系統(tǒng)傳輸文件的面板

本文引用地址:http://2s4d.com/article/201701/336636.htm


二.需求分析

做一個(gè)一樣的子面板并不難,然而子面板和主程序的通信與控制將成為重點(diǎn)。類似于上面的面板,子面板需要以下的數(shù)據(jù)信息:被傳輸?shù)奈募ɑ蛭募A)名稱,數(shù)量,絕對(duì)路徑,接受的它的IP地址,當(dāng)前已傳輸?shù)谋壤?,?shí)時(shí)傳輸速度,平均速度。以上信息都要通過(guò)主程序傳輸給子面板,傳輸方式就是我上一篇文章中講到的隊(duì)列。

三.具體程序

程序的程序設(shè)計(jì)思路框圖沒(méi)什么可說(shuō)的,就是在tcp的傳輸子循環(huán)中把生成的上面所需要的信息組成一個(gè)簇以隊(duì)列的方式發(fā)送給子面板,子面板經(jīng)過(guò)相關(guān)計(jì)算后顯示在子面板的前面板,主程序接收后同時(shí)關(guān)閉子面板即可,下面分別說(shuō)以下每一部分的具體程序框圖。

1.主程序部分

首先主程序中通過(guò)一系列的數(shù)據(jù)組合,還有類似已傳輸量,總運(yùn)行時(shí)間,這些數(shù)據(jù)都需要通過(guò)移位寄存器進(jìn)行累計(jì),最后組成一個(gè)簇,然后發(fā)給隊(duì)列,這個(gè)簇包含以下信息(按順序敘述):已傳輸文件個(gè)數(shù),初始時(shí)間(開(kāi)始傳輸?shù)挠?jì)時(shí)時(shí)間),文件路徑,客戶IP地址,文件個(gè)數(shù),文件總量(B),已傳輸總量(B),每次傳輸量形成的數(shù)組,實(shí)時(shí)速度(發(fā)送每一小段的速度)構(gòu)成的數(shù)組,當(dāng)前時(shí)間(計(jì)時(shí)器計(jì)時(shí)的當(dāng)前時(shí)間);


接下來(lái)用隊(duì)列發(fā)送數(shù)據(jù)給子Vi,隊(duì)列的數(shù)據(jù)格式為簇的格式,同時(shí)我們需要設(shè)定該循環(huán)停止的條件就是n個(gè)文件中的n-1個(gè)文件已經(jīng)傳輸完畢,并且第n個(gè)結(jié)束傳輸信號(hào)為真,這樣就關(guān)閉子Vi,然后關(guān)閉該循環(huán)。


2.子面板部分

經(jīng)過(guò)設(shè)計(jì),子面板的主界面如下圖所示


上圖中進(jìn)度條和圖標(biāo)顯示的很明白,其中兩個(gè)藍(lán)色按鈕本來(lái)是模仿win8中的兩個(gè)按鈕分別用來(lái)暫停傳輸和取消傳輸?shù)模怯捎诔绦蚰壳斑€木有做這一部分,所以這個(gè)問(wèn)題以后再說(shuō),兩個(gè)按鈕左邊的空白就是顯示從何處傳輸何數(shù)據(jù)給何地址的空白,下面對(duì)后面板程序做一簡(jiǎn)單說(shuō)明。

首先說(shuō)一下子Vi的整體框圖,它一共包含三部分,如下圖所示,用一個(gè)順序結(jié)構(gòu)將三部分分開(kāi):初始化,數(shù)據(jù)計(jì)算顯示以及程序是否關(guān)閉的程序。第一部分就是設(shè)定速度圖表的顏色以及按鈕初始化;第三部分主要是根據(jù)文件是否傳輸完畢作為條件結(jié)構(gòu)的輸入來(lái)判斷并關(guān)閉子Vi前面板和停止運(yùn)行子Vi,下面主要說(shuō)一下第二部分,數(shù)據(jù)的計(jì)算和處理里面的圖表的描繪。


其他的數(shù)據(jù)大多是直接傳輸顯示的,還有幾個(gè)例如平均速度,文件路徑等是經(jīng)過(guò)了一定的處理后在界面上顯示的,而圖表相對(duì)麻煩一點(diǎn)


圖表的x軸是已經(jīng)傳輸?shù)陌俜直?,總長(zhǎng)為100%,這需要把每一小塊傳輸結(jié)束后所傳輸?shù)目偭坑脭?shù)組保存,然后通過(guò)一個(gè)for循環(huán)讓數(shù)組的每一個(gè)值除以總的需要傳輸?shù)牧烤褪莤軸的數(shù)據(jù);而y軸顯示的是x軸所對(duì)應(yīng)的每一小塊傳輸?shù)臅r(shí)候的實(shí)時(shí)速度,然后也將它們累計(jì)起來(lái)成一個(gè)數(shù)組作為xy圖的y輸入數(shù)組即可,這一部分實(shí)現(xiàn)以以后程序就基本結(jié)束了。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 數(shù)據(jù)傳輸子面

評(píng)論


技術(shù)專區(qū)

關(guān)閉