From 7f200d49a0a687e79c10a112db52e40261fbecee Mon Sep 17 00:00:00 2001 From: AliceMazzoleni99 Date: Wed, 29 Jul 2026 15:29:34 +0200 Subject: [PATCH] fixed spi read and write (#1499) * fixed spi read and write * use c array to send chip id etc --- slsDetectorSoftware/src/Module.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 62874e0f8..9632fb408 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -4020,16 +4020,21 @@ void Module::simulatingActivityinDetector(const std::string &functionType, std::vector Module::readSpi(int chip_id, int register_id, int n_bytes) const { + auto client = createDetectorSocket(); int args[] = {chip_id, register_id, n_bytes}; - return sendToDetector>(F_SPI_READ, args); + client.sendCommand(F_SPI_READ, &args, sizeof(args)); + + std::vector retval(n_bytes); + client.readReply(retval.data(), retval.size()); + return retval; } std::vector Module::writeSpi(int chip_id, int register_id, const std::vector &data) { int count = static_cast(data.size()); - int args[] = {chip_id, register_id, count}; auto client = createDetectorSocket(); - client.sendCommand(F_SPI_WRITE, args, sizeof(args)); + int args[] = {chip_id, register_id, count}; + client.sendCommand(F_SPI_WRITE, &args, sizeof(args)); client.Send(data); // Read the output from the SPI write. This contains the data before the // write