Hardware detection
Trackers can be discovered using
LMF::Tracker::TrackerFinder ^ pTrackerFinder = gcnew LMF::Tracker::TrackerFinder;
NumTrackers = pTrackerFinder->Trackers->Count;
for (int i = 0; i < NumTrackers; i++)
{
Names.push_back(ToStdString(pTrackerFinder->Trackers[i]->Name));
SerialNumbers.push_back(ToStdString(pTrackerFinder->Trackers[i]->SerialNumber));
IPAddresses.push_back(ToStdString(pTrackerFinder->Trackers[i]->IPAddress));
Types.push_back(ToStdString(pTrackerFinder->Trackers[i]->Type));
Comments.push_back(ToStdString(pTrackerFinder->Trackers[i]->Comment));
}
With simulation this does not work.
So we could default to a simulation string when no trackers are discovered. In Ctrack we use the IP address AT960LRSimulator#506432 for this. This is the connection string, which otherwise would be an IP address.
In general a connection goes through a Connection object
LMF::Tracker::Connection ^ con = gcnew LMF::Tracker::Connection();
m_LMFTracker = con->Connect(gcnew System::String(IPAddress.c_str()));
if (m_LMFTracker)
{
RegisterEvents();
return true;
}
return false;
RegisterEvents is the main function to get notified of tracker events. Check out tracker scope for an overview

Updating the device
Ok, so the device code at the engine side is still ented to XML, we need to jsonify this first.
Look at the template as example.