correction of bugs

exception KeyError type in service sheet not correctly catched
print Request.mode instead of Requestmode (not defined at this point)

selection of modes did not respect min spacing criterium:
constraint added

transmission_main did not give SNR in 0.1 nm: added in std out

Signed-off-by: EstherLerouzic <esther.lerouzic@orange.com>
This commit is contained in:
EstherLerouzic
2019-04-10 17:55:02 +01:00
parent 9c440764c7
commit cdd4c571b0
3 changed files with 10 additions and 3 deletions

View File

@@ -50,11 +50,14 @@ class Transceiver(Node):
for c in spectral_info.carriers] for c in spectral_info.carriers]
self.raw_snr = [lin2db(divide(c.power.signal, c.power.nli+c.power.ase)) self.raw_snr = [lin2db(divide(c.power.signal, c.power.nli+c.power.ase))
for c in spectral_info.carriers] for c in spectral_info.carriers]
self.raw_snr_01nm = [snr - ratio for snr, ratio
in zip(self.raw_snr, ratio_01nm)]
self.osnr_ase = self.raw_osnr_ase self.osnr_ase = self.raw_osnr_ase
self.osnr_ase_01nm = self.raw_osnr_ase_01nm self.osnr_ase_01nm = self.raw_osnr_ase_01nm
self.osnr_nli = self.raw_osnr_nli self.osnr_nli = self.raw_osnr_nli
self.snr = self.raw_snr self.snr = self.raw_snr
self.snr_01nm = self.raw_snr_01nm
def update_snr(self, *args): def update_snr(self, *args):
""" """
@@ -74,6 +77,8 @@ class Transceiver(Node):
self.raw_snr, self.baud_rate)) self.raw_snr, self.baud_rate))
self.osnr_ase_01nm = list(map(lambda x:snr_sum(x,12.5e9,snr_added), self.osnr_ase_01nm = list(map(lambda x:snr_sum(x,12.5e9,snr_added),
self.raw_osnr_ase_01nm)) self.raw_osnr_ase_01nm))
self.snr_01nm = list(map(lambda x:snr_sum(x,12.5e9,snr_added),
self.raw_snr_01nm))
@property @property
def to_json(self): def to_json(self):
@@ -99,12 +104,14 @@ class Transceiver(Node):
snr = round(mean(self.snr),2) snr = round(mean(self.snr),2)
osnr_ase = round(mean(self.osnr_ase),2) osnr_ase = round(mean(self.osnr_ase),2)
osnr_ase_01nm = round(mean(self.osnr_ase_01nm), 2) osnr_ase_01nm = round(mean(self.osnr_ase_01nm), 2)
snr_01nm = round(mean(self.snr_01nm),2)
return '\n'.join([f'{type(self).__name__} {self.uid}', return '\n'.join([f'{type(self).__name__} {self.uid}',
f' OSNR ASE (0.1nm, dB): {osnr_ase_01nm:.2f}', f' OSNR ASE (0.1nm, dB): {osnr_ase_01nm:.2f}',
f' OSNR ASE (signal bw, dB): {osnr_ase:.2f}', f' OSNR ASE (signal bw, dB): {osnr_ase:.2f}',
f' SNR total (signal bw, dB): {snr:.2f}']) f' SNR total (signal bw, dB): {snr:.2f}',
f' SNR total (0.1nm, dB): {snr_01nm:.2f}'])
def __call__(self, spectral_info): def __call__(self, spectral_info):
self._calc_snr(spectral_info) self._calc_snr(spectral_info)

View File

@@ -429,7 +429,7 @@ def propagate_and_optimize_mode(path, req, equipment, show=False):
# at least 1 baudrate can be tested wrt spacing # at least 1 baudrate can be tested wrt spacing
for b in baudrate_to_explore : for b in baudrate_to_explore :
modes_to_explore = [m for m in equipment['Transceiver'][req.tsp].mode modes_to_explore = [m for m in equipment['Transceiver'][req.tsp].mode
if m['baud_rate'] == b] if m['baud_rate'] == b and float(m['min_spacing'])<= req.spacing]
modes_to_explore = sorted(modes_to_explore, modes_to_explore = sorted(modes_to_explore,
key = lambda x: x['bit_rate'], reverse=True) key = lambda x: x['bit_rate'], reverse=True)
# print(modes_to_explore) # print(modes_to_explore)

View File

@@ -73,7 +73,7 @@ class Request_element(Element):
Requestmode = None Requestmode = None
self.mode = Request.mode self.mode = Request.mode
except KeyError: except KeyError:
msg = f'Request Id: {self.request_id} - could not find tsp : \'{Request.trx_type}\' with mode: \'{Requestmode}\' in eqpt library \nComputation stopped.' msg = f'Request Id: {self.request_id} - could not find tsp : \'{Request.trx_type}\' with mode: \'{Request.mode}\' in eqpt library \nComputation stopped.'
#print(msg) #print(msg)
logger.critical(msg) logger.critical(msg)
exit() exit()