diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h index 7f3d4f052..a6f39cd5c 100644 --- a/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h @@ -133,7 +133,6 @@ enum CLKINDEX { RUN_CLK, ADC_CLK, SYNC_CLK, DBIT_CLK, NUM_CLOCKS }; #define VIO_MIN_MV (1200) // for fpga to function /* Defines in the Firmware */ -#define MAX_PATTERN_LENGTH (0x2000) #define DIGITAL_IO_DELAY_MAXIMUM_PS \ ((OUTPUT_DELAY_0_OTPT_STTNG_MSK >> OUTPUT_DELAY_0_OTPT_STTNG_OFST) * \ OUTPUT_DELAY_0_OTPT_STTNG_STEPS) diff --git a/slsDetectorServers/moenchDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/moenchDetectorServer/slsDetectorServer_defs.h index 060ab08ae..d701aa71c 100644 --- a/slsDetectorServers/moenchDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/moenchDetectorServer/slsDetectorServer_defs.h @@ -117,7 +117,6 @@ enum CLKINDEX { RUN_CLK, ADC_CLK, SYNC_CLK, DBIT_CLK, NUM_CLOCKS }; #define DAC_MAX_MV (2500) /* Defines in the Firmware */ -#define MAX_PATTERN_LENGTH (0x2000) #define DIGITAL_IO_DELAY_MAXIMUM_PS \ ((OUTPUT_DELAY_0_OTPT_STTNG_MSK >> OUTPUT_DELAY_0_OTPT_STTNG_OFST) * \ OUTPUT_DELAY_0_OTPT_STTNG_STEPS) diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h index 11d81a494..4b82051be 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h @@ -37,7 +37,7 @@ #define DEFAULT_TIMING_MODE (AUTO_TIMING) #define DEFAULT_READOUT_C0 (10) //(125000000) // rdo_clk, 125 MHz #define DEFAULT_READOUT_C1 (10) //(125000000) // rdo_x2_clk, 125 MHz -#define DEFAULT_SYSTEM_C0 (4) //(250000000) // run_clk, 250 MHz +#define DEFAULT_SYSTEM_C0 (4) //(250000000) // run_clk, 250 MHz #define DEFAULT_SYSTEM_C1 (8) //(125000000) // chip_clk, 125 MHz #define DEFAULT_SYSTEM_C2 (8) //(125000000) // sync_clk, 125 MHz #define DEFAULT_ASIC_LATCHING_NUM_PULSES (10) @@ -48,7 +48,6 @@ #define FIXED_PLL_FREQUENCY (020000000) // 20MHz #define READOUT_PLL_VCO_FREQ_HZ (1250000000) // 1.25GHz #define SYSTEM_PLL_VCO_FREQ_HZ (1000000000) // 1GHz -#define MAX_PATTERN_LENGTH (0x2000) // maximum number of words (64bit) /** Other Definitions */ #define BIT16_MASK (0xFFFF) diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index fce9e7bb2..80dde397d 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -7362,16 +7362,16 @@ int set_veto(int file_des) { int set_pattern(int file_des) { ret = OK; memset(mess, 0, sizeof(mess)); - uint64_t word[MAX_PATTERN_LENGTH]; - memset(word, 0, sizeof(word)); + uint64_t patwords[MAX_PATTERN_LENGTH]; + memset(patwords, 0, sizeof(patwords)); uint64_t patioctrl = 0; uint64_t patclkctrl = 0; - uint32_t patlimits[2] = {0, 0}; - uint32_t patloop[6] = {0, 0, 0, 0, 0, 0}; - uint32_t patnloop[3] = {0, 0, 0}; - uint32_t patwait[3] = {0, 0, 0}; + int patlimits[2] = {0, 0}; + int patloop[6] = {0, 0, 0, 0, 0, 0}; + int patnloop[3] = {0, 0, 0}; + int patwait[3] = {0, 0, 0}; uint64_t patwaittime[3] = {0, 0, 0}; - if (receiveData(file_des, word, sizeof(word), INT64) < 0) + if (receiveData(file_des, patwords, sizeof(patwords), INT64) < 0) return printSocketReadError(); if (receiveData(file_des, &patioctrl, sizeof(patioctrl), INT64) < 0) return printSocketReadError(); @@ -7381,9 +7381,9 @@ int set_pattern(int file_des) { return printSocketReadError(); if (receiveData(file_des, patloop, sizeof(patloop), INT32) < 0) return printSocketReadError(); - if (receiveData(file_des, patwait, sizeof(patwait), INT32) < 0) + if (receiveData(file_des, patnloop, sizeof(patnloop), INT32) < 0) return printSocketReadError(); - if (receiveData(file_des, patlimits, sizeof(patlimits), INT32) < 0) + if (receiveData(file_des, patwait, sizeof(patwait), INT32) < 0) return printSocketReadError(); if (receiveData(file_des, patwaittime, sizeof(patwaittime), INT64) < 0) return printSocketReadError(); @@ -7392,9 +7392,10 @@ int set_pattern(int file_des) { functionNotImplemented(); #else if (Server_VerifyLock() == OK) { - LOG(logINFO, ("Setting Pattern Word\n"); + LOG(logINFO, ("Setting Pattern\n")); + LOG(logINFO, ("Setting Pattern Word\n")); for (int i = 0; i < MAX_PATTERN_LENGTH; ++i) { - writePatternWord(i, word[i]); + writePatternWord(i, patwords[i]); } int numLoops = -1, retval0 = -1, retval1 = -1; uint64_t retval64 = -1; @@ -7413,7 +7414,6 @@ int set_pattern(int file_des) { retval0 = patlimits[0]; retval1 = patlimits[1]; setPatternLoop(-1, &retval0, &retval1, &numLoops); - setPatternLoop(-1, &retval0, &retval1, &numLoops); validate(patlimits[0], retval0, "Pattern Limits start address", HEX); validate(patlimits[1], retval1, "Pattern Limits start address", @@ -7421,55 +7421,55 @@ int set_pattern(int file_des) { } if (ret == OK) { retval0 = patloop[0]; - retval1 = patnloop[1]; + retval1 = patloop[1]; numLoops = patnloop[0]; - setPatternLoop(0, &patloop[0], &patloop[1], &patnloop[0]); + setPatternLoop(0, &patloop[0], &patloop[1], &numLoops); validate(patloop[0], retval0, "Pattern Loop 0 start address", HEX); validate(patloop[1], retval1, "Pattern Loop 0 stop address", HEX); - validate(patnloop[0], numLoops, "Pattern Loop 0 num loops", HEX); + validate(patnloop[0], numLoops, "Pattern Loop 0 num loops", HEX); } if (ret == OK) { retval0 = patloop[2]; - retval1 = patnloop[3]; + retval1 = patloop[3]; numLoops = patnloop[1]; - setPatternLoop(1, &patloop[2], &patloop[3], &patnloop[1]); + setPatternLoop(1, &patloop[2], &patloop[3], &numLoops); validate(patloop[2], retval0, "Pattern Loop 1 start address", HEX); validate(patloop[3], retval1, "Pattern Loop 1 stop address", HEX); - validate(patnloop[1], numLoops, "Pattern Loop 1 num loops", HEX); + validate(patnloop[1], numLoops, "Pattern Loop 1 num loops", HEX); } if (ret == OK) { retval0 = patloop[4]; - retval1 = patnloop[5]; + retval1 = patloop[5]; numLoops = patnloop[2]; - setPatternLoop(2, &patloop[4], &patloop[5], &patnloop[2]); + setPatternLoop(2, &patloop[4], &patloop[5], &numLoops); validate(patloop[4], retval0, "Pattern Loop 2 start address", HEX); validate(patloop[5], retval1, "Pattern Loop 2 stop address", HEX); - validate(patnloop[2], numLoops, "Pattern Loop 2 num loops", HEX); + validate(patnloop[2], numLoops, "Pattern Loop 2 num loops", HEX); } if (ret == OK) { - retval0 = setPatternWaitAddress(0, &patwait[0]); + retval0 = setPatternWaitAddress(0, patwait[0]); validate(patwait[0], retval0, "Pattern Loop 0 wait address", HEX); } if (ret == OK) { - retval0 = setPatternWaitAddress(1, &patwait[1]); + retval0 = setPatternWaitAddress(1, patwait[1]); validate(patwait[1], retval0, "Pattern Loop 1 wait address", HEX); } if (ret == OK) { - retval0 = setPatternWaitAddress(2, &patwait[2]); + retval0 = setPatternWaitAddress(2, patwait[2]); validate(patwait[2], retval0, "Pattern Loop 2 wait address", HEX); } if (ret == OK) { - uint64_t retval64 = setPatternWaitTime(0, &patwaittime[0]); + uint64_t retval64 = setPatternWaitTime(0, patwaittime[0]); validate64(patwaittime[0], retval64, "Pattern Loop 0 wait time", HEX); } if (ret == OK) { - retval64 = setPatternWaitTime(1, &patwaittime[1]); + retval64 = setPatternWaitTime(1, patwaittime[1]); validate64(patwaittime[1], retval64, "Pattern Loop 1 wait time", HEX); } if (ret == OK) { - retval64 = setPatternWaitTime(2, &patwaittime[2]); + retval64 = setPatternWaitTime(2, patwaittime[2]); validate64(patwaittime[1], retval64, "Pattern Loop 2 wait time", HEX); } diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 65ba17699..744ba370e 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -1855,8 +1855,7 @@ void Module::setPattern(const std::string &fname) { } } input_file.close(); - std::cout << "sizeof pat:" << sizeof(pat) << std::endl; - sendToDetector(F_SET_PATTERN, pat); + sendToDetector(F_SET_PATTERN, pat, nullptr); } uint64_t Module::getPatternIOControl() { diff --git a/slsSupportLib/src/ToString.cpp b/slsSupportLib/src/ToString.cpp index 121db4233..c78a4b1d0 100644 --- a/slsSupportLib/src/ToString.cpp +++ b/slsSupportLib/src/ToString.cpp @@ -89,7 +89,7 @@ std::string ToString(const slsDetectorDefs::patternParameters &r) { << "patwait1 0x" << r.patwait[1] << std::endl << "patwaittime1 " << std::dec << r.patwaittime[1] << std::hex << std::endl - << "patwait1 0x" << r.patwait[1] << std::endl + << "patwait2 0x" << r.patwait[1] << std::endl << "patwaittime2 " << std::dec << r.patwaittime[2] << std::hex << std::endl << ']';