but I'm a little confused about how to integrate these commands in an ioc. I've set up a StreamDevice template, and I thought I might be able to just send the curl commands by putting them in a record:
record(bo, "$(P)$(R)Start")
{
field(DESC, "Start App")
field(DTYP, "stream")
field(OUT, "@devREDPITAYASTREAM.proto startApp $(PORT) $(A)")
field(ZNAM, "spectrum")
#field(PINI, "YES")
#field(VAL, "1")
}
record(waveform, "$(P)$(R)Data")
{
field(DESC, "Data string")
field(DTYP, "stream")
field(INP, "@devREDPITAYASTREAM.proto getData(20000) $(PORT) $(A)")
field(PINI, "YES")
field(FTVL, "CHAR")
field(NELM, "32000")
}
with the corresponding entries in the .proto file being:
startApp {
out "curl
http://10.95.101.75/bazaar?start=%{spectrum}";
}
getData {
out "curl
http://10.95.101.75/data";
in "%\$1[^\r\n]";
ExtraInput = Ignore;
}
When I run st.cmd, the host is configured to be the IP address of the red pitaya itself, using the HTTP port of 80:
drvAsynIPPortConfigure("L0","10.95.101.75:80",0,0,0)
I'm not sure if this is the right thing to do? In any case, when running st.cmd with asynTraceMask enabled I get a continuous stream of "reads"
2015/02/09 11:48:23.530
10.95.101.75:80 read.
but it doesn't seem to respond to the commands I've made.
Does anyone have any feeling for using Epics with HTTP commands?
Thanks!
Ana Malagon