Simulace vnímání

Chcete pro svou aplikaci vytvořit automatizovaný test? Chcete, aby vaše testy přesahoval testování částí na úrovni komponent a ve skutečnosti procvičoval všechny vaše aplikace? Simulace vnímání je to, co hledáte. Knihovna Perception Simulation odesílá do vaší aplikace vstupní data člověka a světa, abyste mohli testy automatizovat. Můžete například simulovat vstup člověka, který hledá na konkrétní opakovatelné pozici, a pak použít gesto nebo ovladač pohybu.

Simulace vnímání může takový simulovaný vstup odeslat do fyzického HoloLens, emulátoru HoloLens (první generace), HoloLens 2 Emulator nebo do počítače s Portál hybridní reality systémem. Simulace vnímání obchází živé senzory na Mixed Reality zařízení a odesílá simulovaný vstup do aplikací spuštěných na zařízení. Aplikace přijímají tyto vstupní události prostřednictvím stejných rozhraní API, která vždy používají, a neumějí zjistit rozdíl mezi spouštěním se skutečnými senzory a simulací vnímání. Simulace vnímání je stejná technologie, kterou používají emulátory HoloLens k odesílání simulovaného vstupu do virtuálního počítače HoloLens Virtual Machine.

Pokud chcete v kódu začít používat simulaci, začněte vytvořením objektu IPerceptionSimulationManager. Z tohoto objektu můžete vydávat příkazy pro řízení vlastností simulovaného "člověka", včetně pozice hlavy, pozice ruky a gest. Můžete také povolit ovladače pohybu a manipulovat s nimi.

Nastavení aplikace pro Visual Studio Project vnímání

  1. Nainstalujte emulátor HoloLens do vývojového počítače. Emulátor obsahuje knihovny, které používáte pro simulaci vnímání.
  2. Vytvořte nový Visual Studio desktopový projekt v jazyce C# (konzolová Project vám pomůže začít).
  3. Přidejte do projektu následující binární soubory jako odkazy (Project- > Add- > Reference...). Najdete je ve složce %ProgramFiles(x86)%\Microsoft XDE\(version), například > pro HoloLens 2 Emulator. (Poznámka: I když jsou binární soubory součástí HoloLens 2 Emulator, fungují také pro Windows Mixed Reality na ploše.) a. PerceptionSimulationManager.Interop.dll – Spravovaná obálka jazyka C# pro simulaci vnímání. b. PerceptionSimulationRest.dll – Knihovna pro nastavení komunikačního kanálu webového soketu pro HoloLens nebo emulátor. c. SimulationStream.Interop.dll – Sdílené typy pro simulaci.
  4. Přidejte binární soubor PerceptionSimulationManager.dll do projektu a. Nejprve ho přidejte do projektu jako binární soubor (Project- > Add- > Existing Item...). Uložte ho jako odkaz, aby ho nekopíruje do zdrojové složky projektu. Přidejte PerceptionSimulationManager.dll do projektu jako odkaz b. Pak se ujistěte, že se zkopíruje do výstupní složky v sestavení. Ten je v seznamu vlastností binárního souboru. Označte PerceptionSimulationManager.dll, že se má kopírovat do výstupního adresáře.
  5. Nastavte aktivní platformu řešení na x64. (Pomocí Správce konfigurace vytvořte položku platformy pro platformu x64, pokud ještě neexistuje.)

Vytvoření objektu IPerceptionSimulation Manager

Pokud chcete řídit simulaci, budete vydávat aktualizace objektů načtených z objektu IPerceptionSimulationManager. Prvním krokem je získání tohoto objektu a jeho připojení k cílovému zařízení nebo emulátoru. IP adresu emulátoru můžete získat kliknutím na tlačítko Portál zařízení na panelu nástrojů.

Otevřete Portál zařízení Otevřít Portál zařízení:Otevřete Windows Portál zařízení pro HoloLens operační systém v emulátoru. Například Windows Mixed Reality načíst v aplikaci Nastavení v části "Zabezpečení aktualizací" a pak "Pro vývojáře" v části "Připojení using:" v části & "Povolit Portál zařízení". Nezapomeňte si poznamenat IP adresu i port.

Nejprve zavoláte RestSimulationStreamSink.Create a získáte objekt RestSimulationStreamSink. Toto je cílové zařízení nebo emulátor, které budete řídit přes připojení HTTP. Příkazy budou předány do a zpracovány Windows Portál zařízení spuštěných v zařízení nebo emulátoru. K vytvoření objektu budete potřebovat tyto čtyři parametry:

  • Identifikátor URI – IP adresa cílového zařízení (např. https://123.123.123.123" ; nebo https://123.123.123.123:50080" " ;)
  • Přihlašovací údaje System.Net.NetworkCredential – Uživatelské jméno a heslo pro připojení Windows Portál zařízení na cílovém zařízení nebo emulátoru. Pokud se k emulátoru připojujete přes jeho místní adresu (např. 168.. *) na stejném počítači budou přijaty všechny přihlašovací údaje.
  • bool normal – true pro normální prioritu, false pro nízkou prioritu. U testovacích scénářů obvykle chcete tuto hodnotu nastavit na true, což umožňuje, aby váš test převzít kontrolu. Emulátor a Windows Mixed Reality používají připojení s nízkou prioritou. Pokud test také používá připojení s nízkou prioritou, bude mít nad připojením kontrolu poslední na navázaté připojení.
  • Token System.Threading.CancellationToken – token pro zrušení asynchronní operace.

Za druhé vytvoříte IPerceptionSimulationManager. Toto je objekt, který používáte k řízení simulace. To je také nutné provést v asynchronní metodě.

Řízení simulovaného člověka

IPerceptionSimulationManager má vlastnost Human, která vrací objekt ISimulatedHuman. Pokud chcete ovládat simulovaného člověka, proveďte operace s tímto objektem. Například:

manager.Human.Move(new Vector3(0.1f, 0.0f, 0.0f))

Základní ukázková konzolová aplikace jazyka C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.PerceptionSimulation;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Task.Run(async () =>
            {
                RestSimulationStreamSink sink = null;
                CancellationToken token = new System.Threading.CancellationToken();

                try
                {
                    sink = await RestSimulationStreamSink.Create(
                        // use the IP address for your device/emulator
                        new Uri("https://169.254.227.115"),
                        // no credentials are needed for the emulator
                        new System.Net.NetworkCredential("", ""),
                        // normal priorty
                        true,
                        // cancel token
                        token);

                    IPerceptionSimulationManager manager = PerceptionSimulationManager.CreatePerceptionSimulationManager(sink);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }

                // Always close the sink to return control to the previous application.
                if (sink != null)
                {
                    await sink.Close(token);
                }
            });

            // If main exits, the process exits.  
            Console.WriteLine("Press any key to exit...");
            Console.ReadLine();
        }
    }
}

