From 5e11e0a7db8dc94be36e1826d19fb1a68a46d1ad Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 24 Aug 2017 18:39:35 +0200 Subject: [PATCH] added adc reader standalone --- slsDetectorSoftware/slsADCReader/Makefile | 20 +++ slsDetectorSoftware/slsADCReader/slsADCReader | Bin 0 -> 20662 bytes .../slsADCReader/slsADCReader.cpp | 118 ++++++++++++++++++ .../slsDetector/slsDetectorCommand.cpp | 2 +- 4 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 slsDetectorSoftware/slsADCReader/Makefile create mode 100755 slsDetectorSoftware/slsADCReader/slsADCReader create mode 100644 slsDetectorSoftware/slsADCReader/slsADCReader.cpp diff --git a/slsDetectorSoftware/slsADCReader/Makefile b/slsDetectorSoftware/slsADCReader/Makefile new file mode 100644 index 000000000..a18908a67 --- /dev/null +++ b/slsDetectorSoftware/slsADCReader/Makefile @@ -0,0 +1,20 @@ +CC = g++ +SRC = slsADCReader.cpp +INCLUDES = -I ../../slsReceiverSoftware/include -I ../commonFiles +CFLAGS = -Wall -lm -lstdc++ + + +all: clean slsADCReader + + +slsADCReader: $(SRC) + echo "creating adc reader" + $(CC) -o $@ $^ $(CFLAGS) $(INCLUDES) + + +clean: + echo "cleaning" + rm -rf *.o + + + diff --git a/slsDetectorSoftware/slsADCReader/slsADCReader b/slsDetectorSoftware/slsADCReader/slsADCReader new file mode 100755 index 0000000000000000000000000000000000000000..3117fc8bf9f60a04f2b74f2796f1f22222b9573d GIT binary patch literal 20662 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 literal 0 HcmV?d00001 diff --git a/slsDetectorSoftware/slsADCReader/slsADCReader.cpp b/slsDetectorSoftware/slsADCReader/slsADCReader.cpp new file mode 100644 index 000000000..f27eb3a86 --- /dev/null +++ b/slsDetectorSoftware/slsADCReader/slsADCReader.cpp @@ -0,0 +1,118 @@ +#include "MySocketTCP.h" + +#include "sls_detector_defs.h" +#include "sls_receiver_defs.h" + +#include "sls_detector_funcs.h" + +#include +#include + +#define INVALID -999 + +enum detectorFunctions{ + F_GET_ADC=13 +}; + +void help() { + cerr << "Usage:\n" + "slsAdcReader [hostname] [adcval]" << endl; + exit(EXIT_FAILURE); +} + + +slsDetectorDefs::dacIndex getADCEnum(char* cval){ + int idac; + string cmd; + cmd.assign(cval); + + if (sscanf(cval,"adc:%d",&idac)==1) { + return (slsDetectorDefs::dacIndex)(idac+1000); + } else if (cmd=="temp_adc") + return slsDetectorDefs::TEMPERATURE_ADC; + else if (cmd=="temp_fpga") + return slsDetectorDefs::TEMPERATURE_FPGA; + else if (cmd=="temp_fpgaext") + return slsDetectorDefs::TEMPERATURE_FPGAEXT; + else if (cmd=="temp_10ge") + return slsDetectorDefs::TEMPERATURE_10GE; + else if (cmd=="temp_dcdc") + return slsDetectorDefs::TEMPERATURE_DCDC; + else if (cmd=="temp_sodl") + return slsDetectorDefs::TEMPERATURE_SODL; + else if (cmd=="temp_sodr") + return slsDetectorDefs::TEMPERATURE_SODR; + else if (cmd=="temp_fpgafl") + return slsDetectorDefs::TEMPERATURE_FPGA2; + else if (cmd=="temp_fpgafr") + return slsDetectorDefs::TEMPERATURE_FPGA3; + else if (cmd=="i_a") + return slsDetectorDefs::I_POWER_A; + else if (cmd=="i_b") + return slsDetectorDefs::I_POWER_B; + else if (cmd=="i_c") + return slsDetectorDefs::I_POWER_C; + else if (cmd=="i_d") + return slsDetectorDefs::I_POWER_D; + else if (cmd=="vm_a") + return slsDetectorDefs::V_POWER_A; + else if (cmd=="vm_b") + return slsDetectorDefs::V_POWER_B; + else if (cmd=="vm_c") + return slsDetectorDefs::V_POWER_C; + else if (cmd=="vm_d") + return slsDetectorDefs::V_POWER_D; + else if (cmd=="vm_io") + return slsDetectorDefs::V_POWER_IO; + else if (cmd=="i_io") + return slsDetectorDefs::I_POWER_IO; + else { + cerr << "cannot decode dac " << cmd << endl; + help(); + return slsDetectorDefs::I_POWER_IO; + } +}; + + + +int main(int argc, char* argv[]) +{ + if (argc < 3) + help(); + slsDetectorDefs::dacIndex idx=getADCEnum(argv[2]); + + + char mess[MAX_STR_LENGTH]=""; + detectorFunctions fnum=F_GET_ADC; + int retval=-1; + int ret=slsReceiverDefs::FAIL; + int arg[2]={idx,0}; + + + MySocketTCP* tempSocket=new MySocketTCP(argv[1],1952); + if (tempSocket->getErrorStatus()){ + cerr << "could not create socket with " << argv[1] << endl; + help(); + } + + if (tempSocket->Connect()) { + tempSocket->SendDataOnly(&fnum, sizeof(fnum)); + tempSocket->SendDataOnly(arg,sizeof(arg)); + tempSocket->ReceiveDataOnly(&ret, sizeof(ret)); + if (ret != slsReceiverDefs::FAIL) { + tempSocket->ReceiveDataOnly(&retval, sizeof(retval)); + } else { + tempSocket->ReceiveDataOnly(mess,sizeof(mess)); + printf("Detector returned Error: %s",mess); + } + tempSocket->Disconnect(); + } else + cerr << "could not connect to " << argv[1] << endl; + + if (idx <= 100) { + printf("%.2f°C\n",(double)retval/1000.00); + }else + printf("%dmV\n",retval); + + return EXIT_SUCCESS; +} diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp index 3968c7d8b..5a16bef22 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp @@ -4864,7 +4864,7 @@ string slsDetectorCommand::cmdDAC(int narg, char *args[], int action) { int idac=-1; if (sscanf(args[0],"dac:%d",&idac)==1) { - printf("chiptestboard!\n"); + //printf("chiptestboard!\n"); dac=(dacIndex)idac; } else if (cmd=="adcvpp")