Merge "[PTP] Update cgu parser for Logan Beach NIC"
This commit is contained in:
commit
885056107a
@ -95,9 +95,17 @@ class CguHandler:
|
||||
'Phase offset': ''
|
||||
}
|
||||
}
|
||||
# Get the input state table start and end lines
|
||||
# Can vary in length depending on NIC types
|
||||
for index, line in enumerate(cgu_output):
|
||||
if "input (idx)" in line:
|
||||
table_start = index + 2
|
||||
if "EEC DPLL:" in line:
|
||||
dpll_start = index
|
||||
table_end = index - 1
|
||||
|
||||
for line in cgu_output[7:14]:
|
||||
# Build a dict out of the 7 line table
|
||||
for line in cgu_output[table_start:table_end]:
|
||||
# Build a dict out of the table
|
||||
dict_to_insert = {
|
||||
re.split(' +', line)[1]: {
|
||||
'state': re.split(' +', line)[4],
|
||||
@ -110,13 +118,20 @@ class CguHandler:
|
||||
cgu_dict['input'].update(dict_to_insert)
|
||||
|
||||
# Add the DPLL data below the table
|
||||
# Set the line offsets for each item we want
|
||||
eec_current_ref = dpll_start + 1
|
||||
eec_status = dpll_start + 2
|
||||
pps_current_ref = dpll_start + 5
|
||||
pps_status = dpll_start + 6
|
||||
pps_phase_offset = dpll_start + 7
|
||||
|
||||
cgu_dict['EEC DPLL']['Current reference'] = \
|
||||
re.split('[ \t]+', cgu_output[16])[3]
|
||||
cgu_dict['EEC DPLL']['Status'] = re.split('[ \t]+', cgu_output[17])[2]
|
||||
re.split('[ \t]+', cgu_output[eec_current_ref])[-1]
|
||||
cgu_dict['EEC DPLL']['Status'] = re.split('[ \t]+', cgu_output[eec_status])[-1]
|
||||
cgu_dict['PPS DPLL']['Current reference'] = \
|
||||
re.split('[ \t]+', cgu_output[20])[3]
|
||||
cgu_dict['PPS DPLL']['Status'] = re.split('[ \t]+', cgu_output[21])[2]
|
||||
re.split('[ \t]+', cgu_output[pps_current_ref])[-1]
|
||||
cgu_dict['PPS DPLL']['Status'] = re.split('[ \t]+', cgu_output[pps_status])[-1]
|
||||
cgu_dict['PPS DPLL']['Phase offset'] = \
|
||||
re.split('[ \t]+', cgu_output[22])[3]
|
||||
re.split('[ \t]+', cgu_output[pps_phase_offset])[-1]
|
||||
|
||||
self.cgu_output_parsed = cgu_dict
|
||||
|
@ -57,21 +57,51 @@ class CguHandlerTests(unittest.TestCase):
|
||||
with self.assertRaises(FileNotFoundError):
|
||||
self.testCguHandler.get_cgu_path_from_pci_addr()
|
||||
|
||||
def test_cgu_output_to_dict(self):
|
||||
def test_cgu_output_to_dict_logan_beach(self):
|
||||
reference_dict = {
|
||||
'input':
|
||||
{'CVL-SDP22': {'state': 'invalid', 'priority': {'EEC': '8', 'PPS': '8'}},
|
||||
'CVL-SDP20': {'state': 'invalid', 'priority': {'EEC': '15', 'PPS': '3'}},
|
||||
'C827_0-RCLKA': {'state': 'invalid', 'priority': {'EEC': '4', 'PPS': '4'}},
|
||||
'C827_0-RCLKB': {'state': 'invalid', 'priority': {'EEC': '5', 'PPS': '5'}},
|
||||
'SMA1': {'state': 'invalid', 'priority': {'EEC': '1', 'PPS': '1'}},
|
||||
'SMA2/U.FL2': {'state': 'invalid', 'priority': {'EEC': '2', 'PPS': '2'}},
|
||||
'GNSS-1PPS': {'state': 'valid', 'priority': {'EEC': '0', 'PPS': '0'}}},
|
||||
'EEC DPLL': {'Current reference': 'GNSS-1PPS', 'Status': 'locked_ho_ack'},
|
||||
'PPS DPLL': {'Current reference': 'GNSS-1PPS', 'Status': 'locked_ho_ack',
|
||||
'Phase offset': '295'}}
|
||||
"input": {
|
||||
"CVL-SDP22": {"state": "invalid", "priority": {"EEC": "8", "PPS": "8"}},
|
||||
"CVL-SDP20": {"state": "invalid", "priority": {"EEC": "15", "PPS": "3"}},
|
||||
"C827_0-RCLKA": {"state": "invalid", "priority": {"EEC": "4", "PPS": "4"}},
|
||||
"C827_0-RCLKB": {"state": "invalid", "priority": {"EEC": "5", "PPS": "5"}},
|
||||
"C827_1-RCLKA": {"state": "invalid", "priority": {"EEC": "6", "PPS": "6"}},
|
||||
"C827_1-RCLKB": {"state": "invalid", "priority": {"EEC": "7", "PPS": "7"}},
|
||||
"SMA1": {"state": "invalid", "priority": {"EEC": "1", "PPS": "1"}},
|
||||
"SMA2/U.FL2": {"state": "invalid", "priority": {"EEC": "2", "PPS": "2"}},
|
||||
"GNSS-1PPS": {"state": "valid", "priority": {"EEC": "0", "PPS": "0"}},
|
||||
},
|
||||
"EEC DPLL": {"Current reference": "GNSS-1PPS", "Status": "locked_ho_acq"},
|
||||
"PPS DPLL": {
|
||||
"Current reference": "GNSS-1PPS",
|
||||
"Status": "locked_ho_acq",
|
||||
"Phase offset": "-86",
|
||||
},
|
||||
}
|
||||
|
||||
self.testCguHandler.cgu_path = testpath + "test_input_files/mock_cgu_output"
|
||||
self.testCguHandler.cgu_path = testpath + "test_input_files/mock_cgu_output_logan_beach"
|
||||
self.testCguHandler.read_cgu()
|
||||
self.testCguHandler.cgu_output_to_dict()
|
||||
self.assertDictEqual(self.testCguHandler.cgu_output_parsed, reference_dict)
|
||||
|
||||
def test_cgu_output_to_dict_westport_channel(self):
|
||||
reference_dict = {
|
||||
"input": {
|
||||
"CVL-SDP22": {"state": "invalid", "priority": {"EEC": "8", "PPS": "8"}},
|
||||
"CVL-SDP20": {"state": "invalid", "priority": {"EEC": "15", "PPS": "3"}},
|
||||
"C827_0-RCLKA": {"state": "invalid", "priority": {"EEC": "4", "PPS": "4"}},
|
||||
"C827_0-RCLKB": {"state": "invalid", "priority": {"EEC": "5", "PPS": "5"}},
|
||||
"SMA1": {"state": "invalid", "priority": {"EEC": "1", "PPS": "1"}},
|
||||
"SMA2/U.FL2": {"state": "invalid", "priority": {"EEC": "2", "PPS": "2"}},
|
||||
"GNSS-1PPS": {"state": "valid", "priority": {"EEC": "0", "PPS": "0"}},
|
||||
},
|
||||
"EEC DPLL": {"Current reference": "GNSS-1PPS", "Status": "locked_ho_ack"},
|
||||
"PPS DPLL": {
|
||||
"Current reference": "GNSS-1PPS",
|
||||
"Status": "locked_ho_ack",
|
||||
"Phase offset": "295",
|
||||
},
|
||||
}
|
||||
self.testCguHandler.cgu_path = testpath + "test_input_files/mock_cgu_output_westport_channel"
|
||||
self.testCguHandler.read_cgu()
|
||||
self.testCguHandler.cgu_output_to_dict()
|
||||
self.assertDictEqual(self.testCguHandler.cgu_output_parsed, reference_dict)
|
||||
|
@ -0,0 +1,25 @@
|
||||
Found ZL80032 CGU
|
||||
DPLL Config ver: 1.3.0.1
|
||||
|
||||
CGU Input status:
|
||||
| | priority | |
|
||||
input (idx) | state | EEC (0) | PPS (1) | ESync fail |
|
||||
----------------------------------------------------------------
|
||||
CVL-SDP22 (0) | invalid | 8 | 8 | N/A |
|
||||
CVL-SDP20 (1) | invalid | 15 | 3 | N/A |
|
||||
C827_0-RCLKA (2) | invalid | 4 | 4 | N/A |
|
||||
C827_0-RCLKB (3) | invalid | 5 | 5 | N/A |
|
||||
C827_1-RCLKA (4) | invalid | 6 | 6 | N/A |
|
||||
C827_1-RCLKB (5) | invalid | 7 | 7 | N/A |
|
||||
SMA1 (6) | invalid | 1 | 1 | N/A |
|
||||
SMA2/U.FL2 (7) | invalid | 2 | 2 | N/A |
|
||||
GNSS-1PPS (8) | valid | 0 | 0 | N/A |
|
||||
|
||||
EEC DPLL:
|
||||
Current reference: GNSS-1PPS
|
||||
Status: locked_ho_acq
|
||||
|
||||
PPS DPLL:
|
||||
Current reference: GNSS-1PPS
|
||||
Status: locked_ho_acq
|
||||
Phase offset [ns]: -86
|
Loading…
x
Reference in New Issue
Block a user