jfjoch_test: Add TCP/IP integration test
This commit is contained in:
+11
-6
@@ -91,6 +91,7 @@ void StreamWriter::ProcessCalibrationImage() {
|
||||
} catch (const std::exception &e) {
|
||||
logger.Warning(e.what());
|
||||
logger.Warning("Error during writing calibration data - skipping");
|
||||
NotifyTcpAck(TCPFrameType::CALIBRATION, false, false, TCPAckCode::DataWriteFailed, e.what());
|
||||
}
|
||||
break;
|
||||
case StreamWriterState::Receiving:
|
||||
@@ -139,6 +140,7 @@ void StreamWriter::ProcessDataImage() {
|
||||
}
|
||||
break;
|
||||
case StreamWriterState::Error:
|
||||
// Error state => Wait till end only
|
||||
case StreamWriterState::Finalized:
|
||||
break;
|
||||
}
|
||||
@@ -164,7 +166,16 @@ void StreamWriter::ProcessEndMessage() {
|
||||
err = e.what();
|
||||
}
|
||||
}
|
||||
bool error_state = (state == StreamWriterState::Error);
|
||||
|
||||
FinalizeDataCollection();
|
||||
|
||||
// Notifications happen only when handling END message
|
||||
// No end message ==> no need to ACK
|
||||
NotifyReceiverOnFinalizedWrite(writer_notification_zmq_addr);
|
||||
NotifyTcpAck(TCPFrameType::END, !error_state, error_state,
|
||||
error_state ? TCPAckCode::EndFailed : TCPAckCode::None,
|
||||
error_state ? err : "");
|
||||
}
|
||||
|
||||
void StreamWriter::FinalizeDataCollection() {
|
||||
@@ -183,12 +194,6 @@ void StreamWriter::FinalizeDataCollection() {
|
||||
hdf5_data_file_statistics.clear();
|
||||
}
|
||||
file_writer.reset();
|
||||
NotifyReceiverOnFinalizedWrite(writer_notification_zmq_addr);
|
||||
NotifyTcpAck(TCPFrameType::END,
|
||||
state != StreamWriterState::Error,
|
||||
state == StreamWriterState::Error,
|
||||
state == StreamWriterState::Error ? TCPAckCode::EndFailed : TCPAckCode::None,
|
||||
state == StreamWriterState::Error ? err : "");
|
||||
logger.Info("Data writing finished");
|
||||
state = StreamWriterState::Finalized;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user