Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import socket
- import time
- class WavemeterClient:
- def __init__(self, host='127.0.0.1', port=51123, timeout=2.0, post_connect_delay=0.5):
- self.host = host
- self.port = port
- self.timeout = timeout
- self.post_connect_delay = post_connect_delay
- self.sock = None
- def connect(self):
- self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- self.sock.settimeout(self.timeout)
- self.sock.connect((self.host, self.port))
- print(f"Connected to {self.host}:{self.port}")
- time.sleep(self.post_connect_delay)
- def close(self):
- if self.sock:
- self.sock.close()
- self.sock = None
- def send_command(self, command, expect_response=True, post_command_delay=0.2):
- if self.sock is None:
- raise RuntimeError("Socket is not connected.")
- full_command = command.strip() + '\r\n'
- print(f"Sending: {repr(full_command)}")
- self.sock.sendall(full_command.encode('ascii'))
- time.sleep(post_command_delay)
- if expect_response:
- try:
- response = self.sock.recv(1024)
- return response.decode('ascii').strip()
- except socket.timeout:
- return None
- return None
- def __enter__(self):
- self.connect()
- return self
- def __exit__(self, exc_type, exc_value, traceback):
- self.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement