mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-21 19:30:03 +02:00
added adc reader standalone
This commit is contained in:
parent
e5c84fd11c
commit
5e11e0a7db
20
slsDetectorSoftware/slsADCReader/Makefile
Normal file
20
slsDetectorSoftware/slsADCReader/Makefile
Normal 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
|
||||||
|
|
||||||
|
|
||||||
|
|
BIN
slsDetectorSoftware/slsADCReader/slsADCReader
Executable file
BIN
slsDetectorSoftware/slsADCReader/slsADCReader
Executable file
Binary file not shown.
118
slsDetectorSoftware/slsADCReader/slsADCReader.cpp
Normal file
118
slsDetectorSoftware/slsADCReader/slsADCReader.cpp
Normal 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;
|
||||||
|
}
|
@ -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")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user