Rozšířená ukázková konzolová aplikace jazyka C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.PerceptionSimulation;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            RestSimulationStreamSink sink = null;
            CancellationToken token = new System.Threading.CancellationToken();

            Task.Run(async () =>
            {
                try
                {
                    sink = await RestSimulationStreamSink.Create(
                        // use the IP address for your device/emulator
                        new Uri("https://169.254.227.115"),
                        // no credentials are needed for the emulator
                        new System.Net.NetworkCredential("", ""),
                        // normal priorty
                        true,
                        // cancel token
                        token);

                    IPerceptionSimulationManager manager = PerceptionSimulationManager.CreatePerceptionSimulationManager(sink);

                    // Now, we'll simulate a sequence of actions.
                    // Sleeps in-between each action give time to the system
                    // to be able to properly react.
                    // This is just an example. A proper automated test should verify
                    // that the app has behaved correctly
                    // before proceeding to the next step, instead of using Sleeps.

                    // Activate the right hand
                    manager.Human.RightHand.Activated = true;

                    // Simulate Bloom gesture, which should cause Shell to disappear
                    manager.Human.RightHand.PerformGesture(SimulatedGesture.Home);
                    Thread.Sleep(2000);

                    // Simulate Bloom gesture again... this time, Shell should reappear
                    manager.Human.RightHand.PerformGesture(SimulatedGesture.Home);
                    Thread.Sleep(2000);

                    // Simulate a Head rotation down around the X axis
                    // This should cause gaze to aim about the center of the screen
                    manager.Human.Head.Rotate(new Rotation3(0.04f, 0.0f, 0.0f));
                    Thread.Sleep(300);

                    // Simulate a finger press & release
                    // Should cause a tap on the center tile, thus launching it
                    manager.Human.RightHand.PerformGesture(SimulatedGesture.FingerPressed);
                    Thread.Sleep(300);
                    manager.Human.RightHand.PerformGesture(SimulatedGesture.FingerReleased);
                    Thread.Sleep(2000);

                    // Simulate a second finger press & release
                    // Should activate the app that was launched when the center tile was clicked
                    manager.Human.RightHand.PerformGesture(SimulatedGesture.FingerPressed);
                    Thread.Sleep(300);
                    manager.Human.RightHand.PerformGesture(SimulatedGesture.FingerReleased);
                    Thread.Sleep(5000);

                    // Simulate a Head rotation towards the upper right corner
                    manager.Human.Head.Rotate(new Rotation3(-0.14f, 0.17f, 0.0f));
                    Thread.Sleep(300);

                    // Simulate a third finger press & release
                    // Should press the Remove button on the app
                    manager.Human.RightHand.PerformGesture(SimulatedGesture.FingerPressed);
                    Thread.Sleep(300);
                    manager.Human.RightHand.PerformGesture(SimulatedGesture.FingerReleased);
                    Thread.Sleep(2000);

                    // Simulate Bloom gesture again... bringing the Shell back once more
                    manager.Human.RightHand.PerformGesture(SimulatedGesture.Home);
                    Thread.Sleep(2000);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            });

            // If main exits, the process exits.  
            Console.WriteLine("Press any key to exit...");
            Console.ReadLine();

            // Always close the sink to return control to the previous application.
            if (sink != null)
            {
                sink.Close(token);
            }
        }
    }
}

Poznámka k řadičům 6-DOF

Před voláním jakýchkoli vlastností metod na simulovaném kontroleru 6-DOF musíte kontroler aktivovat. Pokud to neudáte, bude výsledkem výjimka. Počínaje Aktualizace Windows 10 z května 2019 je možné nainstalovat a aktivovat simulované řadiče 6-DOF nastavením vlastnosti Status objektu ISimulatedSixDofController na SimulatedSixDofControllerStatus.Active. V Aktualizace Windows 10 z října 2018 a starších verzích musíte nejprve samostatně nainstalovat simulovaný kontroler 6-DOF zavoláním nástroje PerceptionSimulationDevice umístěného ve složce \Windows\System32. Použití tohoto nástroje je následující:

    PerceptionSimulationDevice.exe <action> 6dof <instance>

Například

    PerceptionSimulationDevice.exe i 6dof 1

Podporované akce:

  • i = instalace
  • q = dotaz
  • r = odebrat

Podporované instance:

  • 1 = levý kontroler 6-DOF
  • 2 = pravý kontroler 6 DOF

Ukončovací kód procesu bude indikovat úspěch (nulovou návratovou hodnotu) nebo chybu (nenulovou návratovou hodnotu). Při použití akce q k dotazování, jestli je kontroler nainstalovaný, bude vrácená hodnota nula (0), pokud kontroler ještě není nainstalovaný, nebo jedna (1), pokud je kontroler nainstalovaný.

Při odebírání kontroleru v Aktualizace Windows 10 z října 2018 nebo starším nastavte jeho stav nejprve přes rozhraní API na Vypnuto a potom zavolejte nástroj PerceptionSimulationDevice.

Tento nástroj musí být spuštěný jako správce.

Reference rozhraní API

Microsoft.PerceptionSimulation.SimulatedDeviceType

Popisuje typ simulovaného zařízení.

public enum SimulatedDeviceType
{
    Reference = 0
}

Microsoft.PerceptionSimulation.SimulatedDeviceType.Reference

Fiktivní referenční zařízení, výchozí nastavení pro PerceptionSimulationManager

Microsoft.PerceptionSimulation.HeadTrackerMode

Popisuje režim sledování hlavy.

public enum HeadTrackerMode
{
    Default = 0,
    Orientation = 1,
    Position = 2
}

Microsoft.PerceptionSimulation.HeadTrackerMode.Default

Výchozí sledování headů. To znamená, že systém může na základě podmínek běhu vybrat nejlepší režim sledování hlavy.

Microsoft.PerceptionSimulation.HeadTrackerMode.Orientation

Sledování pouze orientace hlavy. To znamená, že sledovaná pozice nemusí být spolehlivá a některé funkce závislé na pozici hlavy nemusí být dostupné.

Microsoft.PerceptionSimulation.HeadTrackerMode.Position

Poziční sledování hlavy. To znamená, že sledovaná pozice a orientace hlavy jsou spolehlivé.

Microsoft.PerceptionSimulation.SimulatedGesture

Popisuje simulované gesto.

public enum SimulatedGesture
{
    None = 0,
    FingerPressed = 1,
    FingerReleased = 2,
    Home = 4,
    Max = Home
}

Microsoft.PerceptionSimulation.SimulatedGesture.None

Hodnota Sentinel sloužící k označení žádného gesta.

Microsoft. PerceptionSimulation. SimulatedGesture. FingerPressed

Gesto stisknutí prstem

Microsoft. PerceptionSimulation. SimulatedGesture. FingerReleased

Gesto pro vydání prstu.

Microsoft. PerceptionSimulation. SimulatedGesture. Home

Gesto domů/systém.

Microsoft. PerceptionSimulation. SimulatedGesture. max

Maximální platný gesto.

Microsoft. PerceptionSimulation. SimulatedSixDofControllerStatus

Možné stavy simulovaného kontroleru DOFu 6.

public enum SimulatedSixDofControllerStatus
{
    Off = 0,
    Active = 1,
    TrackingLost = 2,
}

Microsoft. PerceptionSimulation. SimulatedSixDofControllerStatus. off

Řadič 6 – DOF je vypnutý.

Microsoft. PerceptionSimulation. SimulatedSixDofControllerStatus. Active

Řadič 6 – DOF je zapnutý a sledovaný.

Microsoft. PerceptionSimulation. SimulatedSixDofControllerStatus. TrackingLost

Řadič 6 – DOF je zapnutý, ale nedá se sledovat.

Microsoft. PerceptionSimulation. SimulatedSixDofControllerButton

Podporovaná tlačítka na simulovaném kontroleru 6-DOF.

public enum SimulatedSixDofControllerButton
{
    None = 0,
    Home = 1,
    Menu = 2,
    Grip = 4,
    TouchpadPress = 8,
    Select = 16,
    TouchpadTouch = 32,
    Thumbstick = 64,
    Max = Thumbstick
}

Microsoft. PerceptionSimulation. SimulatedSixDofControllerButton. None

Hodnota Sentinel používaná k označení žádných tlačítek.

Microsoft. PerceptionSimulation. SimulatedSixDofControllerButton. Home

Je stisknuto tlačítko domů.

Microsoft. PerceptionSimulation. SimulatedSixDofControllerButton. menu

Je stisknuto tlačítko nabídky.

Microsoft. PerceptionSimulation. SimulatedSixDofControllerButton. rukojet

Je stisknuto tlačítko úchyt.

Microsoft. PerceptionSimulation. SimulatedSixDofControllerButton. TouchpadPress

TouchPad se stiskne.

Microsoft. PerceptionSimulation. SimulatedSixDofControllerButton. Select

Je stisknuto tlačítko vybrat.

Microsoft. PerceptionSimulation. SimulatedSixDofControllerButton. TouchpadTouch

TouchPad se dotýká.

Microsoft. PerceptionSimulation. SimulatedSixDofControllerButton. Thumbstick

Stiskne se Thumbstick.

Microsoft. PerceptionSimulation. SimulatedSixDofControllerButton. max

Tlačítko maximální platná.

Microsoft. PerceptionSimulation. SimulatedEyesCalibrationState

Stav kalibrace simulovaného oči

public enum SimulatedGesture
{
    Unavailable = 0,
    Ready = 1,
    Configuring = 2,
    UserCalibrationNeeded = 3
}

Microsoft. PerceptionSimulation. SimulatedEyesCalibrationState. available

Kalibrace očí není k dispozici.

Microsoft. PerceptionSimulation. SimulatedEyesCalibrationState. ready

Oči byly kalibrovány. Toto je výchozí hodnota.

Microsoft. PerceptionSimulation. SimulatedEyesCalibrationState. Configure

Oči se kalibrují.

Microsoft. PerceptionSimulation. SimulatedEyesCalibrationState. UserCalibrationNeeded

Oči musí být kalibrováno.

Microsoft. PerceptionSimulation. SimulatedHandJointTrackingAccuracy

Přesnost sledování smíšeného vlastnictví.

public enum SimulatedHandJointTrackingAccuracy
{
    Unavailable = 0,
    Approximate = 1,
    Visible = 2
}

Microsoft. PerceptionSimulation. SimulatedHandJointTrackingAccuracy. available

Tento spoj není sledován.

Microsoft. PerceptionSimulation. SimulatedHandJointTrackingAccuracy. aproximace

Společná pozice je odvozena.

Microsoft. PerceptionSimulation. SimulatedHandJointTrackingAccuracy. Visible

Společný je plně sledovaný.

Microsoft. PerceptionSimulation. SimulatedHandPose

Přesnost sledování smíšeného vlastnictví.

public enum SimulatedHandPose
{
    Closed = 0,
    Open = 1,
    Point = 2,
    Pinch = 3,
    Max = Pinch
}

Microsoft. PerceptionSimulation. SimulatedHandPose. Closed

Klouby prstů jsou nakonfigurované tak, aby odrážely uzavřenou pozici.

Microsoft. PerceptionSimulation. SimulatedHandPose. Open

Klouby prstů jsou nakonfigurované tak, aby odrážely otevřené pozice.

Microsoft. PerceptionSimulation. SimulatedHandPose. Point

Klouby prstů jsou nakonfigurované tak, aby odrážely pozici kurzoru.

Microsoft. PerceptionSimulation. SimulatedHandPose. gesto roztažení prstů

Klouby prstů jsou nakonfigurované tak, aby odrážely pinching pozici.

Microsoft. PerceptionSimulation. SimulatedHandPose. max

Maximální platná hodnota pro SimulatedHandPose.

Microsoft. PerceptionSimulation. PlaybackState

Popisuje stav přehrávání.

public enum PlaybackState
{
    Stopped = 0,
    Playing = 1,
    Paused = 2,
    End = 3,
}

Microsoft. PerceptionSimulation. PlaybackState. Stopped

Záznam je aktuálně zastaven a připraven k přehrávání.

Microsoft. PerceptionSimulation. PlaybackState. Play

Nahrávání se momentálně přehrává.

Microsoft. PerceptionSimulation. PlaybackState. pozastaveno

Záznam je aktuálně pozastaven.

Microsoft. PerceptionSimulation. PlaybackState. end

Záznam dosáhl konce.

Microsoft. PerceptionSimulation. Vector3

Popisuje tři komponenty vektoru, které mohou popsat bod nebo vektor v 3D prostoru.

public struct Vector3
{
    public float X;
    public float Y;
    public float Z;
    public Vector3(float x, float y, float z);
}

Microsoft. PerceptionSimulation. Vector3. X

Komponenta X vektoru.

Microsoft. PerceptionSimulation. Vector3. Y

Komponenta Y vektoru.

Microsoft. PerceptionSimulation. Vector3. Z

Komponenta Z vektoru.

Microsoft. PerceptionSimulation. Vector3. #ctor (System. Single, System. Single, System. Single)

Vytvořte nový Vector3.

Parametry

  • x – komponenta x vektoru.
  • y – komponenta y vektoru.
  • z-část z vektoru.

Microsoft. PerceptionSimulation. Rotation3

Popisuje tři otočení součástí.

public struct Rotation3
{
    public float Pitch;
    public float Yaw;
    public float Roll;
    public Rotation3(float pitch, float yaw, float roll);
}

Microsoft. PerceptionSimulation. Rotation3. rozteč

Komponenta sklonu natočení směrem dolů kolem osy X.

Microsoft. PerceptionSimulation. Rotation3. Yaw

Komponenta Yaw natočení vpravo kolem osy Y.

Microsoft. PerceptionSimulation. Rotation3. Shrnutí

Souhrnná součást otočení, která je napravo kolem osy Z.

Microsoft.PerceptionSimulation.Rotation3.#ctor(System.Single,System.Single,System.Single)

Vytvořte novou rotaci3.

Parametry

  • pitch – komponenta výšky otáčení
  • yaw – komponenta yaw objektu Rotation.
  • roll – součást rolovací části otáčení.

Microsoft.PerceptionSimulation.SimulatedHandJointConfiguration

Popisuje konfiguraci spojení simulované ruky.

public struct SimulatedHandJointConfiguration
{
    public Vector3 Position;
    public Rotation3 Rotation;
    public SimulatedHandJointTrackingAccuracy TrackingAccuracy;
}

Microsoft.PerceptionSimulation.SimulatedHandJointConfiguration.Position

Pozice spojného podniku.

Microsoft.PerceptionSimulation.SimulatedHandJointConfiguration.Rotation

Otočení spojného objektu.

Microsoft.PerceptionSimulation.SimulatedHandJointConfiguration.TrackingAccuracy

Přesnost sledování spojování.

Microsoft.PerceptionSimulation.Frustum

Popisuje frustum zobrazení, které obvykle používá fotoaparát.

public struct Frustum
{
    float Near;
    float Far;
    float FieldOfView;
    float AspectRatio;
}

Microsoft.PerceptionSimulation.Frustum.Near

Minimální vzdálenost, která je obsažena ve frustum.

Microsoft.PerceptionSimulation.Frustum.Far

Maximální vzdálenost obsažená ve frustum.

Microsoft.PerceptionSimulation.Frustum.FieldOfView

Vodorovné zorné pole frustum v radiánech (menší než PI).

Microsoft.PerceptionSimulation.Frustum.AspectRatio

Poměr vodorovného zorového pole ke svislému zornému poli.

Microsoft.PerceptionSimulation.SimulatedDisplayConfiguration

Popisuje konfiguraci displeje simulované náhlavní soupravy.

public struct SimulatedDisplayConfiguration
{
    public Vector3 LeftEyePosition;
    public Rotation3 LeftEyeRotation;
    public Vector3 RightEyePosition;
    public Rotation3 RightEyeRotation;
    public float Ipd;
    public bool ApplyEyeTransforms;
    public bool ApplyIpd;
}

Microsoft.PerceptionSimulation.SimulatedDisplayConfiguration.LeftPositionPosition

Transformace ze středu hlavy do levého oka pro účely stereo vykreslování.

Microsoft.PerceptionSimulation.SimulatedDisplayConfiguration.LeftRotrotation

Otočení levého oka pro účely stereo vykreslování.

Microsoft.PerceptionSimulation.SimulatedDisplayConfiguration.RightPositionPosition

Transformace ze středu hlavy do pravého oka pro účely stereo vykreslování.

Microsoft.PerceptionSimulation.SimulatedDisplayConfiguration.RightRotRotation

Otočení pravého oka pro účely stereo vykreslování.

Microsoft.PerceptionSimulation.SimulatedDisplayConfiguration.Ipd

Hodnota Ipd hlášená systémem pro účely stereo vykreslování.

Microsoft.PerceptionSimulation.SimulatedDisplayConfiguration.ApplyTransforms

Určuje, jestli se hodnoty zadané pro transformace levého a pravého oka mají považovat za platné a aplikovat na běžící systém.

Microsoft.PerceptionSimulation.SimulatedDisplayConfiguration.ApplyIpd

Určuje, jestli se hodnota zadaná pro Ipd má považovat za platnou a použít pro spuštěný systém.

Microsoft.PerceptionSimulation.IPerceptionSimulationManager

Kořen pro generování paketů používaných k řízení zařízení.

public interface IPerceptionSimulationManager
{   
    ISimulatedDevice Device { get; }
    ISimulatedHuman Human { get; }
    void Reset();
}

Microsoft.PerceptionSimulation.IPerceptionSimulationManager.Device

Načte objekt simulovaného zařízení, který interpretuje simulovaného člověka a simulovaný svět.

Microsoft.PerceptionSimulation.IPerceptionSimulationManager.Human

Načte objekt, který řídí simulovaného člověka.

