mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-22 22:40:02 +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;
|
int64_t retval = -1;
|
||||||
retval = getServerVersion();
|
retval = getServerVersion();
|
||||||
LOG(logDEBUG1,
|
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));
|
return Server_SendResult(file_des, INT64, &retval, sizeof(retval));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -648,7 +648,7 @@ int get_serial_number(int file_des) {
|
|||||||
int64_t retval = -1;
|
int64_t retval = -1;
|
||||||
retval = getDetectorNumber();
|
retval = getDetectorNumber();
|
||||||
LOG(logDEBUG1,
|
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));
|
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 {
|
try {
|
||||||
Receive(&ret, sizeof(ret));
|
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) {
|
if (ret == slsDetectorDefs::FAIL) {
|
||||||
char mess[MAX_STR_LENGTH]{};
|
char mess[MAX_STR_LENGTH]{};
|
||||||
// get error message
|
// get error message
|
||||||
@ -100,5 +89,16 @@ void ClientSocket::readReply(int &ret, void *retval, size_t retval_size) {
|
|||||||
// get retval
|
// get retval
|
||||||
Receive(retval, retval_size);
|
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
|
}; // namespace sls
|
||||||
|
@ -68,6 +68,8 @@ int DataSocket::Send(const void *buffer, size_t size) {
|
|||||||
int data_size = static_cast<int>(size); // signed size
|
int data_size = static_cast<int>(size); // signed size
|
||||||
while (bytes_sent < (data_size)) {
|
while (bytes_sent < (data_size)) {
|
||||||
auto this_send = ::write(getSocketId(), buffer, 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)
|
if (this_send <= 0)
|
||||||
break;
|
break;
|
||||||
bytes_sent += this_send;
|
bytes_sent += this_send;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user