|
12 | 12 | VDM_UNFREEZE = 0
|
13 | 13 | SYSLOG_IDENTIFIER = "CCmisApi"
|
14 | 14 |
|
| 15 | +VDM_KEY_TO_DB_KEY_PREFIX_MAP = { |
| 16 | + 'Modulator Bias X/I [%]' : 'biasxi', |
| 17 | + 'Modulator Bias X/Q [%]' : 'biasxq', |
| 18 | + 'Modulator Bias X_Phase [%]' : 'biasxp', |
| 19 | + 'Modulator Bias Y/I [%]' : 'biasyi', |
| 20 | + 'Modulator Bias Y/Q [%]' : 'biasyq', |
| 21 | + 'Modulator Bias Y_Phase [%]' : 'biasyp', |
| 22 | + 'CD high granularity, short link [ps/nm]' : 'cdshort', |
| 23 | + 'CD low granularity, long link [ps/nm]' : 'cdlong', |
| 24 | + 'DGD [ps]' : 'dgd', |
| 25 | + 'SOPMD [ps^2]' : 'sopmd', |
| 26 | + 'SOP ROC [krad/s]' : 'soproc', |
| 27 | + 'PDL [dB]' : 'pdl', |
| 28 | + 'OSNR [dB]' : 'osnr', |
| 29 | + 'eSNR [dB]' : 'esnr', |
| 30 | + 'CFO [MHz]' : 'cfo', |
| 31 | + 'Tx Power [dBm]' : 'txcurrpower', |
| 32 | + 'Rx Total Power [dBm]' : 'rxtotpower', |
| 33 | + 'Rx Signal Power [dBm]' : 'rxsigpower' |
| 34 | +} |
| 35 | + |
| 36 | +VDM_SUBTYPE_IDX_MAP= { |
| 37 | + 1: 'highalarm', |
| 38 | + 2: 'lowalarm', |
| 39 | + 3: 'highwarning', |
| 40 | + 4: 'lowwarning', |
| 41 | + 5: 'highalarm_flag', |
| 42 | + 6: 'lowalarm_flag', |
| 43 | + 7: 'highwarning_flag', |
| 44 | + 8: 'lowwarning_flag' |
| 45 | +} |
| 46 | + |
| 47 | + |
15 | 48 | helper_logger = logger.Logger(SYSLOG_IDENTIFIER)
|
16 | 49 |
|
17 | 50 | class CCmisApi(CmisApi):
|
18 | 51 | def __init__(self, xcvr_eeprom):
|
19 | 52 | super(CCmisApi, self).__init__(xcvr_eeprom)
|
20 | 53 |
|
| 54 | + def _update_dict_if_vdm_key_exists(self, dict_to_be_updated, new_key, vdm_dict_key, vdm_subtype_index, lane=1): |
| 55 | + ''' |
| 56 | + This function updates the dictionary with the VDM value if the vdm_dict_key exists. |
| 57 | + @param dict_to_be_updated: the dictionary to be updated. |
| 58 | + @param new_key: the key to be added in dict_to_be_updated. |
| 59 | + @param vdm_dict_key: lookup key in the VDM dictionary. |
| 60 | + @param vdm_subtype_index: the index of the VDM subtype in the VDM page. |
| 61 | + 0 refers to the real time value |
| 62 | + 1 refers to the high alarm threshold |
| 63 | + 2 refers to the low alarm threshold |
| 64 | + 3 refers to the high warning threshold |
| 65 | + 4 refers to the low warning threshold |
| 66 | + 5 refers to the high alarm flag |
| 67 | + 6 refers to the low alarm flag |
| 68 | + 7 refers to the high warning flag |
| 69 | + 8 refers to the low warning flag |
| 70 | + @param lane: the lane number. Default is 1. |
| 71 | +
|
| 72 | + @return: True if the key exists in the VDM dictionary, False if not. |
| 73 | + ''' |
| 74 | + try: |
| 75 | + dict_to_be_updated[new_key] = self.vdm_dict[vdm_dict_key][lane][vdm_subtype_index] |
| 76 | + except KeyError: |
| 77 | + dict_to_be_updated[new_key] = 'N/A' |
| 78 | + helper_logger.log_debug('key {} not present in VDM'.format(new_key)) |
| 79 | + return False |
| 80 | + |
| 81 | + return True |
| 82 | + |
21 | 83 | def get_freq_grid(self):
|
22 | 84 | '''
|
23 | 85 | This function returns the configured frequency grid. Unit in GHz
|
@@ -377,27 +439,10 @@ def get_transceiver_bulk_status(self):
|
377 | 439 | ========================================================================
|
378 | 440 | """
|
379 | 441 | trans_dom = super(CCmisApi,self).get_transceiver_bulk_status()
|
380 |
| - try: |
381 |
| - trans_dom['bias_xi'] = self.vdm_dict['Modulator Bias X/I [%]'][1][0] |
382 |
| - trans_dom['bias_xq'] = self.vdm_dict['Modulator Bias X/Q [%]'][1][0] |
383 |
| - trans_dom['bias_xp'] = self.vdm_dict['Modulator Bias X_Phase [%]'][1][0] |
384 |
| - trans_dom['bias_yi'] = self.vdm_dict['Modulator Bias Y/I [%]'][1][0] |
385 |
| - trans_dom['bias_yq'] = self.vdm_dict['Modulator Bias Y/Q [%]'][1][0] |
386 |
| - trans_dom['bias_yp'] = self.vdm_dict['Modulator Bias Y_Phase [%]'][1][0] |
387 |
| - trans_dom['cd_shortlink'] = self.vdm_dict['CD high granularity, short link [ps/nm]'][1][0] |
388 |
| - trans_dom['cd_longlink'] = self.vdm_dict['CD low granularity, long link [ps/nm]'][1][0] |
389 |
| - trans_dom['dgd'] = self.vdm_dict['DGD [ps]'][1][0] |
390 |
| - trans_dom['sopmd'] = self.vdm_dict['SOPMD [ps^2]'][1][0] |
391 |
| - trans_dom['soproc'] = self.vdm_dict['SOP ROC [krad/s]'][1][0] |
392 |
| - trans_dom['pdl'] = self.vdm_dict['PDL [dB]'][1][0] |
393 |
| - trans_dom['osnr'] = self.vdm_dict['OSNR [dB]'][1][0] |
394 |
| - trans_dom['esnr'] = self.vdm_dict['eSNR [dB]'][1][0] |
395 |
| - trans_dom['cfo'] = self.vdm_dict['CFO [MHz]'][1][0] |
396 |
| - trans_dom['tx_curr_power'] = self.vdm_dict['Tx Power [dBm]'][1][0] |
397 |
| - trans_dom['rx_tot_power'] = self.vdm_dict['Rx Total Power [dBm]'][1][0] |
398 |
| - trans_dom['rx_sig_power'] = self.vdm_dict['Rx Signal Power [dBm]'][1][0] |
399 |
| - except KeyError: |
400 |
| - pass |
| 442 | + |
| 443 | + for vdm_key, trans_dom_key in VDM_KEY_TO_DB_KEY_PREFIX_MAP.items(): |
| 444 | + self._update_dict_if_vdm_key_exists(trans_dom, trans_dom_key, vdm_key, 0) |
| 445 | + |
401 | 446 | trans_dom['laser_config_freq'] = self.get_laser_config_freq()
|
402 | 447 | trans_dom['laser_curr_freq'] = self.get_current_laser_freq()
|
403 | 448 | trans_dom['tx_config_power'] = self.get_tx_config_power()
|
@@ -515,77 +560,12 @@ def get_transceiver_threshold_info(self):
|
515 | 560 | ========================================================================
|
516 | 561 | """
|
517 | 562 | trans_dom_th = super(CCmisApi,self).get_transceiver_threshold_info()
|
518 |
| - try: |
519 |
| - trans_dom_th['biasxihighalarm'] = self.vdm_dict['Modulator Bias X/I [%]'][1][1] |
520 |
| - trans_dom_th['biasxilowalarm'] = self.vdm_dict['Modulator Bias X/I [%]'][1][2] |
521 |
| - trans_dom_th['biasxihighwarning'] = self.vdm_dict['Modulator Bias X/I [%]'][1][3] |
522 |
| - trans_dom_th['biasxilowwarning'] = self.vdm_dict['Modulator Bias X/I [%]'][1][4] |
523 |
| - trans_dom_th['biasxqhighalarm'] = self.vdm_dict['Modulator Bias X/Q [%]'][1][1] |
524 |
| - trans_dom_th['biasxqlowalarm'] = self.vdm_dict['Modulator Bias X/Q [%]'][1][2] |
525 |
| - trans_dom_th['biasxqhighwarning'] = self.vdm_dict['Modulator Bias X/Q [%]'][1][3] |
526 |
| - trans_dom_th['biasxqlowwarning'] = self.vdm_dict['Modulator Bias X/Q [%]'][1][4] |
527 |
| - trans_dom_th['biasxphighalarm'] = self.vdm_dict['Modulator Bias X_Phase [%]'][1][1] |
528 |
| - trans_dom_th['biasxplowalarm'] = self.vdm_dict['Modulator Bias X_Phase [%]'][1][2] |
529 |
| - trans_dom_th['biasxphighwarning'] = self.vdm_dict['Modulator Bias X_Phase [%]'][1][3] |
530 |
| - trans_dom_th['biasxplowwarning'] = self.vdm_dict['Modulator Bias X_Phase [%]'][1][4] |
531 |
| - trans_dom_th['biasyihighalarm'] = self.vdm_dict['Modulator Bias Y/I [%]'][1][1] |
532 |
| - trans_dom_th['biasyilowalarm'] = self.vdm_dict['Modulator Bias Y/I [%]'][1][2] |
533 |
| - trans_dom_th['biasyihighwarning'] = self.vdm_dict['Modulator Bias Y/I [%]'][1][3] |
534 |
| - trans_dom_th['biasyilowwarning'] = self.vdm_dict['Modulator Bias Y/I [%]'][1][4] |
535 |
| - trans_dom_th['biasyqhighalarm'] = self.vdm_dict['Modulator Bias Y/Q [%]'][1][1] |
536 |
| - trans_dom_th['biasyqlowalarm'] = self.vdm_dict['Modulator Bias Y/Q [%]'][1][2] |
537 |
| - trans_dom_th['biasyqhighwarning'] = self.vdm_dict['Modulator Bias Y/Q [%]'][1][3] |
538 |
| - trans_dom_th['biasyqlowwarning'] = self.vdm_dict['Modulator Bias Y/Q [%]'][1][4] |
539 |
| - trans_dom_th['biasyphighalarm'] = self.vdm_dict['Modulator Bias Y_Phase [%]'][1][1] |
540 |
| - trans_dom_th['biasyplowalarm'] = self.vdm_dict['Modulator Bias Y_Phase [%]'][1][2] |
541 |
| - trans_dom_th['biasyphighwarning'] = self.vdm_dict['Modulator Bias Y_Phase [%]'][1][3] |
542 |
| - trans_dom_th['biasyplowwarning'] = self.vdm_dict['Modulator Bias Y_Phase [%]'][1][4] |
543 |
| - trans_dom_th['cdshorthighalarm'] = self.vdm_dict['CD high granularity, short link [ps/nm]'][1][1] |
544 |
| - trans_dom_th['cdshortlowalarm'] = self.vdm_dict['CD high granularity, short link [ps/nm]'][1][2] |
545 |
| - trans_dom_th['cdshorthighwarning'] = self.vdm_dict['CD high granularity, short link [ps/nm]'][1][3] |
546 |
| - trans_dom_th['cdshortlowwarning'] = self.vdm_dict['CD high granularity, short link [ps/nm]'][1][4] |
547 |
| - trans_dom_th['cdlonghighalarm'] = self.vdm_dict['CD low granularity, long link [ps/nm]'][1][1] |
548 |
| - trans_dom_th['cdlonglowalarm'] = self.vdm_dict['CD low granularity, long link [ps/nm]'][1][2] |
549 |
| - trans_dom_th['cdlonghighwarning'] = self.vdm_dict['CD low granularity, long link [ps/nm]'][1][3] |
550 |
| - trans_dom_th['cdlonglowwarning'] = self.vdm_dict['CD low granularity, long link [ps/nm]'][1][4] |
551 |
| - trans_dom_th['dgdhighalarm'] = self.vdm_dict['DGD [ps]'][1][1] |
552 |
| - trans_dom_th['dgdlowalarm'] = self.vdm_dict['DGD [ps]'][1][2] |
553 |
| - trans_dom_th['dgdhighwarning'] = self.vdm_dict['DGD [ps]'][1][3] |
554 |
| - trans_dom_th['dgdlowwarning'] = self.vdm_dict['DGD [ps]'][1][4] |
555 |
| - trans_dom_th['sopmdhighalarm'] = self.vdm_dict['SOPMD [ps^2]'][1][1] |
556 |
| - trans_dom_th['sopmdlowalarm'] = self.vdm_dict['SOPMD [ps^2]'][1][2] |
557 |
| - trans_dom_th['sopmdhighwarning'] = self.vdm_dict['SOPMD [ps^2]'][1][3] |
558 |
| - trans_dom_th['sopmdlowwarning'] = self.vdm_dict['SOPMD [ps^2]'][1][4] |
559 |
| - trans_dom_th['pdlhighalarm'] = self.vdm_dict['PDL [dB]'][1][1] |
560 |
| - trans_dom_th['pdllowalarm'] = self.vdm_dict['PDL [dB]'][1][2] |
561 |
| - trans_dom_th['pdlhighwarning'] = self.vdm_dict['PDL [dB]'][1][3] |
562 |
| - trans_dom_th['pdllowwarning'] = self.vdm_dict['PDL [dB]'][1][4] |
563 |
| - trans_dom_th['osnrhighalarm'] = self.vdm_dict['OSNR [dB]'][1][1] |
564 |
| - trans_dom_th['osnrlowalarm'] = self.vdm_dict['OSNR [dB]'][1][2] |
565 |
| - trans_dom_th['osnrhighwarning'] = self.vdm_dict['OSNR [dB]'][1][3] |
566 |
| - trans_dom_th['osnrlowwarning'] = self.vdm_dict['OSNR [dB]'][1][4] |
567 |
| - trans_dom_th['esnrhighalarm'] = self.vdm_dict['eSNR [dB]'][1][1] |
568 |
| - trans_dom_th['esnrlowalarm'] = self.vdm_dict['eSNR [dB]'][1][2] |
569 |
| - trans_dom_th['esnrhighwarning'] = self.vdm_dict['eSNR [dB]'][1][3] |
570 |
| - trans_dom_th['esnrlowwarning'] = self.vdm_dict['eSNR [dB]'][1][4] |
571 |
| - trans_dom_th['cfohighalarm'] = self.vdm_dict['CFO [MHz]'][1][1] |
572 |
| - trans_dom_th['cfolowalarm'] = self.vdm_dict['CFO [MHz]'][1][2] |
573 |
| - trans_dom_th['cfohighwarning'] = self.vdm_dict['CFO [MHz]'][1][3] |
574 |
| - trans_dom_th['cfolowwarning'] = self.vdm_dict['CFO [MHz]'][1][4] |
575 |
| - trans_dom_th['txcurrpowerhighalarm'] = self.vdm_dict['Tx Power [dBm]'][1][1] |
576 |
| - trans_dom_th['txcurrpowerlowalarm'] = self.vdm_dict['Tx Power [dBm]'][1][2] |
577 |
| - trans_dom_th['txcurrpowerhighwarning'] = self.vdm_dict['Tx Power [dBm]'][1][3] |
578 |
| - trans_dom_th['txcurrpowerlowwarning'] = self.vdm_dict['Tx Power [dBm]'][1][4] |
579 |
| - trans_dom_th['rxtotpowerhighalarm'] = self.vdm_dict['Rx Total Power [dBm]'][1][1] |
580 |
| - trans_dom_th['rxtotpowerlowalarm'] = self.vdm_dict['Rx Total Power [dBm]'][1][2] |
581 |
| - trans_dom_th['rxtotpowerhighwarning'] = self.vdm_dict['Rx Total Power [dBm]'][1][3] |
582 |
| - trans_dom_th['rxtotpowerlowwarning'] = self.vdm_dict['Rx Total Power [dBm]'][1][4] |
583 |
| - trans_dom_th['rxsigpowerhighalarm'] = self.vdm_dict['Rx Signal Power [dBm]'][1][1] |
584 |
| - trans_dom_th['rxsigpowerlowalarm'] = self.vdm_dict['Rx Signal Power [dBm]'][1][2] |
585 |
| - trans_dom_th['rxsigpowerhighwarning'] = self.vdm_dict['Rx Signal Power [dBm]'][1][3] |
586 |
| - trans_dom_th['rxsigpowerlowwarning'] = self.vdm_dict['Rx Signal Power [dBm]'][1][4] |
587 |
| - except KeyError: |
588 |
| - pass |
| 563 | + |
| 564 | + for vdm_key, trans_dom_th_key_prefix in VDM_KEY_TO_DB_KEY_PREFIX_MAP.items(): |
| 565 | + for i in range(1, 5): |
| 566 | + trans_dom_th_key = trans_dom_th_key_prefix + VDM_SUBTYPE_IDX_MAP[i] |
| 567 | + self._update_dict_if_vdm_key_exists(trans_dom_th, trans_dom_th_key, vdm_key, i) |
| 568 | + |
589 | 569 | return trans_dom_th
|
590 | 570 |
|
591 | 571 | def get_transceiver_status(self):
|
@@ -772,77 +752,12 @@ def get_transceiver_status(self):
|
772 | 752 | trans_status['tuning_not_accepted'] = 'TuningNotAccepted' in laser_tuning_summary
|
773 | 753 | trans_status['invalid_channel_num'] = 'InvalidChannel' in laser_tuning_summary
|
774 | 754 | trans_status['tuning_complete'] = 'TuningComplete' in laser_tuning_summary
|
775 |
| - try: |
776 |
| - trans_status['biasxihighalarm_flag'] = self.vdm_dict['Modulator Bias X/I [%]'][1][5] |
777 |
| - trans_status['biasxilowalarm_flag'] = self.vdm_dict['Modulator Bias X/I [%]'][1][6] |
778 |
| - trans_status['biasxihighwarning_flag'] = self.vdm_dict['Modulator Bias X/I [%]'][1][7] |
779 |
| - trans_status['biasxilowwarning_flag'] = self.vdm_dict['Modulator Bias X/I [%]'][1][8] |
780 |
| - trans_status['biasxqhighalarm_flag'] = self.vdm_dict['Modulator Bias X/Q [%]'][1][5] |
781 |
| - trans_status['biasxqlowalarm_flag'] = self.vdm_dict['Modulator Bias X/Q [%]'][1][6] |
782 |
| - trans_status['biasxqhighwarning_flag'] = self.vdm_dict['Modulator Bias X/Q [%]'][1][7] |
783 |
| - trans_status['biasxqlowwarning_flag'] = self.vdm_dict['Modulator Bias X/Q [%]'][1][8] |
784 |
| - trans_status['biasxphighalarm_flag'] = self.vdm_dict['Modulator Bias X_Phase [%]'][1][5] |
785 |
| - trans_status['biasxplowalarm_flag'] = self.vdm_dict['Modulator Bias X_Phase [%]'][1][6] |
786 |
| - trans_status['biasxphighwarning_flag'] = self.vdm_dict['Modulator Bias X_Phase [%]'][1][7] |
787 |
| - trans_status['biasxplowwarning_flag'] = self.vdm_dict['Modulator Bias X_Phase [%]'][1][8] |
788 |
| - trans_status['biasyihighalarm_flag'] = self.vdm_dict['Modulator Bias Y/I [%]'][1][5] |
789 |
| - trans_status['biasyilowalarm_flag'] = self.vdm_dict['Modulator Bias Y/I [%]'][1][6] |
790 |
| - trans_status['biasyihighwarning_flag'] = self.vdm_dict['Modulator Bias Y/I [%]'][1][7] |
791 |
| - trans_status['biasyilowwarning_flag'] = self.vdm_dict['Modulator Bias Y/I [%]'][1][8] |
792 |
| - trans_status['biasyqhighalarm_flag'] = self.vdm_dict['Modulator Bias Y/Q [%]'][1][5] |
793 |
| - trans_status['biasyqlowalarm_flag'] = self.vdm_dict['Modulator Bias Y/Q [%]'][1][6] |
794 |
| - trans_status['biasyqhighwarning_flag'] = self.vdm_dict['Modulator Bias Y/Q [%]'][1][7] |
795 |
| - trans_status['biasyqlowwarning_flag'] = self.vdm_dict['Modulator Bias Y/Q [%]'][1][8] |
796 |
| - trans_status['biasyphighalarm_flag'] = self.vdm_dict['Modulator Bias Y_Phase [%]'][1][5] |
797 |
| - trans_status['biasyplowalarm_flag'] = self.vdm_dict['Modulator Bias Y_Phase [%]'][1][6] |
798 |
| - trans_status['biasyphighwarning_flag'] = self.vdm_dict['Modulator Bias Y_Phase [%]'][1][7] |
799 |
| - trans_status['biasyplowwarning_flag'] = self.vdm_dict['Modulator Bias Y_Phase [%]'][1][8] |
800 |
| - trans_status['cdshorthighalarm_flag'] = self.vdm_dict['CD high granularity, short link [ps/nm]'][1][5] |
801 |
| - trans_status['cdshortlowalarm_flag'] = self.vdm_dict['CD high granularity, short link [ps/nm]'][1][6] |
802 |
| - trans_status['cdshorthighwarning_flag'] = self.vdm_dict['CD high granularity, short link [ps/nm]'][1][7] |
803 |
| - trans_status['cdshortlowwarning_flag'] = self.vdm_dict['CD high granularity, short link [ps/nm]'][1][8] |
804 |
| - trans_status['cdlonghighalarm_flag'] = self.vdm_dict['CD low granularity, long link [ps/nm]'][1][5] |
805 |
| - trans_status['cdlonglowalarm_flag'] = self.vdm_dict['CD low granularity, long link [ps/nm]'][1][6] |
806 |
| - trans_status['cdlonghighwarning_flag'] = self.vdm_dict['CD low granularity, long link [ps/nm]'][1][7] |
807 |
| - trans_status['cdlonglowwarning_flag'] = self.vdm_dict['CD low granularity, long link [ps/nm]'][1][8] |
808 |
| - trans_status['dgdhighalarm_flag'] = self.vdm_dict['DGD [ps]'][1][5] |
809 |
| - trans_status['dgdlowalarm_flag'] = self.vdm_dict['DGD [ps]'][1][6] |
810 |
| - trans_status['dgdhighwarning_flag'] = self.vdm_dict['DGD [ps]'][1][7] |
811 |
| - trans_status['dgdlowwarning_flag'] = self.vdm_dict['DGD [ps]'][1][8] |
812 |
| - trans_status['sopmdhighalarm_flag'] = self.vdm_dict['SOPMD [ps^2]'][1][5] |
813 |
| - trans_status['sopmdlowalarm_flag'] = self.vdm_dict['SOPMD [ps^2]'][1][6] |
814 |
| - trans_status['sopmdhighwarning_flag'] = self.vdm_dict['SOPMD [ps^2]'][1][7] |
815 |
| - trans_status['sopmdlowwarning_flag'] = self.vdm_dict['SOPMD [ps^2]'][1][8] |
816 |
| - trans_status['pdlhighalarm_flag'] = self.vdm_dict['PDL [dB]'][1][5] |
817 |
| - trans_status['pdllowalarm_flag'] = self.vdm_dict['PDL [dB]'][1][6] |
818 |
| - trans_status['pdlhighwarning_flag'] = self.vdm_dict['PDL [dB]'][1][7] |
819 |
| - trans_status['pdllowwarning_flag'] = self.vdm_dict['PDL [dB]'][1][8] |
820 |
| - trans_status['osnrhighalarm_flag'] = self.vdm_dict['OSNR [dB]'][1][5] |
821 |
| - trans_status['osnrlowalarm_flag'] = self.vdm_dict['OSNR [dB]'][1][6] |
822 |
| - trans_status['osnrhighwarning_flag'] = self.vdm_dict['OSNR [dB]'][1][7] |
823 |
| - trans_status['osnrlowwarning_flag'] = self.vdm_dict['OSNR [dB]'][1][8] |
824 |
| - trans_status['esnrhighalarm_flag'] = self.vdm_dict['eSNR [dB]'][1][5] |
825 |
| - trans_status['esnrlowalarm_flag'] = self.vdm_dict['eSNR [dB]'][1][6] |
826 |
| - trans_status['esnrhighwarning_flag'] = self.vdm_dict['eSNR [dB]'][1][7] |
827 |
| - trans_status['esnrlowwarning_flag'] = self.vdm_dict['eSNR [dB]'][1][8] |
828 |
| - trans_status['cfohighalarm_flag'] = self.vdm_dict['CFO [MHz]'][1][5] |
829 |
| - trans_status['cfolowalarm_flag'] = self.vdm_dict['CFO [MHz]'][1][6] |
830 |
| - trans_status['cfohighwarning_flag'] = self.vdm_dict['CFO [MHz]'][1][7] |
831 |
| - trans_status['cfolowwarning_flag'] = self.vdm_dict['CFO [MHz]'][1][8] |
832 |
| - trans_status['txcurrpowerhighalarm_flag'] = self.vdm_dict['Tx Power [dBm]'][1][5] |
833 |
| - trans_status['txcurrpowerlowalarm_flag'] = self.vdm_dict['Tx Power [dBm]'][1][6] |
834 |
| - trans_status['txcurrpowerhighwarning_flag'] = self.vdm_dict['Tx Power [dBm]'][1][7] |
835 |
| - trans_status['txcurrpowerlowwarning_flag'] = self.vdm_dict['Tx Power [dBm]'][1][8] |
836 |
| - trans_status['rxtotpowerhighalarm_flag'] = self.vdm_dict['Rx Total Power [dBm]'][1][5] |
837 |
| - trans_status['rxtotpowerlowalarm_flag'] = self.vdm_dict['Rx Total Power [dBm]'][1][6] |
838 |
| - trans_status['rxtotpowerhighwarning_flag'] = self.vdm_dict['Rx Total Power [dBm]'][1][7] |
839 |
| - trans_status['rxtotpowerlowwarning_flag'] = self.vdm_dict['Rx Total Power [dBm]'][1][8] |
840 |
| - trans_status['rxsigpowerhighalarm_flag'] = self.vdm_dict['Rx Signal Power [dBm]'][1][5] |
841 |
| - trans_status['rxsigpowerlowalarm_flag'] = self.vdm_dict['Rx Signal Power [dBm]'][1][6] |
842 |
| - trans_status['rxsigpowerhighwarning_flag'] = self.vdm_dict['Rx Signal Power [dBm]'][1][7] |
843 |
| - trans_status['rxsigpowerlowwarning_flag'] = self.vdm_dict['Rx Signal Power [dBm]'][1][8] |
844 |
| - except KeyError: |
845 |
| - helper_logger.log_debug('fields not present in VDM') |
| 755 | + |
| 756 | + for vdm_key, trans_status_key_prefix in VDM_KEY_TO_DB_KEY_PREFIX_MAP.items(): |
| 757 | + for i in range(5, 9): |
| 758 | + trans_status_key = trans_status_key_prefix + VDM_SUBTYPE_IDX_MAP[i] |
| 759 | + self._update_dict_if_vdm_key_exists(trans_status, trans_status_key, vdm_key, i) |
| 760 | + |
846 | 761 | return trans_status
|
847 | 762 |
|
848 | 763 | def get_transceiver_pm(self):
|
|
0 commit comments