Microsoft.PerceptionSimulation.IPerceptionSimulationManager.Reset

Obnoví simulaci do výchozího stavu.

Microsoft.PerceptionSimulation.ISimulatedDevice

Rozhraní popisující zařízení, které interpretuje simulovaný svět a simulovaného člověka

public interface ISimulatedDevice
{
    ISimulatedHeadTracker HeadTracker { get; }
    ISimulatedHandTracker HandTracker { get; }
    void SetSimulatedDeviceType(SimulatedDeviceType type);
}

Microsoft.PerceptionSimulation.ISimulatedDevice.HeadTracker

Načtěte Head Tracker ze simulovaného zařízení.

Microsoft.PerceptionSimulation.ISimulatedDevice.HandTracker

Načtení hand trackeru ze simulovaného zařízení

Microsoft.PerceptionSimulation.ISimulatedDevice.SetSimulatedDeviceType(Microsoft.PerceptionSimulation.SimulatedDeviceType)

Nastavte vlastnosti simulovaného zařízení tak, aby odpovídaly zadanému typu zařízení.

Parametry

  • type – nový typ simulovaného zařízení

Microsoft.PerceptionSimulation.ISimulatedDevice2

Další vlastnosti jsou k dispozici přetypování ISimulatedDevice na ISimulatedDevice2.

public interface ISimulatedDevice2
{
    bool IsUserPresent { [return: MarshalAs(UnmanagedType.Bool)] get; [param: MarshalAs(UnmanagedType.Bool)] set; }
    SimulatedDisplayConfiguration DisplayConfiguration { get; set; }

};

Microsoft.PerceptionSimulation.ISimulatedDevice2.IsUserPresent

Načtěte nebo nastavte, jestli simulovaný člověk má aktivní náhlavní soupravu.

Microsoft.PerceptionSimulation.ISimulatedDevice2.DisplayConfiguration

Načtení nebo nastavení vlastností simulovaného zobrazení

Microsoft.PerceptionSimulation.ISimulatedHeadTracker

Rozhraní popisující část simulovaného zařízení, která sleduje hlavičku simulovaného člověka.

public interface ISimulatedHeadTracker
{
    HeadTrackerMode HeadTrackerMode { get; set; }
};

Microsoft.PerceptionSimulation.ISimulatedHeadTracker.HeadTrackerMode

Načte a nastaví aktuální režim sledování hlavy.

Microsoft.PerceptionSimulation.ISimulatedHandTracker

Rozhraní popisující část simulovaného zařízení, která sleduje ruce simulovaného člověka

public interface ISimulatedHandTracker
{
    Vector3 WorldPosition { get; }
    Vector3 Position { get; set; }
    float Pitch { get; set; }
    bool FrustumIgnored { [return: MarshalAs(UnmanagedType.Bool)] get; [param: MarshalAs(UnmanagedType.Bool)] set; }
    Frustum Frustum { get; set; }
}

Microsoft.PerceptionSimulation.ISimulatedHandTracker.WorldPosition

Načtěte pozici uzlu s ohledem na svět v metrech.

Microsoft.PerceptionSimulation.ISimulatedHandTracker.Position

Načte a nastaví pozici simulovaného sledovače rukou vzhledem ke středu hlavy.

Microsoft.PerceptionSimulation.ISimulatedHandTracker.Pitch

Načtěte a nastavte klesající sklon simulovaného sledovače rukou.

Microsoft.PerceptionSimulation.ISimulatedHandTracker.FrustumIgnored

Načte a nastaví, jestli se frustum simulovaného sledování rukou ignoruje. Při ignorování jsou obě ruce vždy viditelné. Pokud nejsou ignorovány (výchozí) ruce, jsou viditelné pouze v případě, že jsou uvnitř frustum sledovače rukou.

Microsoft.PerceptionSimulation.ISimulatedHandTracker.Frustum

Načtení a nastavení vlastností frustum používaných k určení, jestli jsou ruce viditelné pro simulovaný sledovač rukou.

Microsoft.PerceptionSimulation.ISimulatedHuman

Rozhraní nejvyšší úrovně pro řízení simulovaného člověka.

public interface ISimulatedHuman 
{
    Vector3 WorldPosition { get; set; }
    float Direction { get; set; }
    float Height { get; set; }
    ISimulatedHand LeftHand { get; }
    ISimulatedHand RightHand { get; }
    ISimulatedHead Head { get; }s
    void Move(Vector3 translation);
    void Rotate(float radians);
}

Microsoft.PerceptionSimulation.ISimulatedHuman.WorldPosition

Načtěte a nastavte pozici uzlu s ohledem na svět v metrech. Pozice odpovídá bodu ve středu lidských noh.

Microsoft.PerceptionSimulation.ISimulatedHuman.Direction

Načtěte a nastavte směr simulovaných lidských tváří na světě. 0 radiánů směřuje dolů k záporné ose Z. Kladné radiány se otáčí ve směru hodinových ručiček kolem osy Y.

Microsoft.PerceptionSimulation.ISimulatedHuman.Height

Načte a nastaví výšku simulovaného člověka v metrech.

Microsoft.PerceptionSimulation.ISimulatedHuman.LeftHand

Načtěte levou stranu simulovaného člověka.

Microsoft.PerceptionSimulation.ISimulatedHuman.RightHand

Načtěte pravou rukou simulovaného člověka.

Microsoft.PerceptionSimulation.ISimulatedHuman.Head

Načtěte hlavičku simulovaného člověka.

Microsoft.PerceptionSimulation.ISimulatedHuman.Move(Microsoft.PerceptionSimulation.Vector3)

Přesuňte simulovaného člověka vzhledem k aktuální pozici v metrech.

Parametry

  • translation – překlad, který se má přesunout vzhledem k aktuální pozici.

Microsoft.PerceptionSimulation.ISimulatedHuman.Rotate(System.Single)

Otočení simulovaného člověka vzhledem k aktuálnímu směru ve směru hodinových ručiček kolem osy Y

Parametry

  • radiány – množství, které se má obměnat kolem osy Y.

Microsoft.PerceptionSimulation.ISimulatedHuman2

Další vlastnosti jsou k dispozici přetypování ISimulatedHuman na ISimulatedHuman2.

