coding: 'utf-8' import socket import time TCP_IP = 'localhost' TCP_PORT = 15007 BUFFER_SIZE = 4096 # Get command-line argument to know what sine generator frequency to set import argparse parser = argparse.ArgumentParser() parser.add_argument("inputFrequency", help="Input the desired frequency for SineGenerator module") args = parser.parse_args() #--- FUNCTION: GET TOKEN --- def get_token(str, num): #extract averageCycles from reply str = str.decode(encoding='utf-8') str = str.split(",") # example reply: 'success,57350,int,18745531\n' str = str[num] # remove \n return str[0:-1] print("\n\n--------------------------------------------------------------------------------------") print("NOTE: This script requires that a target have a valid layout loaded and running!") print(" (If halted, expect this error: \"failed,'theLayout1' is undefined\" ") print("--------------------------------------------------------------------------------------\n") # Open a TCP socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Disable the Nagle algorithm s.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) # Connect s.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, BUFFER_SIZE) s.connect((TCP_IP, TCP_PORT)) # Send this server command to connect to the target thru the server. msg = '0,connect,localhost,15007\n' s.send(msg.encode(encoding='utf-8')) reply = s.recv(BUFFER_SIZE) print(" >>> " ,msg, "<<< ", reply.decode(encoding='utf-8')) print( " ___") #=== get original SineGenerator frequency value msg = '0,get_value,SineGenerator.freq\n' s.send(msg.encode(encoding='utf-8')) reply = s.recv(BUFFER_SIZE) getSineFreq = get_token(reply,3) print("--- Return original value of SineGenerator frequency", getSineFreq, "\n") #=== set SineGenerator frequency value msg = '0,set_value,SineGenerator.freq,'+args.inputFrequency+'\n' s.send(msg.encode(encoding='utf-8')) reply = s.recv(BUFFER_SIZE) setSine = get_token(reply,3) print("-----------------------------------------") print("--- Set SineGenerator frequency to ", args.inputFrequency, "\n") #=== get SineGenerator frequency value msg = '0,get_value,SineGenerator.freq\n' s.send(msg.encode(encoding='utf-8')) reply = s.recv(BUFFER_SIZE) getSineFreq = get_token(reply,3) print("-----------------------------------------") print("--- Return final value of SineGenerator frequency", getSineFreq)