Commit 6b8d7abb authored by Robert Schmidt's avatar Robert Schmidt

CI: show correct Tx Processing in HTML, add processing count number

parent aab8ad26
...@@ -4,16 +4,14 @@ ...@@ -4,16 +4,14 @@
Title : Processing Time (us) Title : Processing Time (us)
ColNames : ColNames :
- Metric - Metric
- Average - Average; Max; Count
- Max - Average vs Reference Deviation (Reference Value; Acceptability Threshold)
- Average vs Reference Deviation (Reference Value ; Acceptability Threshold)
Ref : Ref :
feprx : 120.0 feprx : 120.0
feptx_prec : 8.0 feptx_prec : 8.0
feptx_ofdm : 50.0 feptx_ofdm : 50.0
feptx_total : 75.0 feptx_total : 75.0
L1 Tx processing thread 0 : 300.0 L1 Tx processing : 300.0
L1 Tx processing thread 1 : 300.0
DLSCH encoding : 230.0 DLSCH encoding : 230.0
L1 Rx processing : 175.0 L1 Rx processing : 175.0
PUSCH inner-receiver : 100.0 PUSCH inner-receiver : 100.0
...@@ -25,8 +23,7 @@ Threshold : ...@@ -25,8 +23,7 @@ Threshold :
feptx_prec : 1.25 feptx_prec : 1.25
feptx_ofdm : 1.25 feptx_ofdm : 1.25
feptx_total : 1.25 feptx_total : 1.25
L1 Tx processing thread 0 : 1.25 L1 Tx processing : 1.25
L1 Tx processing thread 1 : 1.25
DLSCH encoding : 1.25 DLSCH encoding : 1.25
L1 Rx processing : 1.25 L1 Rx processing : 1.25
PUSCH inner-receiver : 1.25 PUSCH inner-receiver : 1.25
......
...@@ -4,16 +4,14 @@ ...@@ -4,16 +4,14 @@
Title : Processing Time (us) Title : Processing Time (us)
ColNames : ColNames :
- Metric - Metric
- Average - Average; Max; Count
- Max - Average vs Reference Deviation (Reference Value; Acceptability Threshold)
- Average vs Reference Deviation (Reference Value ; Acceptability Threshold)
Ref : Ref :
feprx : 60.0 feprx : 60.0
feptx_prec : 8.0 feptx_prec : 8.0
feptx_ofdm : 50.0 feptx_ofdm : 50.0
feptx_total : 75.0 feptx_total : 75.0
L1 Tx processing thread 0 : 300.0 L1 Tx processing : 300.0
L1 Tx processing thread 1 : 300.0
DLSCH encoding : 230.0 DLSCH encoding : 230.0
L1 Rx processing : 175.0 L1 Rx processing : 175.0
PUSCH inner-receiver : 100.0 PUSCH inner-receiver : 100.0
...@@ -25,8 +23,7 @@ Threshold : ...@@ -25,8 +23,7 @@ Threshold :
feptx_prec : 1.25 feptx_prec : 1.25
feptx_ofdm : 1.25 feptx_ofdm : 1.25
feptx_total : 1.25 feptx_total : 1.25
L1 Tx processing thread 0 : 1.25 L1 Tx processing : 1.25
L1 Tx processing thread 1 : 1.25
DLSCH encoding : 1.25 DLSCH encoding : 1.25
L1 Rx processing : 1.25 L1 Rx processing : 1.25
PUSCH inner-receiver : 1.25 PUSCH inner-receiver : 1.25
......
...@@ -478,21 +478,19 @@ class HTMLManagement(): ...@@ -478,21 +478,19 @@ class HTMLManagement():
self.htmlFile.write(' </tr>\n') self.htmlFile.write(' </tr>\n')
self.htmlFile.write(' <tr bgcolor = "#33CCFF" >\n') self.htmlFile.write(' <tr bgcolor = "#33CCFF" >\n')
self.htmlFile.write(' <th colspan="3">'+ DataLog['ColNames'][0] +'</th>\n') self.htmlFile.write(' <th colspan="3">'+ DataLog['ColNames'][0] +'</th>\n')
self.htmlFile.write(' <th>' + DataLog['ColNames'][1] + '</th>\n') self.htmlFile.write(' <th colspan="2">' + DataLog['ColNames'][1] + '</th>\n')
self.htmlFile.write(' <th>' + DataLog['ColNames'][2] + '</th>\n') self.htmlFile.write(' <th colspan=' + str(1+self.htmlUEConnected) + '>'+ DataLog['ColNames'][2] +'</th>\n')
self.htmlFile.write(' <th colspan=' + str(1+self.htmlUEConnected) + '>'+ DataLog['ColNames'][3] +'</th>\n')
self.htmlFile.write(' </tr>\n') self.htmlFile.write(' </tr>\n')
for k in DataLog['Data']: for k in DataLog['Data']:
# TestRow # TestRow
self.htmlFile.write(' <tr>\n') self.htmlFile.write(' <tr>\n')
self.htmlFile.write(' <td colspan="3" bgcolor = "lightcyan" >' + k + ' </td>\n') self.htmlFile.write(' <td colspan="3" bgcolor = "lightcyan" >' + k + ' </td>\n')
self.htmlFile.write(' <td bgcolor = "lightcyan" >' + DataLog['Data'][k][0] + ' </td>\n') self.htmlFile.write(' <td bgcolor = "lightcyan" >' + DataLog['Data'][k][0] + '; ' + DataLog['Data'][k][1] + '; ' + DataLog['Data'][k][2] + ' </td>\n')
self.htmlFile.write(' <td bgcolor = "lightcyan" >' + DataLog['Data'][k][1] + ' </td>\n') if float(DataLog['Data'][k][3])> DataLog['Threshold'][k]:
if float(DataLog['Data'][k][2])> DataLog['Threshold'][k]: self.htmlFile.write(' <th bgcolor = "red" >' + DataLog['Data'][k][3] + ' (Ref = ' + str(DataLog['Ref'][k]) + ' ; Thres = ' +str(DataLog['Threshold'][k])+') ' + '</th>\n')
self.htmlFile.write(' <th bgcolor = "red" >' + DataLog['Data'][k][2] + ' (Ref = ' + str(DataLog['Ref'][k]) + ' ; Thres = ' +str(DataLog['Threshold'][k])+') ' + '</th>\n')
else: else:
self.htmlFile.write(' <th bgcolor = "green" ><font color="white">' + DataLog['Data'][k][2] + ' (Ref = ' + str(DataLog['Ref'][k]) + ' ; Thres = ' +str(DataLog['Threshold'][k])+') ' + '</th>\n') self.htmlFile.write(' <th bgcolor = "green" ><font color="white">' + DataLog['Data'][k][3] + ' (Ref = ' + str(DataLog['Ref'][k]) + ' ; Thres = ' +str(DataLog['Threshold'][k])+') ' + '</th>\n')
self.htmlFile.write(' </tr>\n') self.htmlFile.write(' </tr>\n')
self.htmlFile.close() self.htmlFile.close()
......
...@@ -1125,12 +1125,13 @@ class RANManagement(): ...@@ -1125,12 +1125,13 @@ class RANManagement():
datalog_rt_stats['Data']={} datalog_rt_stats['Data']={}
if len(real_time_stats)!=0: #check if dictionary is not empty if len(real_time_stats)!=0: #check if dictionary is not empty
for k in real_time_stats: for k in real_time_stats:
tmp=re.match(r'^(?P<metric>.*):\s+(?P<avg>\d+\.\d+) us;\s+\d+;\s+(?P<max>\d+\.\d+) us;',real_time_stats[k]) tmp=re.match(r'^(?P<metric>.*):\s+(?P<avg>\d+\.\d+) us;\s+(?P<count>\d+);\s+(?P<max>\d+\.\d+) us;',real_time_stats[k])
if tmp is not None: if tmp is not None:
metric=tmp.group('metric') metric=tmp.group('metric')
avg=float(tmp.group('avg')) avg=float(tmp.group('avg'))
max=float(tmp.group('max')) max=float(tmp.group('max'))
datalog_rt_stats['Data'][metric]=["{:.0f}".format(avg),"{:.0f}".format(max),"{:.2f}".format(avg/datalog_rt_stats['Ref'][metric])] count=float(tmp.group('count'))
datalog_rt_stats['Data'][metric]=["{:.0f}".format(avg),"{:.0f}".format(max),"{:d}".format(count),"{:.2f}".format(avg/datalog_rt_stats['Ref'][metric])]
#once all metrics are collected, store the data as a class attribute to build a dedicated HTML table afterward #once all metrics are collected, store the data as a class attribute to build a dedicated HTML table afterward
self.datalog_rt_stats=datalog_rt_stats self.datalog_rt_stats=datalog_rt_stats
#check if there is a fail => will render the test as failed #check if there is a fail => will render the test as failed
......
...@@ -20,8 +20,7 @@ gnb : ...@@ -20,8 +20,7 @@ gnb :
feptx_prec: feptx_prec:
feptx_ofdm: feptx_ofdm:
feptx_total: feptx_total:
L1 Tx processing thread 0: L1 Tx processing:
L1 Tx processing thread 1:
DLSCH encoding: DLSCH encoding:
L1 Rx processing: L1 Rx processing:
PUSCH inner-receiver: PUSCH inner-receiver:
...@@ -40,8 +39,7 @@ gnb : ...@@ -40,8 +39,7 @@ gnb :
rt.feptx_ofdm: rt.feptx_ofdm:
rt.feptx_total: rt.feptx_total:
page3: page3:
rt.L1 Tx processing thread 0: rt.L1 Tx processing:
rt.L1 Tx processing thread 1:
rt.DLSCH encoding: rt.DLSCH encoding:
rt.L1 Rx processing: rt.L1 Rx processing:
page4: page4:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment