Created
September 29, 2022 14:36
-
-
Save dansteingart/50792a0771c9b6562263b9520428dc94 to your computer and use it in GitHub Desktop.
simple nodeforwarderded 2400 control
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
##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