added adc reader standalone

This commit is contained in:
Dhanya Maliakal 2017-08-24 18:39:35 +02:00
parent e5c84fd11c
commit 5e11e0a7db
4 changed files with 139 additions and 1 deletions

View File

@ -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

Binary file not shown.

View File

@ -0,0 +1,118 @@
#include "MySocketTCP.h"
#include "sls_detector_defs.h"
#include "sls_receiver_defs.h"
#include "sls_detector_funcs.h"
#include <stdio.h>
#include <stdlib.h>
#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;
}

View File

@ -4864,7 +4864,7 @@ string slsDetectorCommand::cmdDAC(int narg, char *args[], int action) {
int idac=-1; int idac=-1;
if (sscanf(args[0],"dac:%d",&idac)==1) { if (sscanf(args[0],"dac:%d",&idac)==1) {
printf("chiptestboard!\n"); //printf("chiptestboard!\n");
dac=(dacIndex)idac; dac=(dacIndex)idac;
} }
else if (cmd=="adcvpp") else if (cmd=="adcvpp")