public interface ISimulatedHuman2
{
    /* New members in addition to those available on ISimulatedHuman */
    ISimulatedSixDofController LeftController { get; }
    ISimulatedSixDofController RightController { get; }
}

Microsoft.PerceptionSimulation.ISimulatedHuman2.LeftController

Načtěte levý kontroler 6-DOF.

Microsoft.PerceptionSimulation.ISimulatedHuman2.RightController

Načtěte správný kontroler 6-DOF.

Microsoft.PerceptionSimulation.ISimulatedHand

Rozhraní popisující rukou simulovaného člověka

public interface ISimulatedHand
{
    Vector3 WorldPosition { get; }
    Vector3 Position { get; set; }
    bool Activated { [return: MarshalAs(UnmanagedType.Bool)] get; [param: MarshalAs(UnmanagedType.Bool)] set; }
    bool Visible { [return: MarshalAs(UnmanagedType.Bool)] get; }
    void EnsureVisible();
    void Move(Vector3 translation);
    void PerformGesture(SimulatedGesture gesture);
}

Microsoft.PerceptionSimulation.ISimulatedHand.WorldPosition

Načtěte pozici uzlu s ohledem na svět v metrech.

Microsoft.PerceptionSimulation.ISimulatedHand.Position

Načte a nastaví pozici simulované ruky vzhledem k člověku v metrech.

Microsoft.PerceptionSimulation.ISimulatedHand.Activated

Načtěte a nastavte, jestli je ručně aktivovaná.

Microsoft.PerceptionSimulation.ISimulatedHand.Visible

Načte, jestli je hand aktuálně viditelný pro SimulatedDevice (to znamená, jestli je na pozici, kterou má HandTracker detekovat).

Microsoft.PerceptionSimulation.ISimulatedHand.EnsureVisible

Přesuňte rukou tak, aby byla viditelná pro SimulatedDevice.

Microsoft.PerceptionSimulation.ISimulatedHand.Move(Microsoft.PerceptionSimulation.Vector3)

Přesuňte pozici simulované ruky vzhledem k aktuální pozici v metrech.

Parametry

  • translation – množství pro překlad simulované ruky.

Microsoft.PerceptionSimulation.ISimulatedHand.PerformGesture(Microsoft.PerceptionSimulation.SimulatedGesture)

Proveďte gesto pomocí simulované ruky. Systém ji bude detekovat jenom v případě, že je povolená ručně.

Parametry

  • gesture – gesto, které se má provést.

Microsoft.PerceptionSimulation.ISimulatedHand2

Další vlastnosti jsou k dispozici přetypování ISimulatedHand na ISimulatedHand2.

public interface ISimulatedHand2
{
    /* New members in addition to those available on ISimulatedHand */
    Rotation3 Orientation { get; set; }
}

Microsoft.PerceptionSimulation.ISimulatedHand2.Orientation

Načte nebo nastaví rotaci simulované ruky. Kladné radiány se při pohledu na osu otáčí ve směru hodinových ručiček.

Microsoft.PerceptionSimulation.ISimulatedHand3

Další vlastnosti jsou k dispozici přetypování ISimulatedHand na ISimulatedHand3.

public interface ISimulatedHand3
{
    /* New members in addition to those available on ISimulatedHand and ISimulatedHand2 */
    GetJointConfiguration(SimulatedHandJoint joint, out SimulatedHandJointConfiguration jointConfiguration);
    SetJointConfiguration(SimulatedHandJoint joint, SimulatedHandJointConfiguration jointConfiguration);
    SetHandPose(SimulatedHandPose pose, bool animate);
}

Microsoft.PerceptionSimulation.ISimulatedHand3.GetJointConfiguration

Získejte společnou konfiguraci pro zadané spojení.

Microsoft.PerceptionSimulation.ISimulatedHand3.SetJointConfiguration

Nastavte společnou konfiguraci pro zadané spojení.

Microsoft.PerceptionSimulation.ISimulatedHand3.SetHandPose

Nastavte rukou na známou pozici s volitelným příznakem pro animace. Poznámka: Animace nebude mít za následek, že se okamžitě odrazí jejich konečná společná konfigurace.

Microsoft.PerceptionSimulation.ISimulatedHead

Rozhraní popisující hlavičku simulovaného člověka

public interface ISimulatedHead
{
    Vector3 WorldPosition { get; }
    Rotation3 Rotation { get; set; }
    float Diameter { get; set; }
    void Rotate(Rotation3 rotation);
}

Microsoft.PerceptionSimulation.ISimulatedHead.WorldPosition

Načtěte pozici uzlu s ohledem na svět v metrech.

Microsoft.PerceptionSimulation.ISimulatedHead.Rotation

Načte rotaci simulované hlavičky. Kladné radiány se při pohledu na osu otáčí ve směru hodinových ručiček.

Microsoft.PerceptionSimulation.ISimulatedHead.Perception

Načte průměr simulované hlavičky. Tato hodnota se používá k určení středu hlavy (bodu otočení).

Microsoft.PerceptionSimulation.ISimulatedHead.Rotate(Microsoft.PerceptionSimulation.Rotation3)

Otočení simulované hlavičky vzhledem k jejímu aktuálnímu otočení Kladné radiány se při pohledu na osu otáčí ve směru hodinových ručiček.

Parametry

  • rotation – množství, které se má obměnět.

Microsoft.PerceptionSimulation.ISimulatedHead2

Další vlastnosti jsou k dispozici přetypování ISimulatedHead na ISimulatedHead2.

public interface ISimulatedHead2
{
    /* New members in addition to those available on ISimulatedHead */
    ISimulatedEyes Eyes { get; }
}

Microsoft.PerceptionSimulation.ISimulatedHead2.Eyes

Načtěte pohled simulovaného člověka.

Microsoft.PerceptionSimulation.ISimulatedSixDofController

Rozhraní popisující kontroler 6-DOF přidružený k simulovanému člověku

public interface ISimulatedSixDofController
{
    Vector3 WorldPosition { get; }
    SimulatedSixDofControllerStatus Status { get; set; }
    Vector3 Position { get; }
    Rotation3 Orientation { get; set; }
    void Move(Vector3 translation);
    void PressButton(SimulatedSixDofControllerButton button);
    void ReleaseButton(SimulatedSixDofControllerButton button);
    void GetTouchpadPosition(out float x, out float y);
    void SetTouchpadPosition(float x, float y);
}

Microsoft.PerceptionSimulation.ISimulatedSixDofController.WorldPosition

Načtěte pozici uzlu s ohledem na svět v metrech.

Microsoft.PerceptionSimulation.ISimulatedSixDofController.Status

Načtěte nebo nastavte aktuální stav kontroleru. Stav kontroleru musí být nastavený na jinou hodnotu než Vypnuto, aby jakékoli volání pro přesunutí, otočení nebo stisknutí tlačítek bylo úspěšné.

Microsoft.PerceptionSimulation.ISimulatedSixDofController.Position

Načte nebo nastaví pozici simulovaného kontroleru vzhledem k člověku v metrech.

Microsoft.PerceptionSimulation.ISimulatedSixDofController.Orientation

Načtení nebo nastavení orientace simulovaného kontroleru

Microsoft.PerceptionSimulation.ISimulatedSixDofController.Move(Microsoft.PerceptionSimulation.Vector3)

Přesuňte pozici simulovaného kontroleru vzhledem k aktuální pozici v metrech.

Parametry

  • translation – množství pro překlad simulovaného kontroleru.

Microsoft.PerceptionSimulation.ISimulatedSixDofController.PressButton(SimulatedSixDofControllerButton)

Stiskněte tlačítko na simulovaném kontroleru. Systém ho bude detekovat jenom v případě, že je kontroler povolený.

Parametry

  • – tlačítko, které se má stisknout.

Microsoft.PerceptionSimulation.ISimulatedSixDofController.ReleaseButton(SimulatedSixDofControllerButton)

Uvolněte tlačítko na simulovaném kontroleru. Systém ho bude detekovat jenom v případě, že je kontroler povolený.

Parametry

  • tlačítko – tlačítko, které se má uvolnit.

Microsoft.PerceptionSimulation.ISimulatedSixDofController.GetTouchpadPosition(out float, out float)

Získejte pozici simulovaného prstu na touchpadu simulovaného kontroleru.

Parametry

  • x – vodorovná pozice prstu.
  • y – svislá poloha prstu.

Microsoft.PerceptionSimulation.ISimulatedSixDofController.SetTouchpadPosition(float, float)

Nastavte pozici simulovaného prstu na touchpadu simulovaného kontroleru.

Parametry

  • x – vodorovná pozice prstu.
  • y – svislá poloha prstu.

Microsoft.PerceptionSimulation.ISimulatedSixDofController2

Další vlastnosti a metody jsou k dispozici přetypování ISimulatedSixDofController na ISimulatedSixDofController2.

public interface ISimulatedSixDofController2
{
    /* New members in addition to those available on ISimulatedSixDofController */
    void GetThumbstickPosition(out float x, out float y);
    void SetThumbstickPosition(float x, float y);
    float BatteryLevel { get; set; }
}

Microsoft.PerceptionSimulation.ISimulatedSixDofController2.GetThumbstickPosition(out float, out float)

Získejte pozici simulovaného thumbsticku na simulovaném kontroleru.

Parametry

  • x – vodorovná pozice thumbsticku.
  • y – svislá poloha thumbsticku.

Microsoft.PerceptionSimulation.ISimulatedSixDofController2.SetThumbstickPosition(float, float)

Nastavte pozici simulovaného thumbsticku na simulovaném kontroleru.

Parametry

  • x – vodorovná pozice thumbsticku.
  • y – svislá poloha thumbsticku.

Microsoft.PerceptionSimulation.ISimulatedSixDofController2.BatteryLevel

Načtěte nebo nastavte úroveň baterie simulovaného kontroleru. Hodnota musí být větší než 0,0 a menší nebo rovna 100,0.

Microsoft.PerceptionSimulation.ISimulated EmulS

Rozhraní popisující pohled simulovaného člověka.

public interface ISimulatedEyes
{
    Rotation3 Rotation { get; set; }
    void Rotate(Rotation3 rotation);
    SimulatedEyesCalibrationState CalibrationState { get; set; }
    Vector3 WorldPosition { get; }
}

Microsoft.PerceptionSimulation.ISimulated Přemísteace.Rotation

Načtěte rotaci simulovaných očí. Kladné radiány se při pohledu na osu otáčí ve směru hodinových ručiček.

Microsoft.PerceptionSimulation.ISimulated Nes.Rotate(Microsoft.PerceptionSimulation.Rotation3)

Otočení simulovaných očí vzhledem k aktuálnímu otočení. Kladné radiány se při pohledu na osu otáčí ve směru hodinových ručiček.

Parametry

  • rotation – množství, které se má obměnět.

Microsoft.PerceptionSimulation.ISimulatedStates.PerceptionState

Načte nebo nastaví stav simulovaného očí.

Microsoft.PerceptionSimulation.ISimulated Emuls.WorldPosition

Načtěte pozici uzlu s ohledem na svět v metrech.

Microsoft.PerceptionSimulation.ISimulationRecording

Rozhraní pro interakci s jedním záznamem načteným pro přehrávání.

public interface ISimulationRecording
{
    StreamDataTypes DataTypes { get; }
    PlaybackState State { get; }
    void Play();
    void Pause();
    void Seek(UInt64 ticks);
    void Stop();
};

Microsoft.PerceptionSimulation.ISimulationRecording.DataTypes

Načte seznam datových typů v záznamu.

Microsoft.PerceptionSimulation.ISimulationRecording.State

Načte aktuální stav nahrávky.

Microsoft.PerceptionSimulation.ISimulationRecording.Play

Spusťte přehrávání. Pokud je záznam pozastavený, přehrávání se obnoví z pozastaveného umístění. Pokud se zastaví, přehrávání se spustí na začátku. Pokud už přehráváte, toto volání se ignoruje.

Microsoft.PerceptionSimulation.ISimulationRecording.Pause

Pozastaví přehrávání v aktuálním umístění. Pokud se záznam zastaví, volání se ignoruje.

Microsoft.PerceptionSimulation.ISimulationRecording.Seek(System.UInt64)

