|
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