Skip to content

Instantly share code, notes, and snippets.

@dansteingart
Created September 29, 2022 14:36
Show Gist options
  • Save dansteingart/50792a0771c9b6562263b9520428dc94 to your computer and use it in GitHub Desktop.
Save dansteingart/50792a0771c9b6562263b9520428dc94 to your computer and use it in GitHub Desktop.
simple nodeforwarderded 2400 control
##Author:
##Date Started:
##Notes:
from time import *
import pandas as pd
import requests as req
import re
p_write = "http://localhost:9001/writecf/"
p_read = "http://localhost:9001/read/"
def write(cmd):
return req.get(p_write+cmd+'\r\n').text
def read():
return req.get(p_read).text.splitlines()
def on():
write(":OUTP ON")
sleep(1)
write(":OUTP ON")
# write(":OUTP?")
def setVoltage(value,curr_limit): #feed in a voltage value and upper Current limit (A)
write("SENS:FUNC \"CURR\"")
write(":SOUR:FUNC:MODE VOLT")
write(":SOUR:VOLT:MODE FIX")
write(":SENS:CURR:RANG:AUTO ON")
write(":SOUR:VOLT:RANG:AUTO ON")
write(":SENS:CURR:PROT "+str(curr_limit))
write(":SOUR:VOLT "+ str(value))
write(":READ?")
def setCurrent(value,volt_limit): #feed it a current Amps, and upper safety (V)
write(":SENS:FUNC \"VOLT\"")
write(":SOUR:FUNC:MODE CURR")
write(":SOUR:CURR:MODE FIX")
write(":SOUR:CURR:RANG:AUTO ON")
write(":SENS:VOLT:RANG:AUTO ON")
write(":SENS:VOLT:PROT "+str(volt_limit))
write(":SOUR:CURR "+ str(value))
write(":READ?")
def off():
setCurrent(0.0,4.5)
write(":OUTP OFF")
sleep(1)
def parse(string):
for s in string:
parts = re.split(r'[,;]+',s)
volts = float(parts[0])
amps = float(parts[1])
res = float(parts[2])
tii = float(parts[3])
stat = float(parts[4])
return volts,amps,res,tii,stat
#print parts
def readData(cyc=0):
try:
data = dict()
write(":READ?")
sleep(0.5)
info = read()
datastring=parse(info)
# data['time'] = time()
data['voltage'] = datastring[0]
data['current'] = datastring[1]
data['resistance'] = datastring[2]
data['time'] = datastring[3]
data['status'] = datastring[4]
data['cycle'] = cyc
data['t'] = int(time())
except ValueError:
print("oops!")
pass
return data
def appendData(fn,data,head=True):
try:
dlist = []
dlist.append(data)
pdat = pd.DataFrame(dlist)
# with open('fn', 'a') as f:
# fn.to_csv(f, header=False)
pdat.to_csv(fn,mode='a',header=False,index=False)
# pdat.to_csv(fn)
except Exception as E:
print(E)
if __name__ == "__main__":
off()
# ser = serial.Serial('/dev/ttyUSB1',19200,timeout=3)
on()
data= readData(cyc=0)
print(data)
off()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment