using System;
using System.Runtime.InteropServices;
using System.Threading;
namespace PsTech.TrackingTarget
{
public class TrackingTarget
{
[DllImport("Kernel32")]
private static extern bool SetConsoleCtrlHandler(ConsoleEventHandler handler, bool add);
private delegate bool ConsoleEventHandler(CtrlType sig);
static ConsoleEventHandler ConsoleCtrlEventHandler;
public enum CtrlType
{
CtrlCEvent = 0,
CtrlBreakEvent = 1,
CtrlCloseEvent = 2,
CtrlLogOffEvent = 5,
CtrlShutdownEvent = 6,
}
private static bool ConsoleHandler(CtrlType sig)
{
Exithandler((int)sig);
return true;
}
static bool Running = true;
static int NumberOfSamplesToGrab = 100;
static int SamplesGrabbed = 0;
{
{
if (SamplesGrabbed++ >= NumberOfSamplesToGrab)
{
Running = false;
}
{
Console.Write(
"Detected " + pose.
Target.
Name +
"\n");
}
}
}
static void Exithandler(int sig)
{
Running = false;
}
static int Main(string[] args)
{
ConsoleCtrlEventHandler += new ConsoleEventHandler(ConsoleHandler);
SetConsoleCtrlHandler(ConsoleCtrlEventHandler, true);
try
{
{
Console.Write(
"Running PST Server version " + tracker.
GetVersionInfo() +
"\n");
Console.Write("Put the Reference card in front of the PST in order to see tracking results.\n\n");
Console.Write(
"System check: " + tracker.
Systemcheck() +
"\n\n");
Console.Write("Found " + targets.Length + " tracking targets:\n");
{
}
Console.Write("\n");
Console.Write("3D marker positions making up the Reference target:\n");
{
}
Console.Write("\n");
while (Running)
{
Thread.Sleep(100);
}
}
}
{
Console.Write(e + "\n");
}
Console.Write("Press enter to continue...\n");
Console.Read();
return 0;
}
}
}
Estimated tracking target pose.
Definition TargetPose.cs:24
Target Target
Definition TargetPose.cs:41
Tracking information retrieved from tracker.
Definition TrackerData.cs:25
TargetPose[] TargetPoseList
Definition TrackerData.cs:58
Main PST SDK class implementing tracker communication.
Definition Tracker.cs:198
static void Shutdown()
Shutdown the tracking system, stopping tracking.
Definition Tracker.cs:548
void StartTracker()
Start tracking.
Definition Tracker.cs:524
StatusMessage Systemcheck()
Check if the tracker is running correctly.
Definition Tracker.cs:568
void AddTrackerListener(TrackerListener listener)
Add a listener for tracker data and/or mode change reporting.
Definition Tracker.cs:476
void SetTargetStatus(string targetName, bool active)
Set status of a single tracking Target.
Definition Tracker.cs:842
TargetMarker[] GetTargetMarkers(string targetName)
Get 3D marker positions of stored tracking Target.
Definition Tracker.cs:869
TargetStatus[] GetTargetList()
Get TargetStatuses object containing all tracking targets and their status.
Definition Tracker.cs:806
string GetVersionInfo()
Get version information of the SDK.
Definition Tracker.cs:400
Implements the TrackerListener class to receive tracking information and tracking mode updates.
Definition Tracker.cs:166
ErrorStatus
Tracker error messages enum class.
Definition ErrorHandler.cs:17
string Name
User given name of the tracking target as listed in the PST-Client software.
Definition Tracker.cs:37
3D marker positions of a single marker of a tracking Target.
Definition Tracker.cs:90
float[] Coordinates
3D marker position of a tracking Target.
Definition Tracker.cs:93
Tracking target status.
Definition Tracker.cs:77
Target Target
Tracking target information.
Definition Tracker.cs:79
bool Status
Status of the tracking target (active or inactive) as listed in the PST-Client software.
Definition Tracker.cs:82