bool Sensor2DeviceImpl::getPositionCalibrationReport(PositionCalibrationReport* data) { UByte version = GetDeviceInterfaceVersion(); if (version < 5) { PositionCalibrationImpl_Pre5 pci; if (GetInternalDevice()->GetFeatureReport(pci.Buffer, PositionCalibrationImpl_Pre5::PacketSize)) { pci.Unpack(); *data = pci.Settings; return true; } return false; } PositionCalibrationImpl pci; if (GetInternalDevice()->GetFeatureReport(pci.Buffer, PositionCalibrationImpl::PacketSize)) { pci.Unpack(); *data = pci.Settings; return true; } return false; }
bool Sensor2DeviceImpl::setPositionCalibrationReport(const PositionCalibrationReport& data) { UByte version = GetDeviceInterfaceVersion(); if (version < 5) { PositionCalibrationImpl_Pre5 pci(data); return GetInternalDevice()->SetFeatureReport(pci.Buffer, PositionCalibrationImpl_Pre5::PacketSize); } PositionCalibrationImpl pci(data); return GetInternalDevice()->SetFeatureReport(pci.Buffer, PositionCalibrationImpl::PacketSize); }
void LoadedDeviceAdapter::CheckInterfaceVersion() const { long moduleInterfaceVersion, deviceInterfaceVersion; try { moduleInterfaceVersion = GetModuleVersion(); deviceInterfaceVersion = GetDeviceInterfaceVersion(); } catch (const CMMError& e) { throw CMMError("Cannot verify interface compatibility of device adapter", e); } if (moduleInterfaceVersion != MODULE_INTERFACE_VERSION) throw CMMError("Incompatible module interface version (required = " + ToString(MODULE_INTERFACE_VERSION) + "; found = " + ToString(moduleInterfaceVersion) + ")"); if (deviceInterfaceVersion != DEVICE_INTERFACE_VERSION) throw CMMError("Incompatible device interface version (required = " + ToString(DEVICE_INTERFACE_VERSION) + "; found = " + ToString(deviceInterfaceVersion) + ")"); }