Skip to content
Snippets Groups Projects
Commit f1814751 authored by Marko Mecina's avatar Marko Mecina
Browse files

add more flexible method to translate SCOS data types

parent ea760c7f
Branches
No related tags found
No related merge requests found
# SCOS 2000 PTC/PFC parameter format translation table
ptt_legacy = {
1: {0: 'bit1'},
2: {1: 'bit1', 2: 'bit2', 3: 'bit3', 4: 'bit4', 5: 'bit5', 6: 'bit6', 7: 'bit7', 8: 'B', 9: 'bit9', 10: 'bit10',
11: 'bit11', 12: 'bit12', 13: 'bit13', 14: 'bit14', 15: 'bit15', 16: 'H', 17: 'bit17', 18: 'bit18',
19: 'bit19', 20: 'bit20', 21: 'bit21', 22: 'bit22', 23: 'bit23', 24: 'I24', 25: 'bit25', 26: 'bit26',
27: 'bit27', 28: 'bit28', 29: 'bit29', 30: 'bit30', 31: 'bit31', 32: 'I'},
3: {0: 'bit4', 1: 'bit5', 2: 'bit6', 3: 'bit7', 4: 'B', 5: 'bit9', 6: 'bit10', 7: 'bit11', 8: 'bit12',
9: 'bit13', 10: 'bit14', 11: 'bit15', 12: 'H', 13: 'I24', 14: 'I'},
4: {0: 'sbit4', 1: 'sbit5', 2: 'sbit6', 3: 'sbit7', 4: 'b', 5: 'sbit9', 6: 'sbit10', 7: 'sbit11', 8: 'sbit12',
9: 'sbit13', 10: 'sbit14', 11: 'sbit15', 12: 'h', 13: 'i24', 14: 'i'},
5: {1: 'f', 2: 'd'},
6: {1: 'bit1', 2: 'bit2', 3: 'bit3', 4: 'bit4', 5: 'bit5', 6: 'bit6', 7: 'bit7', 8: 'B', 9: 'bit9', 10: 'bit10',
11: 'bit11', 12: 'bit12', 13: 'bit13', 14: 'bit14', 15: 'bit15', 16: 'H', 17: 'bit17', 18: 'bit18',
19: 'bit19', 20: 'bit20', 21: 'bit21', 22: 'bit22', 23: 'bit23', 24: 'I24', 25: 'bit25', 26: 'bit26',
27: 'bit27', 28: 'bit28', 29: 'bit29', 30: 'bit30', 31: 'bit31', 32: 'I'},
7: {0: 'vOCT', 382: '382s'},
8: {0: 'vASCII', 382: '382s'},
9: {17: 'CUC917'},
11: {0: 'deduced'}
}
ptt = {
1: {0: 'uint1'},
2: {1: 'uint1', 2: 'uint2', 3: 'uint3', 4: 'uint4', 5: 'uint5', 6: 'uint6', 7: 'uint7', 8: 'B', 9: 'uint9', 10: 'uint10',
......@@ -49,4 +28,40 @@ ptype_parameters = ()
ptype_values = {}
# from packet_config_SMILE import *
\ No newline at end of file
DEFAULT_FORMATS = {
1: {0: 'uint1'},
2: {8: 'B', 16: 'H', 24: 'I24', 32: 'I'},
3: {0: 'uint4', 1: 'uint5', 2: 'uint6', 3: 'uint7', 4: 'B', 5: 'uint9', 6: 'uint10', 7: 'uint11', 8: 'uint12',
9: 'uint13', 10: 'uint14', 11: 'uint15', 12: 'H', 13: 'I24', 14: 'I'},
4: {0: 'int4', 1: 'int5', 2: 'int6', 3: 'int7', 4: 'b', 5: 'int9', 6: 'int10', 7: 'int11', 8: 'int12',
9: 'int13', 10: 'int14', 11: 'int15', 12: 'h', 13: 'i24', 14: 'i'},
5: {1: 'f', 2: 'd'},
6: {8: 'B', 16: 'H', 24: 'I24', 32: 'I'},
7: {0: 'vOCT'},
8: {0: 'vASCII'},
9: {17: 'CUC917', 18: 'CUC918'},
11: {0: 'deduced'},
'SPARE': {8: '1x', 16: '2x', 24: '3x', 32: '4x'},
'SPARE_visible': {8: 'B', 16: 'H', 24: 'I24', 32: 'I'},
'PAD': {8: '1x', 16: '2x', 24: '3x', 32: '4x'}
}
class ParameterTypeLookupTable:
def __call__(self, a, b):
if a in DEFAULT_FORMATS:
if b in DEFAULT_FORMATS[a]:
return DEFAULT_FORMATS[a][b]
else:
if a in [2, 6]:
return 'uint{}'.format(b)
elif a in [7, 8]:
return '{}s'.format(b)
else:
raise NotImplementedError('(PTC, PFC) = ({}, {})'.format(a, b))
else:
raise NotImplementedError('PTC = {}'.format(a))
# ptt = ParameterTypeLookupTable()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment