You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.1 KiB

#!/usr/bin/env python
# -*- python -*-
'''
This script is used as the client side of the SDE interactive controller.
It allows users to interactively trigger controller event inside an application running under SDE.
Example:
> SDE_KIT/sde -control start:interactive -interactive_file <name> -- <app>
> SDE_KIT/misc/cntrl_client.py <name>
'''
import os
import sys
import json
import socket
if len(sys.argv) != 2:
print('Error Usage: python cntrl_client.py <file_name>')
exit(1)
file_name = sys.argv[1]
if not os.path.exists(file_name):
print('file file: ' + file_name + ' does not exists')
print('Have you run SDE with interactive controller?')
exit(1)
try:
sock = None
with open(file_name, 'r') as f:
content = json.load(f)
if (not 'port' in content):
raise Exception('Unable to find port in the file')
port = int(content['port'])
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('localhost', port))
sock.send("1")
except Exception as e:
print('ERROR: failed sending signal to SDE - ' + e.message)
if None != sock:
sock.close()