Пояснительная записка (1194880), страница 14
Текст из файла (страница 14)
if(Top_SNR<QVariant(Result).toDouble()){
Top_SNR=QVariant(Result).toDouble();
}
if(Bottom_SNR>QVariant(Result).toDouble()){
Bottom_SNR=QVariant(Result).toDouble();
}
SNR+=QVariant(Result).toDouble();
SNR_counter++;
}
if(temp.contains("drop packet because already in Rx")){
collision_num++;
}
if(temp.contains("drop packet because already in Tx")){
collision_num++;
}
}
}
if(Fil.fileName().contains(".xml")){
DelayAverage=DelayAverage/counter;
JitterAverage=JitterAverage/counter;
BitRateTX=BitRateTX/counter;
BitRateRX=BitRateRX/counter;
DelayTotal.append(DelayAverage);
JitterTotal.append(JitterAverage);
rxPacketsTotal.append(rxPacketsSum);
txPacketsTotal.append(txPacketsSum);
PDR_Routing_Total.append(rxPacketsSum/txPacketsSum);
lostPacketsTotal.append(lostPacketsSum);
BitRateTX_Total.append(BitRateTX);
BitRateRX_Total.append(BitRateRX);
Jitter_Mod_Total.append(JitterMod_index/1000.);
Delay_Mod_Total.append(JitterMod_index/1000.);
DelayHist_Total.append(DelayHist);
JitterHist_Total.append(JitterHist);
}
if(Fil.fileName().contains(".csv")){
PDR_BSM=PDR_BSM/(counter-11);
MacPhy_Ovehread=MacPhy_Ovehread/(counter-11);
Goodput=Goodput/(counter-11);
PDR_BSM_Total.append(PDR_BSM);
MacPhy_Ovehread_Total.append(MacPhy_Ovehread);
Goodput_Total.append(Goodput);
}
if(Fil.fileName().contains(".nig")){
RSSI_Prop=RSSI_Prop/RSSI_prop_counter;
RSSI_Alt=RSSI_Alt/RSSI_alt_counter;
SNR=SNR/SNR_counter;
RSSI_Alt_W=RSSI_Alt_W/RSSI_alt_counter;
RSSI_prop_Total.append(RSSI_Prop);
RSSI_alt_Total.append(RSSI_Alt);
RSSI_alt_W_Total.append(RSSI_Alt_W);
SNR_Total.append(SNR);
Collisions_Total.append(collision_num);
Top_RSSI_Prop_Total.append(Top_RSSI_Prop);
Bottom_RSSI_Prop_Total.append(Bottom_RSSI_Prop);
Top_RSSI_Alt_Total.append(Top_RSSI_Alt);
Bottom_RSSI_Alt_Total.append(Bottom_RSSI_Alt);
Top_RSSI_Alt_W_Total.append(Top_RSSI_Alt_W);
Bottom_RSSI_Alt_W_Total.append(Bottom_RSSI_Alt_W);
Top_SNR_Total.append(Top_SNR);
Bottom_SNR_Total.append(Bottom_SNR);
}
Fil.close();
}
QString Query="/";
QString buff="";
int pos1=0;
for(int i=0;i<4;i++){
pos1=FileNames[0].indexOf(Query,pos1)+Query.length();
}
for(int i=0;i<6;i++){
buff.append(FileNames[0][pos1+i]);
}
Query=buff;
Fil.setFileName(buff+".txt");
Fil.open(QIODevice::WriteOnly | QIODevice::Text);
QTextStream Out;
Out.setDevice(&Fil);
Out<<"Simul Name"<<'\t'<<
"PDR_Routing"<<'\t'<<
"Goodput"<<'\t'<<
"Mac/Phy Overhead"<<'\t'<<
"Dealy average"<<'\t'<<
"Jitter average"<<'\t'<<
"RSSI_Prop Dbm"<<'\t'<<
"RSSI_Prop_Top Dbm"<<'\t'<<
"RSSI_Prop_Bottom Dbm"<<'\t'<<
"RSSI_Alt Dbm"<<'\t'<<
"RSSI_Alt_Top Dbm"<<'\t'<<
"RSSI_Alt_Bottom Dbm"<<'\t'<<
"RSSI_Alt W"<<'\t'<<
"RSSI_Alt_Top W"<<'\t'<<
"RSSI_Alt_Bottom W"<<'\t'<<
"SNR Dbm"<<'\t'<<
"SNR_Top Dbm"<<'\t'<<
"SNR_Bottom Dbm"<<'\t'<<
"Collisions"<<'\t'<<
"TX Bitrate"<<'\t'<<
"RX Bitrate"<<'\t'<<
"RX packets"<<'\t'<<
"TX packets"<<'\t'<<
"Lost packets"<<'\n';
for(int i=0;i<FileNames.count()/3;i++){
buff="";
temp=FileNames[i*3];
for(int j=pos1;j<temp.length();j++){
buff.append(temp[j]);
}
buff.chop(4);
Out<<buff<<'\t'<<
QVariant(PDR_Routing_Total[i]).toString().replace(".",",")<<'\t'<<
QVariant(Goodput_Total[i]).toString().replace(".",",")<<'\t'<<
QVariant(MacPhy_Ovehread_Total[i]).toString().replace(".",",")<<'\t'<<
QVariant(DelayTotal[i]).toString().replace(".",",")<<'\t'<<
QVariant(JitterTotal[i]).toString().replace(".",",")<<'\t'<<
QVariant(RSSI_prop_Total[i]).toString().replace(".",",")<<'\t'<<
QVariant(Top_RSSI_Prop_Total[i]).toString().replace(".",",")<<'\t'<<
QVariant(Bottom_RSSI_Prop_Total[i]).toString().replace(".",",")<<'\t'<<
QVariant(RSSI_alt_Total[i]).toString().replace(".",",")<<'\t'<<
QVariant(Top_RSSI_Alt_Total[i]).toString().replace(".",",")<<'\t'<<
QVariant(Bottom_RSSI_Alt_Total[i]).toString().replace(".",",")<<'\t'<<
QVariant(10*log10(RSSI_alt_W_Total[i]*1000)).toString().replace(".",",")<<'\t'<<
QVariant(10*log10(Top_RSSI_Alt_W_Total[i]*1000)).toString().replace(".",",")<<'\t'<<
QVariant(10*log10(Bottom_RSSI_Alt_W_Total[i]*1000)).toString().replace(".",",")<<'\t'<<
QVariant(SNR_Total[i]).toString().replace(".",",")<<'\t'<<
QVariant(Top_SNR_Total[i]).toString().replace(".",",")<<'\t'<<
QVariant(Bottom_SNR_Total[i]).toString().replace(".",",")<<'\t'<<
QVariant(Collisions_Total[i]).toString().replace(".",",")<<'\t'<<
QVariant(BitRateTX_Total[i]).toString().replace(".",",")<<'\t'<<
QVariant(BitRateRX_Total[i]).toString().replace(".",",")<<'\t'<<
rxPacketsTotal[i]<<'\t'<<
txPacketsTotal[i]<<'\t'<<
lostPacketsTotal[i]<<'\n';
}
Fil.close();
Fil.setFileName(Query+"_Histogramms"+".txt");
Fil.open(QIODevice::WriteOnly | QIODevice::Text);
for(int i=0;i<FileNames.count()/3;i++){
buff="";
temp=FileNames[i*3];
for(int j=pos1;j<temp.length();j++){
buff.append(temp[j]);
}
buff.chop(4);
Out<<buff<<'\n';
Out<<"Start Delay"<<'\t';
for(int j=0;j<DelayHist_Total[i].count();j++){
buff=QVariant(double(j)/1000.).toString();
buff.replace(".",",");
Out<<buff<<'\t';
}
Out<<'\n';
Out<<"Count Delay"<<'\t';
for(int j=0;j<DelayHist_Total[i].count();j++){
Out<<DelayHist_Total[i][j]<<'\t';
}
Out<<'\n';
Out<<"Start Jitter"<<'\t';
for(int j=0;j<JitterHist_Total[i].count();j++){
buff=QVariant(double(j)/1000.).toString();
buff.replace(".",",");
Out<<buff<<'\t';
}
Out<<'\n';
Out<<"Count Jitter"<<'\t';
for(int j=0;j<JitterHist_Total[i].count();j++){
Out<<JitterHist_Total[i][j]<<'\t';
}
Out<<'\n'<<'\n'<<'\n';
}
Fil.close();
QMessageBox::information(0,"Congratulations","Processing complete");
}
Приложение В
(справочное)
Листинг программы для экспорта данных в MS Excel
Sub Start()
Application.ScreenUpdating = False
Call ОбработкаФайловИзПапки
Dim i, n As Integer
Dim rran As String
n = 2
For i = 2 To Worksheets("a").Range("B1").Value + 1
rran = "$D$" & n
Call GetIt(Worksheets("a").Range("B" & i).Value, rran)
n = n + 21
Range("B2").Select
Next i
Application.ScreenUpdating = True
Range("B2").Select
End Sub
Sub GetIt(ByVal path As String, ByVal ran As String)
path = "TEXT;" & path
ActiveCell.Select
With ActiveSheet.QueryTables.Add(Connection:= _
path, _
Destination:=Range(ran))
.Name = "City 13"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 866
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
Sub ОбработкаФайловИзПапки()
On Error Resume Next
Dim folder$, coll As Collection
folder$ = ThisWorkbook.path & "\Turkish\"
If Dir(folder$, vbDirectory) = "" Then
Exit Sub
End If
Set coll = FilenamesCollection(folder$, "*.txt")
If coll.Count = 0 Then
Exit Sub
End If
Dim i As Integer
i = 2
For Each file In coll
ActiveWorkbook.Worksheets("a").Range("B" & i).Value = file
i = i + 1
Next
ActiveWorkbook.Worksheets("a").Range("B1").Value = i - 2
End Sub
Function FilenamesCollection(ByVal FolderPath As String, Optional ByVal Mask As String = "", _
Optional ByVal SearchDeep As Long = 999) As Collection
Set FilenamesCollection = New Collection
Set FSO = CreateObject("Scripting.FileSystemObject")
GetAllFileNamesUsingFSO FolderPath, Mask, FSO, FilenamesCollection, SearchDeep
Set FSO = Nothing: Application.StatusBar = False
End Function
Function GetAllFileNamesUsingFSO(ByVal FolderPath As String, ByVal Mask As String, ByRef FSO, _ByRef FileNamesColl As Collection, ByVal SearchDeep As Long)
On Error Resume Next: Set curfold = FSO.GetFolder(FolderPath)
If Not curfold Is Nothing Then
For Each fil In curfold.Files
If fil.Name Like "*" & Mask Then FileNamesColl.Add fil.path
Next
SearchDeep = SearchDeep - 1
If SearchDeep Then
For Each sfol In curfold.SubFolders
GetAllFileNamesUsingFSO sfol.path, Mask, FSO, FileNamesColl, SearchDeep
Next
End If
Set fil = Nothing: Set curfold = Nothing
End If
End Function
Function ReadTXTfile(ByVal filename As String) As String
Set FSO = CreateObject("scripting.filesystemobject")
Set ts = FSO.OpenTextFile(filename, 1, True): ReadTXTfile = ts.ReadAll: ts.Close
Set ts = Nothing: Set FSO = Nothing
End Function















