Go to the documentation of this file.
100 using namespace xsens;
103 #if 1 && defined(XSENS_RELEASE) && defined(XSENS_DEBUG)
105 #define ONLYFIRSTMTX2 if (!deviceId().isMtx2() || firstChild() == this)
107 #define ONLYFIRSTMTX2
111 #define TOADUMP 0 // set to 0 to disable
113 #define CREATETOADUMPFILE() if (this == master()) do { if (m_toaDumpFile != nullptr) { fflush(m_toaDumpFile); fclose(m_toaDumpFile); } m_toaDumpFile = fopen(xprintf("toadump_%08X_%p_%llu.csv", deviceId().toInt(), this, XsTimeStamp::nowMs()).c_str(), "wt"); } while(0)
115 #define CREATETOADUMPFILE() ((void)0)
119 #ifndef XSENS_RELEASE
120 #define LOGTRANSACTIONS 1 // enable in full debug build
122 #define LOGTRANSACTIONS 0 // disable in release and rd builds
151 uint8_t
const* buffy =
msg.getMessageStart();
152 rv.reserve((sz + 1) * 2);
153 for (
XsSize i = 0; i < sz; ++i)
154 rv.append(xprintf(
"%02X", (
unsigned int)buffy[i]));
157 #define TRANSACTIONLOG(...) JLDEBUGG(__VA_ARGS__)
159 #define TRANSACTIONLOG(...) ((void) 0)
168 , m_unavailableDataBoundary(-1)
172 , m_communicator(nullptr)
173 , m_logFileInterface(nullptr)
176 , m_writeToFile(false)
177 , m_isInitialized(false)
178 , m_terminationPrepared(false)
179 , m_gotoConfigOnClose(true)
180 , m_justWriteSetting(false)
181 , m_skipEmtsReadOnInit(true)
183 , m_startRecordingPacketId(-1)
184 , m_stopRecordingPacketId(-1)
185 , m_stoppedRecordingPacketId(-1)
187 , m_toaDumpFile(nullptr)
200 , m_unavailableDataBoundary(-1)
204 , m_communicator(comm)
205 , m_logFileInterface(nullptr)
208 , m_writeToFile(false)
209 , m_isInitialized(false)
210 , m_terminationPrepared(false)
211 , m_gotoConfigOnClose(true)
212 , m_justWriteSetting(false)
213 , m_skipEmtsReadOnInit(false)
215 , m_startRecordingPacketId(-1)
216 , m_stopRecordingPacketId(-1)
217 , m_stoppedRecordingPacketId(-1)
219 , m_toaDumpFile(nullptr)
248 , m_unavailableDataBoundary(-1)
249 , m_deviceId(childDeviceId)
252 , m_communicator(nullptr)
253 , m_logFileInterface(nullptr)
254 , m_master(masterDevice)
256 , m_writeToFile(false)
257 , m_isInitialized(false)
258 , m_terminationPrepared(false)
259 , m_gotoConfigOnClose(true)
260 , m_justWriteSetting(false)
261 , m_skipEmtsReadOnInit(true)
263 , m_startRecordingPacketId(-1)
264 , m_stopRecordingPacketId(-1)
265 , m_stoppedRecordingPacketId(-1)
267 , m_toaDumpFile(nullptr)
381 if (oldState != newState)
579 auto item = std::find_if(cfg.begin(), cfg.end(),
582 return (cfg.m_dataIdentifier & mask) == dataType;
586 if (item == cfg.end())
647 dataType = dataType & mask;
649 for (XsOutputConfigurationArray::const_iterator i = configurations.begin(); i != configurations.end(); ++i)
651 if (dataType == (i->m_dataIdentifier & mask))
687 JLDEBUGG(
"Device " <<
deviceId() <<
" has firmware version " << version.toString());
689 JLWRITEG(
"Device " <<
deviceId() <<
" has firmware version " << version.toString());
701 if (message.getDataSize() > 3)
703 if (message.getDataSize() > 7)
724 else if (!myLock->isLocked())
889 snd.setDataByte(XsBaud::rateToCode(baudrate));
895 comm->
portInfo().baudrate() == baudrate ||
1115 snd.setBusId(
busId());
1153 snd.setBusId(
busId());
1154 bool wasEmpty = config.empty();
1161 auto const rv = rcv.toResultValue();
1224 sndType.resizeData(2);
1225 sndType.setDataShort(type);
1234 sndSkip.setBusId(
busId());
1235 sndSkip.resizeData(2);
1236 sndSkip.setDataShort(skipFactor);
1241 m_config.masterInfo().m_outputSkipFactor = skipFactor;
1245 sndPer.resizeData(2);
1246 sndPer.setDataShort(period);
1251 m_config.masterInfo().m_samplingPeriod = period;
1278 snd.setBusId(
busId());
1280 snd.setDataShort((uint16_t)method);
1345 std::shared_ptr<ReplyObject> reply = comm->
addReplyObject(messageId);
1353 messageReceive = reply->message((
uint32_t)(
unsigned int)timeout);
1355 if (messageReceive.getMessageId() != messageId)
1374 std::shared_ptr<ReplyObject> reply = comm->
addReplyObject(messageId);
1378 messageReceive = reply->message((
uint32_t)(
unsigned int)timeout);
1380 if (messageReceive.getMessageId() != messageId)
1396 messageReceive = reply->message((
uint32_t)(
unsigned int)timeout);
1398 if (messageReceive.getMessageId() != reply->msgId())
1413 return std::shared_ptr<ReplyObject>();
1437 switch (
msg.getMessageId())
1481 uint8_t errorCode =
msg.getDataByte(0);
1525 if (it->first != pid)
1529 it->second->merge(*pack,
true);
1598 if (!p.containsFrameRange())
1601 int64_t startPid = p.packetId() - p.frameRange().interval();
1618 std::unique_ptr<XsDataPacket> pack(
new XsDataPacket(packet));
1620 int64_t current = pack->packetId();
1623 fprintf(
master()->
m_toaDumpFile,
"%llu,%llu,%llu\n", current, pack->timeOfArrival().msTime(), pack->estimatedTimeOfSampling().msTime());
1628 JLWRITEG(
this <<
" [TOALOG] pid: " << current <<
1630 " awindaframenr: " << packet.awindaSnapshot().m_frameNumber <<
1631 " packetTOA: " << pack->timeOfArrival().msTime() <<
1632 " fastest: " << fastest <<
1633 " slowest: " << slowest <<
1634 " etos " << pack->estimatedTimeOfSampling().msTime());
1638 bool interpolate =
false;
1641 int64_t dpc = current - fastest;
1645 int64_t firstMissed = fastest + 1;
1646 int64_t lastMissed = current - 1;
1648 JLDEBUGG(
"Detected " << (dpc - 1) <<
" packets have been missed by device " <<
deviceId() <<
", last was " << fastest <<
" (" << (uint16_t) fastest <<
") current is " << current <<
" (" << (uint16_t) current <<
")");
1649 onMissedPackets(
this, (
int) dpc - 1, (
int) firstMissed, (
int) lastMissed);
1651 for (int64_t i = firstMissed; i <= lastMissed; ++i)
1666 if (current >= fastest)
1668 JLTRACEG(
"Processing (live) packet " << current);
1669 std::unique_ptr<XsDataPacket> copy(
new XsDataPacket(*pack));
1706 devs.push_back(
this);
1733 JLDEBUGG(
"Device " <<
deviceId() <<
" ignoring (buffered) packet " << current <<
" because it is not newer than " << slowest);
1862 JLALERTG(
"Failed to go to config");
1867 snd.setBusId(
busId());
1876 snd.setBusId(
busId());
1881 JLALERTG(
"Failed to req configuration");
1888 snd.setBusId(
busId());
1911 catch (XsDeviceConfigurationException&)
1959 snd.setBusId(
busId());
1973 return reset(
false);
2051 JLERRORG(
"A file is already open");
2056 if (newfile->create(filename))
2061 getDateTime(&dateTime);
2062 getDateAsString((
char*)
m_config.masterInfo().m_date, &dateTime);
2063 getTimeAsString((
char*)
m_config.masterInfo().m_time, &dateTime);
2072 newfile->close(
true);
2218 if (packet.containsAwindaSnapshot())
2219 return packet.isAwindaSnapshotARetransmission();
2272 int64_t packetId = it->first;
2274 auto missingDataIsUnavailable = [
this](int64_t rFirst, int64_t rLast)
2292 for (int64_t r = rFirst; r < rLast; ++r)
2307 int64_t rFirst = expectedPacketId >= 0 ? expectedPacketId : packetId;
2308 int64_t rLast = packetId;
2309 if (it->second->containsFrameRange())
2311 XsRange rng = it->second->frameRange();
2312 rFirst = rng.first() + 1;
2315 if ((expectedPacketId >= 0) && (packetId > expectedPacketId))
2317 if (!missingDataIsUnavailable(rFirst, rLast))
2324 else if (it->second->containsFrameRange())
2328 if (!missingDataIsUnavailable(rFirst, rLast))
2364 devs.push_back(
this);
2385 std::unique_ptr<xsens::Lock> myLock;
2406 return std::vector<int>();
2687 (void)profileCurrent;
2997 (void)transportModeEnabled;
3082 std::unique_ptr<xsens::Lock> myLock;
3095 return object->logFileName();
3108 std::vector<int>::iterator p = std::max_element(frameRates.begin(), frameRates.end());
3109 if (p != frameRates.end())
3423 bool clr = ((
m_options & mask) != (upd & mask));
3436 return (
m_options & options) == options;
3517 int XsDevice::radioQualityIndication()
const
3689 return comm->
portInfo().portName();
3705 #ifndef XSENS_NO_PORT_NUMBERS
3709 int XsDevice::portNumber()
const
3714 return comm->
portInfo().portNumber();
4048 result.push_back(setting);
4095 return std::vector<XsDevice*>();
4284 snd.setBusId(
busId());
4285 snd.setDataByte(0, 0);
4286 snd.setDataByte(255, 1);
4295 snd.setBusId(
busId());
4586 (void) packetHandler;
4600 (void) firstNewPacketId;
4636 return const_cast<XsDevice*
>(
this);
virtual bool setPortConfiguration(XsIntArray &config)
Change the port configuration of a device.
@ XDOF_None
When set to 1, disables all option flags.
#define XS_BID_MASTER
The bus identifier of the master device.
XsOutputConfiguration findConfiguration(XsDataIdentifier dataType) const
virtual bool powerDown()
Tell the device to power down completely.
int64_t getStartRecordingPacketId() const
Return the ID of the first packet that should be recorded.
virtual std::vector< int > supportedUpdateRates(XsDataIdentifier dataType=XDI_None) const
Ask the device for its supported update rates for the given dataType.
@ XRV_NOPORTOPEN
288: No serial port opened for reading/writing
void addChainedManager(CallbackManagerXda *cm)
Add a chained manager to the list.
virtual DataLogger XSNOEXPORT * logFileInterface(std::unique_ptr< xsens::Lock > &myLock) const
@ XDOF_DisableAutoMeasurement
When set to 1, the MT will stay in Config Mode upon start up.
virtual bool expectingRetransmissionForPacket(int64_t packetId) const
void removeProtocolHandler(XsProtocolType type)
Removes a protocol handler.
bool isInitialized() const
Returns true when the device is initialized.
virtual bool setCanOutputConfiguration(XsCanOutputConfigurationArray &config)
Set the CAN output configuration for this device.
virtual XSNOEXPORT void handleUnavailableData(int64_t frameNumber)
bool hasProtocol(XsProtocolType type) const
struct XsFilterProfile XsFilterProfile
struct XsSyncSettingArray XsSyncSettingArray
uint16_t m_frequency
The frequency.
XsDataPacket lastAvailableLiveData() const
Return the last available live data.
uint8_t m_fwRevRevision
The revision version of the firmware.
#define TRANSACTIONLOG(...)
virtual XsTimeInfo utcTime() const
Gets the 'UTC Time' setting of the device.
struct XsOutputConfiguration XsOutputConfiguration
struct XsTimeInfo XsTimeInfo
A list of XsDataPacketPtr values.
A class that represents a matrix of real numbers.
virtual XsVector gnssLeverArm() const
struct XsDataPacket XsDataPacket
XsDevice const * findDeviceConst(XsDeviceId const &deviceid) const
Find the child device with deviceid.
virtual bool setRs485TransmissionDelay(uint16_t delay)
Set the transmission delay used for RS485 transmissions.
virtual XsSelfTestResult runSelfTest()
Run the self test for the device.
virtual bool enableProtocol(XsProtocolType protocol)
Enable an additional communication protocol when reading messages.
XsDeviceId const & deviceId() const
Return the device ID of the device.
void onAllRecordedDataAvailable(XsDevicePtrArray *devs, const XsDataPacketPtrArray *packets) override
The XsCallback::onAllRecordedDataAvailable() callback forwarding function.
bool isStandaloneDevice() const
Returns true if this is a standalone device (not a child of another device and not a container device...
@ XSO_Calibrate
Compute calibrated inertial data from raw data and temperature.
A class that does the message deserialization.
void removeChainedManager(CallbackManagerXda *cm)
Remove achained manager from the list.
A class that represents a vector of real numbers.
void useLogInterface(DataLogger *logger)
Uses log interface for a given data logger.
struct XsFilterProfileArray XsFilterProfileArray
virtual bool abortLoadLogFile()
Aborts loading a logfile.
virtual XSNOEXPORT void handleMessage(const XsMessage &msg)
virtual bool startRepresentativeMotion()
Let the user indicate that he is starting the representative motion for the In-Run Compass Calibratio...
virtual bool setErrorMode(XsErrorMode errormode)
Sets the error mode of the device.
virtual XsResultValue gotoMeasurement()=0
Request a device to go to measurement mode.
virtual bool storeFilterState()
Store orientation filter state in the device.
int onWriteMessageToLogFile(XsDevice *dev, const XsMessage *message) override
The XsCallback::onWriteMessageToLogFile() callback forwarding function.
virtual XSNOEXPORT void onMessageDetected2(XsProtocolType type, const XsByteArray &rawMessage)
virtual XsFilterProfileArray availableXdaFilterProfiles() const
Return the list of filter profiles available on the host PC.
virtual XsUbloxGnssPlatform ubloxGnssPlatform() const
Returns the device GNSS platform for u-blox GNSS receivers.
XsDataIdentifier m_dataIdentifier
The data identifier.
static bool supportsSyncSettings(XsDeviceId const &deviceId)
Determines whether the device specified by deviceId supports sync settings.
DataPacketCache m_dataCache
A data cache.
virtual bool isReadingFromFile() const
Returns true if the device is reading from a file.
@ XSO_Orientation
Compute orientation, the orientation is typically only computed in one stream. If not specified the s...
void onBufferedDataAvailable(XsDevice *dev, const XsDataPacket *data) override
The XsCallback::onBufferedDataAvailable() callback forwarding function.
A list of uint8_t values.
virtual uint16_t stringOutputType() const
Returns the string output type.
virtual int packetErrorRate() const
Returns the packet error rate for the for the device.
virtual uint16_t stringSamplePeriod() const
Returns the sample period for string output.
virtual XsOperationalMode operationalMode() const
Returns the operational mode.
virtual XsDataPacket getDataPacketByIndex(XsSize index) const
Return the cached data packet with index.
struct XsByteArray XsByteArray
virtual XsPortInfo portInfo() const =0
DebugFileType * m_toaDumpFile
To a dump file.
virtual XsDevice const * firstChild() const
virtual bool setInitialPositionLLA(const XsVector &lla)
Sets the 'Latitude Longitude Altitude' setting of the device to the given vector.
Message protocol handling class.
virtual XSNOEXPORT ~XsDevice()
Destroy the device.
void onRecordedDataAvailable(XsDevice *dev, const XsDataPacket *data) override
The XsCallback::onRecordedDataAvailable() callback forwarding function.
virtual XSNOEXPORT void handleErrorMessage(const XsMessage &msg)
virtual bool setSerialBaudRate(XsBaudRate baudrate)
Change the serial baudrate to baudrate.
XsString lastResultText() const
uint32_t defaultTimeout() const
void retainPacket(XsDataPacket const &pack)
Contains the result of the representative motion processed by ICC.
virtual XsDeviceState deviceState() const
Return the state of this device.
virtual XsDevice * master() const
Return the master device of this device.
virtual void removeRef()
Decrease this XsDevices reference counter with 1.
virtual XSNOEXPORT void onEofReached()
virtual XsFilterProfile xdaFilterProfile() const
Gets the filter profile in use for computing orientations on the host PC.
xsens::Mutex m_logFileMutex
The mutex for guarding access to the log file.
A list of XsFilterProfile values.
void setMasterDevice(XsDevice *masterDevice)
Sets a master device.
XsDevice(XsDeviceId const &id)
Construct an empty device with device id id.
@ XDI_None
Empty datatype.
bool m_skipEmtsReadOnInit
Skip EMTS read on init boolean variable.
virtual bool isInitialBiasUpdateEnabled() const
Returns if the device does gyroscope bias estimation when switching to measurement mode.
virtual XsByteArray readMetaDataFromLogFile()
Returns internal meta-data about the recording that some devices store in the mtb logfile.
bool supportsSyncSettings(XsDeviceId const &deviceId)
Structure containing a full device configuration as returned by the ReqConfig message.
virtual void reinitializeProcessors()
XsDataPacket & latestBufferedPacket()
XsOutputConfigurationArray m_outputConfiguration
A devices output configuration.
virtual bool XSNOEXPORT initialize()
virtual bool isInSyncStationMode()
static bool packetContainsRetransmission(XsDataPacket const &pack)
A class for logging the mtb data.
XsDeviceId masterDeviceId() const
virtual int16_t lastKnownRssi() const
Returns the last known RSSI value of the device.
bool m_terminationPrepared
Termination prepared boolean variable.
struct XsCanOutputConfigurationArray XsCanOutputConfigurationArray
XSNOEXPORT XSDEPRECATED XsGnssPlatform gnssPlatform() const
virtual int locationId() const
Get the location ID of the device.
virtual bool setXdaFilterProfile(int profileType)
Sets the filter profile to use for computing orientations on the host PC.
virtual bool sendCustomMessage(const XsMessage &messageSend, bool waitForResult, XsMessage &messageReceive, int timeout=0)
Send a custom message messageSend to the device and possibly wait for a result.
XsRejectReason
Identifiers for why a device's connection was rejected.
const XsDevice * deviceAtBusIdConst(int busid) const
Return the device with bus ID busid.
virtual XsBaudRate serialBaudRate() const
The baud rate configured for cabled connection.
void setCommunicator(Communicator *comm)
virtual bool deviceIsDocked(XsDevice *dev) const
Check if the device is docked.
int64_t m_stoppedRecordingPacketId
The ID of the last packet that was recorded. Remains valid after Flushing has ended,...
virtual bool setSyncSettings(const XsSyncSettingArray &settingList)
Set the synchronization settings of the device.
virtual bool isBusPowerEnabled() const
Returns if the Xbus is powering its child devices or not.
A list of XsDeviceId values.
virtual bool isContainerDevice() const
Returns true if this device can have child devices.
virtual bool setStringOutputMode(uint16_t type, uint16_t period, uint16_t skipFactor)
Sets the string output mode for this device.
bool isMasterDevice() const
Returns true if this is the master device (not a child of another device)
XsConnectivityState m_connectivity
A current device connectivity state.
std::shared_ptr< ReplyObject > addReplyObject(uint8_t mid)
Add a MidReplyObject.
virtual XsVersion hardwareVersion() const
Return the hardware version of the device.
virtual XSNOEXPORT void handleWarningMessage(const XsMessage &msg)
virtual XsFilterProfileArray availableOnboardFilterProfiles() const
Return the list of filter profiles available on the device.
virtual bool writeMessage(const XsMessage &message)=0
Write a message to the logging stream.
virtual bool disableProtocol(XsProtocolType protocol)
Disable a communication protocol previously added by XsDevice::enableProtocol.
Contains an interpreted data message. The class provides easy access to the contained data through it...
struct XsVersion XsVersion
void onAllDataAvailable(XsDevicePtrArray *devs, const XsDataPacketPtrArray *packets) override
The XsCallback::onAllDataAvailable() callback forwarding function.
virtual bool sendRawMessage(const XsMessage &message)
Send a message directly to the communicator.
static bool checkDataEnabled(XsDataIdentifier dataType, XsOutputConfigurationArray const &configurations)
virtual void endRecordingStream()
struct XsOutputConfigurationArray XsOutputConfigurationArray
virtual int updateRate() const
Get the legacy update rate of the device.
XsDataPacket * m_latestBufferedPacket
A copy of the latest ready recording packet. This is the last packet that was popped off the front of...
virtual XsFilterProfile onboardFilterProfile() const
Gets the filter profile in use by the device for computing orientations.
bool m_justWriteSetting
Just write setting boolean variable.
virtual XsResultValue gotoConfig(bool detectRs485=false)=0
Request a device to go to config mode.
Contains the results of a self-test performed by an Xsens device.
virtual int subDeviceCount() const
Returns the number of sub-devices of this device.
virtual void writeDeviceSettingsToFile()
Write the emts/wms/xms of the device and all its children to the open logfile.
virtual XsFilePos logFileReadPosition() const =0
void setFirmwareVersion(const XsVersion &version)
virtual std::vector< XsDevice * > children() const
Return a managed array containing the child-devices this device has. For standalone devices this is a...
XsResultValue createLogFile(const XsString &filename)
Create a log file for logging.
virtual XsVector initialPositionLLA() const
Gets the 'Latitude Longitude Altitude' setting of the device.
virtual XSNOEXPORT bool requestUtcTime()
virtual XsResultValue setOutputConfigurationInternal(XsOutputConfigurationArray &config)
virtual XsPortInfo portInfo() const
The port information of the connection.
struct XsStringOutputTypeArray XsStringOutputTypeArray
@ XEM_Invalid
No error mode available.
virtual bool shouldDoRecordedCallback(XsDataPacket const &packet) const
XsOption m_options
The options.
virtual bool stealthMode() const
Return the state of the stealth mode setting.
virtual bool isPortOpen() const =0
@ XRV_ALREADYOPEN
269: An I/O device is already opened with this object
A class that implements a quaternion.
virtual uint32_t supportedStatusFlags() const
Returns a bitmask with all the status flags supported by this device.
virtual bool reinitialize()
Reinitialize the XsDevice.
virtual XsString productCode() const
Return the product code of the device.
virtual bool transportMode()
Returns the current state of the transport mode feature.
virtual bool isRadioEnabled() const
Returns if the radio is enabled.
virtual XsOutputConfigurationArray outputConfiguration() const
Returns the currently configured output of the device.
XsDataPacket & latestLivePacket()
virtual int childCount() const
Return the number of child-devices this device has. For standalone devices this is always 0.
virtual XSNOEXPORT void onMessageReceived(const XsMessage &message)
XsSize getDataPacketCount() const
Return the current size of the retained data packet cache.
virtual void setRecordingStartFrame(uint16_t startFrame)
virtual int updateRateForDataIdentifier(XsDataIdentifier dataType) const
Returns the currently configured update rate for the supplied dataType.
virtual void flushInputBuffers()
Clear the inbound data buffers of the device.
The protocol handler for a different NMEA data types.
virtual void clearProcessors()
int64_t m_unavailableDataBoundary
A packet ID of the last sample we know to be unavailable.
static bool isCompatibleSyncSetting(XsDeviceId const &deviceId, XsSyncSetting const &setting1, XsSyncSetting const &setting2)
Determines whether setting1 is compatible with setting2 for deviceId deviceId.
virtual void processBufferedPacket(XsDataPacket &pack)
void setDeviceId(const XsDeviceId &deviceId)
virtual XsString shortProductCode() const
Return the shortened product code of the device suitable for display.
void onLiveDataAvailable(XsDevice *dev, const XsDataPacket *packet) override
The XsCallback::onLiveDataAvailable() callback forwarding function.
@ XRV_OK
0: Operation was performed successfully
Communicator XSNOEXPORT * communicator() const
Communicator * m_communicator
A communicator.
virtual bool isReadingFromFile() const =0
virtual bool setFixedGravityEnabled(bool enable)
Sets whether the fixed gravity value should be used or if it should be computed from the initialPosit...
A class whose objects can be used to store a range. It provides method to check whether a value is in...
virtual void addProtocolHandler(IProtocolHandler *handler)
Adds a protocol handler.
@ XDI_FullTypeMask
Mask to get the type of data, without the data format.
virtual void flushPort()=0
Flushes all remaining data on the open port.
virtual XsStringOutputTypeArray supportedStringOutputTypes() const
Ask the device for its supported string output types.
virtual bool stopRecording()
Stop recording incoming data.
virtual void loadLogFile(XsDevice *device)=0
Load a complete logfile.
virtual bool setNoRotation(uint16_t duration)
Set the no rotation period to duration.
XsOption
Xda options, used to control the kind of data processing done by XDA.
virtual XSNOEXPORT void handleWakeupMessage(const XsMessage &msg)
virtual bool setSyncStationMode(bool enabled)
Set the Sync Station mode of the Awinda Station device.
XsResultValue
Xsens result values.
@ XPT_Nmea
The NMEA protocol, only the messages that can be sent from Xsens devices are recognized.
virtual int64_t latestBufferedPacketId() const
void waitForLoadLogFileDone() const
Wait for the file operation started by loadLogFile to complete.
void onDataUnavailable(XsDevice *dev, int64_t packetId) override
The XsCallback::onDataUnavailable() callback forwarding function.
XsResultValue lastResult() const
Get the result value of the last operation.
virtual int busId() const
The bus ID for this device.
virtual bool interpolateMissingData(XsDataPacket const &pack, XsDataPacket const &prev, std::function< void(XsDataPacket *)> packetHandler)
virtual XSNOEXPORT void onSessionRestarted()
void set(XsResultValue res, XsString const &text)
Sets the last results.
A list of XsOutputConfiguration values.
#define CREATETOADUMPFILE()
void updateLastAvailableLiveDataCache(XsDataPacket const &pack)
virtual bool resetRemovesPort() const
void copyCallbackHandlersFrom(CallbackManagerXda *cm, bool chain=true)
Copy all handlers from cm into this manager.
An abstract class for data logging.
virtual uint16_t rs485TransmissionDelay() const
Returns the transmission delay used for RS485 transmissions.
bool doTransaction(const XsMessage &message)
Write a message and await the reply.
void onWakeupReceived(XsDevice *dev) override
The XsCallback::onWakeupReceived() callback forwarding function.
A structure for storing all xsens sync settings.
std::pair< iterator, bool > insert(int64_t id, XsDataPacket const &p)
Inserts a data packet.
Namespace for time and date constants and operations.
XsDataIdentifier
Defines the data identifiers.
virtual XsDevice * getDeviceFromLocationId(uint16_t locId)
Get the device given locId.
virtual bool isMotionTracker() const
Returns true if this is a motion tracker.
Contains information about an available filter profile.
virtual bool loadLogFile()
Load a complete logfile.
A base struct for a communication interface.
struct XsPortInfo XsPortInfo
virtual bool isOperational() const
XsDeviceId m_deviceId
An ID of the device.
virtual XsDevice * findDevice(XsDeviceId const &deviceid) const
Find the child device with deviceid.
enum XsBaudRate XsBaudRate
Communication speed.
virtual void addRef()
Increase reference count of XsDevice pointer XsDevice pointers stay alive while reference counter is ...
virtual XSNOEXPORT void prepareForTermination()
virtual XsDeviceConfiguration const &XSNOEXPORT deviceConfigurationConst() const
struct XsIccRepMotionResult XsIccRepMotionResult
XsDeviceState m_state
A current device state.
virtual bool setDeviceBufferSize(uint32_t frames)
Request the device to set it's internal buffer to the specified size.
virtual XsAccessControlMode accessControlMode() const
Request the access control mode of the master device.
virtual bool replaceFilterProfile(XsFilterProfile const &profileCurrent, XsFilterProfile const &profileNew)
Replaces profileCurrent by profileNew in the device.
bool setOutputConfiguration(XsOutputConfigurationArray &config)
Set the output configuration for this device.
Class to set and retrieve parameters from a XsDevice object.
Contains a descriptor for opening a communication port to an Xsens device.
XsDataPacket * m_latestLivePacket
A copy of the latest ready live packet. This is the packet with the highest 64-bit sample counter so ...
void onAllLiveDataAvailable(XsDevicePtrArray *devs, const XsDataPacketPtrArray *packets) override
The XsCallback::onAllLiveDataAvailable() callback forwarding function.
Macros and types for use in the Xsens communication protocol and Xsens Device API classes.
virtual XsVersion firmwareVersion() const
Return the firmware version.
struct XsQuaternion XsQuaternion
void onNonDataMessage(XsDevice *dev, XsMessage const *message) override
The Xscallback::onNonDataMessage() callback forwarding function.
virtual void setRecordingStopFrame(uint16_t stopFrame)
virtual XsSyncSettingArray syncSettings() const
Get all the current synchronization settings of the device.
virtual XsConnectivityState connectivityState() const
Returns the connectivity state of the device.
virtual XsBaudRate baudRate() const
Get the baud rate (communication speed) of the serial port on which the given deviceId is connected.
void onMessageSentToDevice(XsDevice *dev, XsMessage const *message) override
The Xscallback::onMessageSentToDevice() callback forwarding function.
void onConnectivityChanged(XsDevice *dev, XsConnectivityState newState) override
The XsCallback::onConnectivityChanged() callback forwarding function.
virtual bool setHeadingOffset(double offset)
Set the 'heading offset' setting of the device.
virtual bool restoreFactoryDefaults()
Restore the device to its factory default settings.
virtual bool isLoadLogFileInProgress() const
virtual bool representativeMotionState()
Retrieves the active representative motion state for the In-Run Compass Calibration.
int64_t m_stopRecordingPacketId
The ID of the last packet that should be / was recorded. Only valid in Recording/Flushing states.
PacketStamper m_packetStamper
A packet stamper.
virtual XSNOEXPORT bool messageLooksSane(const XsMessage &msg) const
virtual double headingOffset() const
Return the 'heading offset' setting of the device.
int64_t stampPacket(XsDataPacket &pack, XsDataPacket const &highest)
Create 64 bit counter for a packet.
virtual void updateDeviceState(XsDeviceState state)
LastResultManager m_lastResult
The last result of an operation.
XsFilePos logFileReadPosition() const
Get the current read position of the open log file.
XsDeviceConfiguration m_config
A device configuration.
XsVersion m_firmwareVersion
A firmware version.
virtual void waitForAllDevicesInitialized()
Wait until are known devices are initialized.
virtual bool isSoftwareFilteringEnabled() const
XsString filename() const
XsTimeStamp m_lastDataOkStamp
A time stamp for an OK last data.
virtual void discardRetransmissions(int64_t firstNewPacketId)
Tell XDA and the device that any data from before firstNewPacketId may be lossy.
virtual void XSNOEXPORT checkDataCache()
virtual XsDevice * deviceAtBusId(int busid)
Return the device with bus ID busid.
virtual bool storeIccResults()
Store the onboard ICC results for use by the device.
virtual int updateRateForProcessedDataIdentifier(XsDataIdentifier dataType) const
Returns the currently configured update rate for the supplied dataType.
static int64_t calculateLargePacketCounter(int64_t frameCounter, int64_t lastCounter, int64_t boundary)
Calculate the new large packet counter value based on frameCounter and the lastCounter.
virtual XSNOEXPORT bool waitForCustomMessage(XsXbusMessageId messageId, XsMessage &messageReceive, int timeout=0)
void onMessageReceivedFromDevice(XsDevice *dev, XsMessage const *message) override
The Xscallback::onMessageReceivedFromDevice() callback forwarding function.
@ XMID_SetOutputConfiguration
XsSize refCounter() const
The current reference counter.
static const int64_t MTSCBOUNDARY
16 bit MT Sample Counter boundary
struct XsSelfTestResult XsSelfTestResult
virtual bool setUpdateRate(int rate)
Set the legacy update rate of the device.
virtual XsCanOutputConfigurationArray canOutputConfiguration() const
Returns the currently configured CAN output of the device.
virtual XsResultValue deviceParameter(XsDeviceParameter ¶meter) const
Retrieves the requested parameter's current value.
void onDeviceStateChanged(XsDevice *dev, XsDeviceState newState, XsDeviceState oldState) override
The XsCallback::onDeviceStateChanged() callback forwarding function.
@ XRV_NOTIMPLEMENTED
257: Operation not implemented in this version (yet)
virtual XSNOEXPORT void setPacketErrorRate(int per)
virtual int maximumUpdateRate() const
Get the maximum update rate for the device.
bool m_gotoConfigOnClose
Go to confing on close boolean variable.
XsSyncRole
Synchronization roles.
virtual bool setOnboardFilterProfile(int profileType)
Sets the filter profile to use for computing orientations on the device.
XsResetMethod
Orientation reset type.
virtual bool isSyncMaster() const
returns whether this device is in a master role regarding the device synchronization
size_t XsSize
XsSize must be unsigned number!
void setGotoConfigOnClose(bool gotoConfigOnClose)
On closePort the device will go to config by default, with this function it is possible to prevent th...
XsDataPacket takeFirstDataPacketInQueue()
Return the first packet in the packet queue or an empty packet if the queue is empty.
@ XDS_WaitingForRecordingStart
virtual void resetPacketStamping()
A class to store version information.
DataLogger * m_logFileInterface
A data logger for a file interface.
@ XSO_InterpolateMissingData
When set, any gaps in the data streams of child devices will be filled with interpolated data....
virtual uint32_t deviceBufferSize()
Request the size of the interal buffer.
XsAccessControlMode
Device access control modes (XsDevice::setAccessControlMode())
virtual bool enableRadio(int channel)
Set the radio channel to use for wireless communication.
virtual double gyroscopeRange() const
Returns the maximum official value of the gyroscopes in the device.
XsXbusMessageId
Xsens Xbus Message Identifiers.
virtual uint16_t stringSkipFactor() const
Returns the skipfactor for string output.
virtual void setDeviceState(XsDeviceState state)
virtual XsIntArray gnssReceiverSettings() const
Gets some GNSS receiver settings.
virtual bool startRecording()
Start recording incoming data.
virtual bool setWirelessPriority(int priority)
Sets the wireless priority of the device.
virtual void waitForLastTaskCompletion()=0
Wait for the last processing task to complete in the threadpool.
virtual void insertIntoDataCache(int64_t pid, XsDataPacket *pack)
virtual XsString portName() const
The port name of the connection.
virtual bool reopenPort(bool gotoConfig, bool skipDeviceIdCheck=false)
Reopens a port Uses rescan method to redetect a device. Also if USB descriptor has changed.
Structure for storing a single message.
virtual bool setAlignmentRotationMatrix(XsAlignmentFrame frame, const XsMatrix &matrix)
Set an arbitrary alignment rotation matrix Use to rotate either L to the chosen frame L' or S to the ...
virtual bool isRecording() const
Returns true if the device is currently in a recording state.
virtual void resetLogFileReadPosition(void)=0
Resets the logfile read position.
virtual bool reset()
Reset the device.
virtual bool isProtocolEnabled(XsProtocolType protocol) const
virtual XsIccRepMotionResult stopRepresentativeMotion()
Let the user indicate that he stopped the representative motion.
virtual void processLivePacket(XsDataPacket &pack)
virtual XsMessage readMessageFromStartOfFile(uint8_t msgId, int maxMsgs=0)=0
Read a message from the start of the open file.
virtual bool setStealthMode(bool enabled)
Enable or disable stealth mode.
virtual XsMatrix alignmentRotationMatrix(XsAlignmentFrame frame) const
Retrieve the alignment rotation matrix to rotate S to the chosen frame S'.
virtual bool setObjectAlignment(const XsMatrix &matrix)
Sets the object alignment of the device to the given matrix.
uint8_t m_fwRevMajor
The major version of the firmware.
volatile std::atomic_int m_refCounter
A reference counter.
XsResultValue lastResult() const
Get the result value of the last operation.
Contains an Xsens device ID and provides operations for determining the type of device.
xsens::GuardedMutex m_deviceMutex
The mutex for guarding state changes of the device.
virtual XsResultValue applyConfigFile(const XsString &filename)
Loads a config file(.xsa) and configures the device accordingly.
virtual int radioChannel() const
Returns the radio channel used for wireless communication.
A list of XsDevicePtr values.
XsDataPacket * m_lastAvailableLiveDataCache
A last available live data cache.
virtual void setStartRecordingPacketId(int64_t startFrame)
struct XsIntArray XsIntArray
virtual bool shouldDataMsgBeRecorded(const XsMessage &msg) const
virtual XsRejectReason rejectReason() const
Returns the reason why a device's connection was rejected.
virtual bool setOperationalMode(XsOperationalMode mode)
Set the device in the given operational mode.
virtual XSNOEXPORT bool readEmtsAndDeviceConfiguration()
virtual bool closeLogFile()
Close the log file.
static unsigned int syncSettingsTimeResolutionInMicroSeconds(XsDeviceId const &deviceId)
virtual bool setUbloxGnssPlatform(XsUbloxGnssPlatform ubloxGnssPlatform)
Set the device GNSS platform for u-blox GNSS receivers.
virtual XSNOEXPORT void onConnectionLost()
virtual bool updateCachedDeviceInformation()
Updates the cached device information for all devices connected to this port.
virtual bool setAlignmentRotationQuaternion(XsAlignmentFrame frame, const XsQuaternion &quat)
Set an arbitrary alignment rotation quaternion. Use to rotate either L to the chosen frame L' or S to...
void updateConnectivityState(XsConnectivityState newState)
virtual XSNOEXPORT void onMessageSent(const XsMessage &message)
virtual bool isSoftwareCalibrationEnabled() const
@ XPT_Xbus
The Xsens Xbus protocol, enabled by default, always 0.
virtual bool readDeviceConfiguration()
@ XRV_OTHER
286: Something else was received than was requested
XsDataPacket const & latestLivePacketConst() const
const char * XsResultValue_toString(XsResultValue result)
Retrieve a character string corresponding to the given result code.
virtual XSNOEXPORT void handleMasterIndication(const XsMessage &message)
virtual bool isSyncSlave() const
returns whether this device is in a slave role regarding the device synchronization
virtual bool reopenPort(OpenPortStage stage=OPS_Full, bool skipDeviceIdCheck=false)=0
Reopens the port.
static int configurationMessageSearchLimit()
virtual XsResultValue setDeviceParameter(XsDeviceParameter const ¶meter)
Sets the given parameter for the device.
virtual bool setGnssLeverArm(const XsVector &arm)
Sets the GNSS Lever Arm vector.
A class that does the message serialization.
virtual XsString logFileName() const
Get the name of the log file the device is reading from.
virtual double accelerometerRange() const
Returns the maximum official value of the accelerometers in the device.
void onMissedPackets(XsDevice *dev, int count, int first, int last) override
The XsCallback::onMissedPackets() callback forwarding function.
virtual bool resetLogFileReadPosition()
Set the read position of the open log file to the start of the file.
virtual bool requestBatteryLevel()
Request the battery level from the device.
virtual bool gotoConfig()
Put the device in config mode.
XsConnectivityState
XsDevice connectivity state identifiers.
virtual void clearDataCache()
void onDataAvailable(XsDevice *dev, const XsDataPacket *data) override
The XsCallback::onDataAvailable() callback forwarding function.
virtual bool areOptionsEnabled(XsOption options) const
Returns true when all the specified processing options are enabled.
XsOption getOptions() const
Return the currently enabled options.
virtual XsDeviceOptionFlag deviceOptionFlags() const
Returns the device option flags.
virtual bool abortFlushing()
Abort the wireless flushing operation and finalize the recording.
virtual bool usesLegacyDeviceMode() const
Returns whether the device uses legacy device mode.
virtual void setStopRecordingPacketId(int64_t stopFrame)
virtual bool setGnssReceiverSettings(const XsIntArray &gnssReceiverSettings)
Sets some GNSS receiver settings.
virtual bool writeMessage(const XsMessage &message)=0
Write message to the device.
virtual XsFilePos logFileSize() const =0
@ XSO_RetainLiveData
Keep the live data in a cache so it can be accessed through XsDevice::getDataPacketByIndex or XsDevic...
virtual bool isInStringOutputMode() const
Returns if the device is outputting data in string mode.
Device information for MT devices in an XsDeviceConfiguration.
virtual uint32_t canConfiguration() const
Returns the currently configured CAN configuration of the device.
virtual bool acceptConnection()
Accept connections from the device on the parent/master device.
virtual XsIntArray portConfiguration() const
Get the current port configuration of a device.
void onAllBufferedDataAvailable(XsDevicePtrArray *devs, const XsDataPacketPtrArray *packets) override
The XsCallback::onAllBufferedDataAvailable() callback forwarding function.
@ XRV_OUTPUTCANNOTBEOPENED
268: The specified i/o device can not be opened
XsDeviceConfiguration deviceConfiguration() const
Returns the device configuration.
@ XMID_SetOutputSkipFactor
void onMessageDetected(XsDevice *dev, XsProtocolType type, XsByteArray const *rawMessage) override
The Xscallback::onMessageReceivedFromDevice() callback forwarding function.
virtual void abortLoadLogFile()=0
Aborts loading a logfile.
virtual bool gotoMeasurement()
Put this device in measurement mode.
virtual bool disableRadio()
Disables the radio for this station, resetting all children to disconnected state.
virtual bool rejectConnection()
Reject connections from the device on the parent/master device.
XsErrorMode
Error modes for use in XsDevice::setErrorMode.
virtual bool setAccessControlMode(XsAccessControlMode mode, const XsDeviceIdArray &initialList)
Set the access control mode of the master device.
XsProtocolType
Protocol types (XsDevice::enableProtocol())
virtual bool setTransportMode(bool transportModeEnabled)
Enable or disable the transport mode for the device.
@ XMID_SetStringOutputType
A list of XsSyncSetting values.
virtual bool shouldWriteMessageToLogFile(const XsMessage &msg) const
virtual bool resetOrientation(XsResetMethod resetmethod)
Perform an orientation reset on the device using the given resetMethod.
virtual void setOptions(XsOption enable, XsOption disable)
Enable and disable processing options.
virtual bool setGravityMagnitude(double mag)
Sets the 'Gravity Magnitude' of the device to the given value mag.
void resetTosEstimation()
Reset the Time Of Sampling estimation parameters.
int64_t m_startRecordingPacketId
The ID of the first packet that should be / was recorded.
virtual bool setUtcTime(const XsTimeInfo &time)
Sets the 'UTC Time' setting of the device to the given time.
virtual XsResultValue createConfigFile(const XsString &filename)
Stores the current device configuration in a config file(.xsa)
virtual XSNOEXPORT int64_t deviceRecordingBufferItemCount(int64_t &lastCompletePacketId) const
virtual XsDeviceIdArray currentAccessControlList() const
Request the access control list of the master device.
virtual XsDevice * subDevice(int subDeviceId) const
Returns the sub-device at index index.
virtual void writeMessageToLogFile(const XsMessage &message)
virtual XSNOEXPORT void handleDataPacket(const XsDataPacket &packet)
virtual bool XSNOEXPORT initializeSoftwareCalibration()
virtual bool isMeasuring() const
Returns true if the device is currently in a measuring state.
virtual bool setDeviceAccepted(const XsDeviceId &deviceId)
Accepts a device.
int recordingQueueLength() const
Get the number of packets currently waiting in the slow data cache for the device based.
XsSyncSettingArray supportedSyncSettings(XsDeviceId const &deviceId)
Returns the list of the supported synchronizations settings for the specified device id Each item in ...
virtual bool isBlueToothEnabled() const
Returns true if the device has its BlueTooth radio enabled.
@ XRV_UNSUPPORTED
303: The requested functionality is not supported by the device
virtual bool requestData()
Request data when configured in legacy mode with infinite skip factor.
virtual XsQuaternion alignmentRotationQuaternion(XsAlignmentFrame frame) const
Retrieve the alignment rotation quaternion.
@ XRM_StoreAlignmentMatrix
Store the current object alignment matrix to persistent memory.
A list of XsStringOutputType values.
XsMessage m_emtsBlob
An EMTS blob from device.
virtual int batteryLevel() const
Get the batterylevel of this device The battery level is a value between 0 and 100 that indicates the...
bool unlock() noexcept
Unlocks the write or read locked mutex.
virtual int wirelessPriority() const
Returns the wireless priority of the device.
virtual double gravityMagnitude() const
Returns the 'Gravity Magnitude' of the device.
XsDeviceConfiguration &XSNOEXPORT deviceConfigurationRef()
bool isCompatibleSyncSetting(XsDeviceId const &deviceId, XsSyncSetting const &setting1, XsSyncSetting const &setting2)
Return true if setting1 is compatible with setting2 for a device with deviceId.
virtual XSNOEXPORT void onWirelessConnectionLost()
A list of XsCanOutputConfiguration values.
XsDeviceState
XsDevice state identifiers.
virtual void close()=0
Closes a file.
virtual XsMatrix objectAlignment() const
Returns the object alignment matrix of the device.
virtual bool setInitialBiasUpdateEnabled(bool enable)
Set if the device does gyroscope bias estimation when switching to measurement mode.
virtual void clearCacheToRecordingStart()
virtual std::shared_ptr< ReplyObject > addReplyObject(XsXbusMessageId messageId, uint8_t data)
virtual XSNOEXPORT bool writeEmtsPage(uint8_t const *data, int pageNr, int bankNr)
virtual bool makeOperational()
Sets the Awinda station to operational state.
bool doTransaction(const XsMessage &snd) const
void destroy()
Destroys the communicator.
A readers-writer lock class that is able to be suspended.
@ XSO_KeepLastLiveData
Keep the last available live data in a cache so XsDevice::lastAvailableLiveData will work.
uint8_t m_fwRevMinor
The minor version of the firmware.
Single data type output configuration.
virtual bool scheduleOrientationReset(XsResetMethod method)
XBR_Invalid
Not a valid baud rate.
@ XRV_INVALIDOPERATION
265: Operation is invalid at this point
void onError(XsDevice *dev, XsResultValue error) override
The Xscallback::onError() callback forwarding function.
virtual bool setDeviceRejected(const XsDeviceId &deviceId)
Rejects a device.
XSNOEXPORT virtual XSDEPRECATED bool setGnssPlatform(XsGnssPlatform gnssPlatform)
@ XSO_RetainBufferedData
Keep the buffered data in a cache so it can be accessed through XsDevice::getDataPacketByIndex or XsD...
@ XACM_None
No access control mode defined, do not use in 'set' function. Devices that support Access Control are...
XsFilePos logFileSize() const
Get the size of the log file the device is reading from.
virtual void closePort()=0
Closes the open port.
virtual bool setBlueToothEnabled(bool enabled)
Enable or disable the BlueTooth radio of the device.
int64_t XsFilePos
The type that is used for positioning inside a file.
A 0-terminated managed string of characters.
virtual void clearExternalPacketCaches()
std::deque< XsDataPacket * > m_linearPacketCache
A linear data packet cache.
virtual void writeFilterStateToFile()
virtual XsSyncSettingArray supportedSyncSettings() const
Get all supported synchronization settings available on the device.
virtual void XSNOEXPORT deinitializeSoftwareCalibration()
@ XSO_ExpectNoRetransmissionsInFile
When set and reading a file, missing data is immediately treated as unavailable. The default behaviou...
void extractFirmwareVersion(XsMessage const &message)
XsDataPacket const & latestBufferedPacketConst() const
virtual bool setCanConfiguration(uint32_t config)
Set the CAN configuration for this device.
virtual bool hasDataEnabled(XsDataIdentifier dataType) const
Returns if the currently configured output contains dataType.
virtual int dataLength() const
Returns the length of the data in the legacy MTData packets that the device will send in measurement ...
virtual XsSyncRole syncRole() const
Returns the synchronization role of the device.
bool m_isInitialized
Is intialized boolean variable.
int cacheSize() const
Get the number of items currently in the slow data cache for the device.
virtual XsOutputConfigurationArray processedOutputConfiguration() const
Return the full output configuration including post processing outputs.
XSNOEXPORT void setSkipEmtsReadOnInit(bool skip)
virtual void restartFilter()
Restart the software filter used by this device.
virtual XsErrorMode errorMode() const
Returns the error mode of the device.
std::string msgToString(XsMessage const &msg)
unsigned int timeResolutionInMicroseconds(XsDeviceId const &deviceId)
virtual XSNOEXPORT void handleNonDataMessage(const XsMessage &msg)
virtual bool setDeviceOptionFlags(XsDeviceOptionFlag setFlags, XsDeviceOptionFlag clearFlags)
Set the device option flags.
virtual XsConnectivityState defaultChildConnectivityState() const
bool isLoadLogFileInProgress() const
Returns true if the file operation started by loadLogFile is still in progress.
This class contains method to set, retrieve and compare timestamps.
virtual bool setBusPowerEnabled(bool enabled)
Tell the Xbus to provide power to its child devices or not.
@ XDI_TypeMask
Mask for checking the group which a dataidentifier belongs to, Eg. XDI_TimestampGroup or XDI_Orientat...
XsDevice * m_master
A device object.
virtual XsResultValue updatePortInfo(XsPortInfo const &newInfo)
Update the connection information, this is only useful for devices communicating over a dynamic link ...
virtual bool isFixedGravityEnabled() const
Returns if the fixed gravity value should be used or if it should be computed from the initialPositio...
XsDeviceOptionFlag
Used to enable or disable some device options.
int64_t getStopRecordingPacketId() const
Return the ID of the last packet that should be recorded.
virtual bool triggerStartRecording()
Start recording incoming data through generating a virtual input trigger.
XsString lastResultText() const
Get the accompanying error text for the value returned by lastResult() It may provide situation-speci...
XsAlignmentFrame
Alignment frame.
struct XsDeviceIdArray XsDeviceIdArray
virtual int64_t latestLivePacketId() const
virtual XsTimeStamp batteryLevelTime()
Requests the time the battery level was last updated.
A structure for storing Time values.
@ XMID_ReqFirmwareRevision
virtual bool setLocationId(int id)
Set the location ID of the device.
virtual bool hasProcessedDataEnabled(XsDataIdentifier dataType) const
Returns if the currently configured output contains dataType after processing on the host.