Skip to content

Instantly share code, notes, and snippets.

@sirmo
Created July 17, 2017 03:54
Show Gist options
  • Save sirmo/1cb8f8762ded0f61f37d469a8991afe3 to your computer and use it in GitHub Desktop.
Save sirmo/1cb8f8762ded0f61f37d469a8991afe3 to your computer and use it in GitHub Desktop.
Interfacing to Fluke 8845/8846 over LAN.
import socket
import select
import string
import sys
import time
class Fluke884x(object):
def __init__(self, host=None, port=None):
self.host = host
self.port = port
self._connect()
self._set_remote_mode()
def _connect(self):
srvsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
srvsock.connect((self.host, self.port))
srvsock.setblocking(0)
self.srv = srvsock
def _set_remote_mode(self):
res = self.query('System:remote')
res = self.query('DISP:TEXT ""')
res = self.query('sens:volt:nplc 60')
def query(self, cmd):
self.srv.sendall(cmd+'\r\n')
if not cmd.lower() == 'read?':
return ''
buff = ''
while len(buff) == 0:
try:
buff += self.srv.recv(1024)
except socket.error:
time.sleep(1)
pass
return buff
if __name__ == '__main__':
fluke = Fluke884x('192.168.1.101', 3490)
res = fluke.query('Read?')
print '{}'.format(res)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment