Matrix4CalibrationDev::Matrix4CalibrationDev(const DeviceConfig & deviceConfig) : senderThreadActive(false), receiverThreadActive(false), vec1Size(0), vec2Size(0), trackVectors(false), premultiply(false), useAverage(false) { this->deviceDescriptor.setEntityID(deviceConfig.getEntityID()); this->entityID = this->deviceDescriptor.getEntityID(); map<string, Port> portMap; map<string, int> namePortNrMap; addPort(Port("Vector1", "Vector4", Port::Sink, ""), PortNR_Vector1, portMap, namePortNrMap); addPort(Port("Vector2", "Vector4", Port::Sink, ""), PortNR_Vector2, portMap, namePortNrMap); addPort(Port("CalibratedMatrix", "Matrix4", Port::Source, ""), PortNR_CalibratedMatrix, portMap, namePortNrMap); addPort(Port("ApplyVectors", "DigitalChannel", Port::Sink, ""), PortNR_ApplyVectors, portMap, namePortNrMap); addPort(Port("ClearVectors", "DigitalChannel", Port::Sink, ""), PortNR_ClearVectors, portMap, namePortNrMap); addPort(Port("LoadCalibratedMatrix", "DigitalChannel", Port::Sink, ""), PortNR_LoadCalibratedMatrix, portMap, namePortNrMap); addPort(Port("SaveCalibratedMatrix", "DigitalChannel", Port::Sink, ""), PortNR_SaveCalibratedMatrix, portMap, namePortNrMap); addPort(Port("SendCalibratedMatrix", "DigitalChannel", Port::Sink, ""), PortNR_SendCalibratedMatrix, portMap, namePortNrMap); addPort(Port("CalcCalibratedMatrix", "DigitalChannel", Port::Sink, ""), PortNR_CalcCalibratedMatrix, portMap, namePortNrMap); DeviceType deviceType; deviceType.setPortMap(portMap); deviceType.setDeviceTypeName("Matrix4CalibrationDev"); deviceType.setDescription(""); this->deviceDescriptor.setDeviceType(deviceType); this->deviceDescriptor.setNameChannelNrMap(namePortNrMap); try { this->initialSend = deviceConfig.getParameterGroup().getInt("CalibratedMatrix|InitialSend") != 0; TFDEBUG("initialSend = " << this->initialSend); this->calibratedMatrixPath = deviceConfig.getParameterGroup().getString("CalibratedMatrix|Path"); TFDEBUG("calibratedMatrixPath = " << this->calibratedMatrixPath); this->premultiply = deviceConfig.getParameterGroup().getInt("CalibratedMatrix|Pre-multiply") != 0; TFINFO("pre-multiply = " << this->premultiply); this->useAverage = deviceConfig.getParameterGroup().getInt("ApplyVectors|useAverage") != 0; TFINFO("useAverage = " << this->useAverage); } catch(Exception & e) { TFERROR(e.getFormattedString()); } }