Vyhledá záznam v zadaném čase (v intervalech po 100 nanosekundách od začátku) a pozastaví se v tomto umístění. Pokud čas přesahuje konec nahrávky, pozastaví se na posledním snímku.

Parametry

  • ticks (značky) – čas, na který se má vyhledat.

Microsoft.PerceptionSimulation.ISimulationRecording.Stop

Zastaví přehrávání a resetuje pozici na začátek.

Microsoft.PerceptionSimulation.ISimulationRecordingCallback

Rozhraní pro příjem změn stavu během přehrávání

public interface ISimulationRecordingCallback
{
    void PlaybackStateChanged(PlaybackState newState);
};

Microsoft.PerceptionSimulation.ISimulationRecordingCallback.PlaybackStateChanged(Microsoft.PerceptionSimulation.PlaybackState)

Volá se, když se změnil stav přehrávání ISimulationRecording.

Parametry

  • newState – nový stav záznamu.

Microsoft.PerceptionSimulation.PerceptionSimulationManager

Kořenový objekt pro vytváření objektů simulace vnímání.

public static class PerceptionSimulationManager
{
    public static IPerceptionSimulationManager CreatePerceptionSimulationManager(ISimulationStreamSink sink);
    public static ISimulationStreamSink CreatePerceptionSimulationRecording(string path);
    public static ISimulationRecording LoadPerceptionSimulationRecording(string path, ISimulationStreamSinkFactory factory);
    public static ISimulationRecording LoadPerceptionSimulationRecording(string path, ISimulationStreamSinkFactory factory, ISimulationRecordingCallback callback);

Microsoft.PerceptionSimulation.PerceptionSimulationManager.CreatePerceptionSimulationManager(Microsoft.PerceptionSimulation.ISimulationStreamSink)

Vytvořte objekt on pro generování simulovaných paketů a jejich doručení do poskytnuté jímky.

Parametry

  • jímka – jímka, která bude přijímat všechny vygenerované pakety.

Vrácená hodnota

Vytvořený správce.

Microsoft.PerceptionSimulation.PerceptionSimulationManager.CreatePerceptionSimulationRecording(System.String)

Vytvořte jímku, která ukládá všechny přijaté pakety do souboru v zadané cestě.

Parametry

  • path – cesta k souboru, který chcete vytvořit.

Vrácená hodnota

Vytvořená jímka.

Microsoft.PerceptionSimulation.PerceptionSimulationManager.LoadPerceptionSimulationRecording(System.String,Microsoft.PerceptionSimulation.ISimulationStreamSinkFactory)

Načtěte záznam ze zadaného souboru.

Parametry

  • path – cesta k souboru, který se má načíst.
  • factory – továrna používaná záznamem k vytvoření ISimulationStreamSink v případě potřeby.

Vrácená hodnota

Načtený záznam.

Microsoft.PerceptionSimulation.PerceptionSimulationManager.LoadPerceptionSimulationRecording(System.String,Microsoft.PerceptionSimulation.ISimulationStreamSinkFactory,Microsoft.PerceptionSimulation.ISimulationRecordingCallback)

Načtěte záznam ze zadaného souboru.

Parametry

  • path – cesta k souboru, který se má načíst.
  • factory – továrna používaná záznamem k vytvoření ISimulationStreamSink v případě potřeby.
  • zpětné volání – zpětné volání, které přijímá aktualizace, které regradují stav záznamu.

Vrácená hodnota

Načtený záznam.

Microsoft.PerceptionSimulation.StreamDataTypes

Popisuje různé typy dat datového proudu.

public enum StreamDataTypes
{
    None = 0x00,
    Head = 0x01,
    Hands = 0x02,
    SpatialMapping = 0x08,
    Calibration = 0x10,
    Environment = 0x20,
    SixDofControllers = 0x40,
    Eyes = 0x80,
    DisplayConfiguration = 0x100
    All = None | Head | Hands | SpatialMapping | Calibration | Environment | SixDofControllers | Eyes | DisplayConfiguration
}

Microsoft.PerceptionSimulation.StreamDataTypes.None

Hodnota sentinelu použitá k označení žádných datových typů streamu.

Microsoft.PerceptionSimulation.StreamDataTypes.Head

Datový proud pro umístění a orientaci hlavy

Microsoft.PerceptionSimulation.StreamDataTypes.Hands

Streamování dat pro pozici a gesta rukou

Microsoft.PerceptionSimulation.StreamDataTypes.SpatialMapping

Stream dat pro prostorové mapování prostředí

Microsoft.PerceptionSimulation.StreamDataTypes.Perception

Streamování dat pro ochranu zařízení. Pakety paketů paketů přijímá pouze systém ve vzdáleném režimu.

Microsoft.PerceptionSimulation.StreamDataTypes.Environment

Proud dat pro prostředí zařízení.

Microsoft. PerceptionSimulation. StreamDataTypes. SixDofControllers

Proud dat pro řadiče pohybu.

Microsoft. PerceptionSimulation. StreamDataTypes. očima

Streamování dat s využitím očí simulované lidského.

Microsoft. PerceptionSimulation. StreamDataTypes. DisplayConfiguration

Proud dat se zobrazením konfigurace zařízení.

Microsoft. PerceptionSimulation. StreamDataTypes. All

Hodnota Sentinel používaná k označení všech zaznamenaných datových typů.

Microsoft. PerceptionSimulation. ISimulationStreamSink

Objekt, který přijímá datové pakety z datového proudu simulace.

public interface ISimulationStreamSink
{
    void OnPacketReceived(uint length, byte[] packet);
}

Microsoft. PerceptionSimulation. ISimulationStreamSink. OnPacketReceived (délka uint, Byte [] paket)

Přijímá jeden paket, který je interně zadaný a má verzi.

Parametry

  • Délka – Délka paketu.
  • paket – data paketu.

Microsoft. PerceptionSimulation. ISimulationStreamSinkFactory

Objekt vytvářející ISimulationStreamSink.

public interface ISimulationStreamSinkFactory
{
    ISimulationStreamSink CreateSimulationStreamSink();
}

Microsoft. PerceptionSimulation. ISimulationStreamSinkFactory. CreateSimulationStreamSink ()

Vytvoří jednu instanci třídy ISimulationStreamSink.

Vrácená hodnota

Vytvořená jímka.