diff --git a/owlps-positioning/src/calibrationrequest.cc b/owlps-positioning/src/calibrationrequest.cc index 3ca1b7a..bfd1bb4 100644 --- a/owlps-positioning/src/calibrationrequest.cc +++ b/owlps-positioning/src/calibrationrequest.cc @@ -3,6 +3,29 @@ +/* *** Constructors *** */ + + +CalibrationRequest::CalibrationRequest(uint_fast8_t _type): + reference_point(NULL), direction(Direction()) +{ + type = _type ; +} + + +CalibrationRequest:: +CalibrationRequest(const Request &source, + ReferencePoint *_reference_point = NULL, + const Direction &_direction, + uint_fast8_t _type): + Request(source), reference_point(_reference_point), + direction(_direction) +{ + type = _type ; +} + + + /* *** Write accessors *** */ diff --git a/owlps-positioning/src/calibrationrequest.hh b/owlps-positioning/src/calibrationrequest.hh index b504154..4d85529 100644 --- a/owlps-positioning/src/calibrationrequest.hh +++ b/owlps-positioning/src/calibrationrequest.hh @@ -16,18 +16,14 @@ protected: Direction direction ; public: - CalibrationRequest(void): - reference_point(NULL), direction(Direction()) {} - + CalibrationRequest(uint_fast8_t _type = OWL_REQUEST_AUTOCALIBRATION) ; CalibrationRequest(const CalibrationRequest &source): Request(source), reference_point(source.reference_point), direction(source.direction) {} - CalibrationRequest(const Request &source, - ReferencePoint *_reference_point = NULL, - const Direction &_direction = Direction()): - Request(source), reference_point(_reference_point), - direction(_direction) {} + ReferencePoint *_reference_point, + const Direction &_direction = Direction(), + uint_fast8_t _type = OWL_REQUEST_AUTOCALIBRATION) ; ~CalibrationRequest(void) {} diff --git a/owlps-positioning/src/inputcsv.cc b/owlps-positioning/src/inputcsv.cc index c2c1dde..fc4a6ff 100644 --- a/owlps-positioning/src/inputcsv.cc +++ b/owlps-positioning/src/inputcsv.cc @@ -108,7 +108,7 @@ const Request& InputCSV::get_next_request() if (type == OWL_REQUEST_CALIBRATION || type == OWL_REQUEST_AUTOCALIBRATION) { - current_request_to_calibration_request() ; + current_request_to_calibration_request(type) ; CalibrationRequest *request = static_cast(current_request) ; request->set_direction(direction) ; diff --git a/owlps-positioning/src/inputmedium.cc b/owlps-positioning/src/inputmedium.cc index cb62e20..4fa7d56 100644 --- a/owlps-positioning/src/inputmedium.cc +++ b/owlps-positioning/src/inputmedium.cc @@ -23,14 +23,19 @@ InputMedium::~InputMedium() /* *** Operations *** */ -void InputMedium::current_request_to_calibration_request() +void InputMedium:: +current_request_to_calibration_request(uint_fast8_t request_type) { if (dynamic_cast(current_request) != NULL) - return ; + { + current_request->set_type(request_type) ; + return ; + } Request *tmp = current_request ; current_request = NULL ; current_request = new CalibrationRequest(*tmp) ; + current_request->set_type(request_type) ; delete tmp ; } diff --git a/owlps-positioning/src/inputmedium.hh b/owlps-positioning/src/inputmedium.hh index 0bdc3cb..a08d26c 100644 --- a/owlps-positioning/src/inputmedium.hh +++ b/owlps-positioning/src/inputmedium.hh @@ -50,7 +50,8 @@ public: virtual const Request& get_next_request(void) = 0 ; /// Converts #current_request into a CalibrationRequest - void current_request_to_calibration_request(void) ; + void current_request_to_calibration_request( + uint_fast8_t request_type = OWL_REQUEST_CALIBRATION) ; /// Clears (reallocates to Request if needed) #current_request void clear_current_request(void) ; diff --git a/owlps-positioning/src/inputudpsocket.cc b/owlps-positioning/src/inputudpsocket.cc index 6903a5a..e9b0be9 100644 --- a/owlps-positioning/src/inputudpsocket.cc +++ b/owlps-positioning/src/inputudpsocket.cc @@ -144,7 +144,7 @@ const Request& InputUDPSocket::get_next_request() if (request.type == OWL_REQUEST_CALIBRATION || request.type == OWL_REQUEST_AUTOCALIBRATION) { - current_request_to_calibration_request() ; + current_request_to_calibration_request(request.type) ; CalibrationRequest *calib_request = static_cast(current_request) ;