mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-22 14:38:14 +02:00
fix for datasocket and clientsocket, to be reviewed.
clientsocket: to print origin of error (rx/det) for tcp socket failure datasocket: usleep only for send for rhel7, not for fedora.. when fpath /, fwrite 1, rx_start fails without sending exception
This commit is contained in:
parent
293fda0c7a
commit
c67b7aab4d
@ -638,7 +638,7 @@ int get_server_version(int file_des) {
|
||||
int64_t retval = -1;
|
||||
retval = getServerVersion();
|
||||
LOG(logDEBUG1,
|
||||
("firmware version retval: 0x%llx\n", (long long int)retval));
|
||||
("server version retval: 0x%llx\n", (long long int)retval));
|
||||
return Server_SendResult(file_des, INT64, &retval, sizeof(retval));
|
||||
}
|
||||
|
||||
@ -648,7 +648,7 @@ int get_serial_number(int file_des) {
|
||||
int64_t retval = -1;
|
||||
retval = getDetectorNumber();
|
||||
LOG(logDEBUG1,
|
||||
("firmware version retval: 0x%llx\n", (long long int)retval));
|
||||
("detector number retval: 0x%llx\n", (long long int)retval));
|
||||
return Server_SendResult(file_des, INT64, &retval, sizeof(retval));
|
||||
}
|
||||
|
||||
|
@ -72,17 +72,6 @@ void ClientSocket::readReply(int &ret, void *retval, size_t retval_size) {
|
||||
|
||||
try {
|
||||
Receive(&ret, sizeof(ret));
|
||||
}
|
||||
// debugging
|
||||
catch (sls::SocketError &e) {
|
||||
if (socketType == "Receiver") {
|
||||
throw ReceiverError("Receiver returned: " + std::string(e.what()));
|
||||
} else if (socketType == "Detector") {
|
||||
throw DetectorError("Detector returned: " + std::string(e.what()));
|
||||
} else {
|
||||
throw GuiError(e.what());
|
||||
}
|
||||
}
|
||||
if (ret == slsDetectorDefs::FAIL) {
|
||||
char mess[MAX_STR_LENGTH]{};
|
||||
// get error message
|
||||
@ -99,6 +88,17 @@ void ClientSocket::readReply(int &ret, void *retval, size_t retval_size) {
|
||||
}
|
||||
// get retval
|
||||
Receive(retval, retval_size);
|
||||
}
|
||||
// debugging
|
||||
catch (sls::SocketError &e) {
|
||||
if (socketType == "Receiver") {
|
||||
throw ReceiverError("Receiver returned: " + std::string(e.what()));
|
||||
} else if (socketType == "Detector") {
|
||||
throw DetectorError("Detector returned: " + std::string(e.what()));
|
||||
} else {
|
||||
throw GuiError(e.what());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}; // namespace sls
|
||||
|
@ -68,6 +68,8 @@ int DataSocket::Send(const void *buffer, size_t size) {
|
||||
int data_size = static_cast<int>(size); // signed size
|
||||
while (bytes_sent < (data_size)) {
|
||||
auto this_send = ::write(getSocketId(), buffer, size);
|
||||
usleep(0); // TODO: fix for rhel7 (not fedora) sending 0 chars for mess
|
||||
// (rx_start with fwrite 1 and fpath /)
|
||||
if (this_send <= 0)
|
||||
break;
|
||||
bytes_sent += this_send;
|
||||
|
Loading…
x
Reference in New Issue
Block a user