From a62d6a2fb8b26ac987c2ec892d233fda521ed004 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 15 Nov 2019 11:58:23 +0100 Subject: [PATCH] gotthard2: veto reference, better code for byte aligment in server --- .../bin/gotthard2DetectorServer_developer | Bin 152204 -> 152204 bytes .../slsDetectorFunctionList.c | 57 +++++++++--------- .../slsDetectorServer_defs.h | 1 + slsSupportLib/include/versionAPI.h | 2 +- 4 files changed, 31 insertions(+), 29 deletions(-) diff --git a/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer b/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer index 420371f3d7a8871e1be15af2777c848c4bd5e9ca..9f60f4d198f3aa736f8ad5eed6ad2de7db5990e7 100755 GIT binary patch delta 36189 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 (lenDataBitsPerchannel - 1 - iBit)) & 0x1); + } + } + + // create command for 4 padding + 1792 bits + 4 bits address = 1800 bits = 225 bytes char buffer[len]; memset(buffer, 0, len); - int iBit = 4; // 4 due to padding - int ich = 0; - for (ich = 0; ich < NCHAN; ++ich) { - // copy 14 bits for each channel - int totalToCopy = lenAduBits; - while (totalToCopy > 0) { - int byteIndex = iBit / 8; - int bitIndex = iBit % 8; - // how much to copy in a byte - int toCopy = 8 - bitIndex; - if (toCopy > totalToCopy) { - toCopy = totalToCopy; - } - int copyMask = (1 << toCopy) - 1; - // value pushed out by whats left and masked - int val = (values[ich] >> (totalToCopy - toCopy)) & copyMask; - if (toCopy + bitIndex != 8) { - val = val << (8 - bitIndex - toCopy); - } - buffer[byteIndex] |= val; - // incrememnt indices - iBit += toCopy; - totalToCopy -= toCopy; + offset = 0; + // loop through buffer elements + for (ich = 0; ich < len; ++ich) { + // loop through each bit in buffer element + int iBit = 0; + for (iBit = 0; iBit < 8; ++iBit) { + buffer[ich] |= (commandBytes[offset++] << (8 - 1 - iBit)); } } // address at the end - buffer[16] |= (ASIC_VETO_REF_ADDR); + buffer[len -1] |= (ASIC_VETO_REF_ADDR); if (ASIC_Driver_Set(chipIndex, sizeof(buffer), buffer) == FAIL) { return FAIL; diff --git a/slsDetectorServers/gotthard2DetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/gotthard2DetectorServer/slsDetectorServer_defs.h index 7345019ac..abce7198b 100644 --- a/slsDetectorServers/gotthard2DetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/gotthard2DetectorServer/slsDetectorServer_defs.h @@ -82,6 +82,7 @@ enum PLLINDEX {READOUT_PLL, SYSTEM_PLL}; /** Chip Definitions */ +#define ASIC_ADDR_MAX_BITS (4) #define ASIC_CURRENT_INJECT_ADDR (0x9) #define ASIC_VETO_REF_ADDR (0xA) #define ASIC_GAIN_MAX_BITS (2) diff --git a/slsSupportLib/include/versionAPI.h b/slsSupportLib/include/versionAPI.h index 366b3cfe1..3c93e68e8 100644 --- a/slsSupportLib/include/versionAPI.h +++ b/slsSupportLib/include/versionAPI.h @@ -9,4 +9,4 @@ #define APIJUNGFRAU 0x191111 #define APIEIGER 0x191111 #define APIMYTHEN3 0x191111 -#define APIGOTTHARD2 0x191114 +#define APIGOTTHARD2 0x191115