opcua_traffic.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import json
  2. j_get_configuration = """{"jsonrpc": "2.0", "result": {"1ae20d4e-537b-443f-a494-7430c35fce75": {"subsystems": {"1": {"current": {"typeOfDouble": {"A324": "A324", "IVEw": "IVEw", "A303": "A303", "A317": "A317", "A316": "A316", "A315": "A315", "A314": "A314", "A313": "A313", "A312": "A312", "A311": "A311", "A310": "A310", "A335": "A335", "A334": "A334", "A336": "A336", "A331": "A331", "A330": "A330", "A319": "A319", "A332": "A332", "A302": "A302", "PW": "PW", "A333": "A333", "A318": "A318", "VE": "VE", "Qw": "Qw", "VEw": "VEw", "IV": "IV", "Q": "Q", "A323": "A323", "A306": "A306", "A307": "A307", "A326": "A326", "A327": "A327", "W": "W", "V": "V", "A328": "A328", "A329": "A329", "A308": "A308", "A309": "A309", "KC": "KC", "IVE": "IVE", "A325": "A325", "A305": "A305", "KK": "KK", "A320": "A320", "T": "T", "A304": "A304", "A321": "A321", "IVw": "IVw", "Vw": "Vw", "A322": "A322", "P": "P", "dP": "dP", "A301": "A301"}, "typeOfInt32": {}}, "history": {"A302": "A302", "A303": "A303", "A317": "A317", "A316": "A316", "A315": "A315", "A314": "A314", "A313": "A313", "A312": "A312", "A311": "A311", "A310": "A310", "A335": "A335", "A334": "A334", "A336": "A336", "A331": "A331", "A330": "A330", "A319": "A319", "A318": "A318", "A333": "A333", "A332": "A332", "A322": "A322", "A305": "A305", "A320": "A320", "A321": "A321", "A326": "A326", "A301": "A301", "A324": "A324", "A325": "A325", "A328": "A328", "A329": "A329", "A308": "A308", "A309": "A309", "A304": "A304", "A323": "A323", "A306": "A306", "A307": "A307", "A327": "A327"}, "ResType": "\u0413\u04221", "passportvalues": {"typeOfDouble": {"PassH2": "PassH2", "PassT": "PassT", "PassCO": "PassCO", "PassP": "PassP", "PassS": "PassS", "PassDateTime": "PassDateTime", "PassN2": "PassN2"}, "typeOfInt32": {"PassStatus": "PassStatus"}}, "name": "\u0413\u04221"}}, "type": "GasMeter", "name": "GasMeter#ek270#0"}, "gius-controller": {"type": "gius-controller", "name": "this controller", "intsensors": {"AI4": "AI4", "AI1": "AI1", "AI3": "AI3", "AI2": "AI2", "DI8": "DI8", "DI4": "DI4", "DI5": "DI5", "DI6": "DI6", "DI7": "DI7", "DI1": "DI1", "DI2": "DI2", "DI3": "DI3"}}}, "id": 2}"""
  3. jresp_sensors = """{"jsonrpc": "2.0", "result": {"AI4": [null, null, 0], "AI1": ["offline", 7103887, 192], "AI3": [null, null, 0], "AI2": ["offline", 7103887, 192], "DI8": ["0", 7103887, 192], "DI4": ["0", 7103887, 192], "DI5": ["0", 7103887, 192], "DI6": ["0", 7103887, 192], "DI7": ["0", 7103887, 192], "DI1": ["0", 7103887, 192], "DI2": ["0", 7103887, 192], "DI3": ["0", 7103887, 192]}, "id": 3}"""
  4. j_get_sensor_by_alias = """{'dim': '', 'group': 'Inputs', 'name': 'Digital Input #1', 'entrance_delay': 0, 'enabled': True, 'iface_spec': None, 'has_device': False, 'security_type': 'service', 'hysteresis': 0.0, 'states': [{'caption': 'opened', 'state': 'almaj', 'flag': 0, 'value': '0'}, {'caption': 'closed', 'state': 'norm', 'flag': 1, 'value': '1'}, {'caption': 'offline', 'state': 'offline', 'flag': 1, 'value': 'n/a'}], 'alias': 'DI1', 'prefix': '', 'web_name': u'\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0432\u0445\u043e\u0434 #1', 'editable': None, 'hidden': False, 'state_template': {'caption': 'Caption of state', 'state': 'Sate of sensor', 'value': ['(0|1)', 'Binary value of sensor (0/1)']}, 'history': {'syslog': False, 'state': True, 'archive': False, 'value': False}}"""
  5. def jpars():
  6. # get_configuration = json.loads(j_get_configuration)
  7. # with open("req.json", 'w') as file:
  8. # json.dump(get_configuration, file, indent=2)
  9. get_configuration = json.loads(j_get_sensor_by_alias)
  10. with open("req.json", 'w') as file:
  11. json.dump(get_configuration, file, indent=2)
  12. #jpars()
  13. def creat_resp_1():
  14. r = {'dim': '', 'group': 'Inputs', 'name': 'Digital Input #1', 'entrance_delay': 0, 'enabled': True, 'iface_spec': None, 'has_device': False, 'security_type': 'service', 'hysteresis': 0.0, 'states': [{'caption': 'opened', 'state': 'almaj', 'flag': 0, 'value': '0'}, {'caption': 'closed', 'state': 'norm', 'flag': 1, 'value': '1'}, {'caption': 'offline', 'state': 'offline', 'flag': 1, 'value': 'n/a'}], 'alias': 'DI1', 'prefix': '', 'web_name': u'\u0414\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0432\u0445\u043e\u0434 #1', 'editable': None, 'hidden': False, 'state_template': {'caption': 'Caption of state', 'state': 'Sate of sensor', 'value': ['(0|1)', 'Binary value of sensor (0/1)']}, 'history': {'syslog': False, 'state': True, 'archive': False, 'value': False}}
  15. alarm_0_name = ''
  16. alarm_1_name = ''
  17. for l in r["states"]:
  18. value = l["value"]
  19. if value == '0':
  20. alarm_0_name = l['caption']
  21. elif value == '1':
  22. alarm_1_name = l['caption']
  23. return [int(r['enabled']), r['web_name'], alarm_0_name, alarm_1_name]
  24. # return resp
  25. print(creat_resp_1())