Mapowanie stałych między HAL a interfejsem API

Na tej stronie znajdziesz zalecane mapowania między stałymi publicznego HAL-u a stałymi interfejsu API. Jeśli oceniany sprzęt nie implementuje stałych HAL, zaktualizuj wzorce rezerwowe opisane na stronie Implementowanie stałych i typów prostych, aby generować podobne dane wyjściowe. Mapowanie jest wspomagane przez 2 różne modele domyślne:

  • Model dyskretny (prosty)

    • Kluczową zmienną tego modelu jest amplituda. Każdy element w HAL reprezentuje inną amplitudę haptyczną.
    • Ten model to minimalne wymaganie potrzebne do wdrożenia podstawowego interfejsu haptycznego.
    • Bardziej zaawansowane wrażenia dotykowe wymagają zaawansowanego sprzętu i zaawansowanego modelu (modelu ciągłego).
  • Model ciągły (zaawansowany)

    • Tekstura i amplituda to kluczowe zmienne tego modelu. Każdy element w HAL reprezentuje inną teksturę haptyczną. Amplituda każdej jednostki HAL jest kontrolowana przez współczynnik skali (S).
    • Ten model wymaga zaawansowanego sprzętu. Jeśli producenci OEM chcą korzystać z zaawansowanych wrażeń dotykowych z VibrationEffect.Composition (aby jak najlepiej wykorzystać najnowsze interfejsy API dotyczące wrażeń dotykowych), zalecamy wdrożenie sprzętu przy użyciu tego modelu.

Model dyskretny

Zalecamy mapowanie wszystkich stałych publicznych udostępnianych w interfejsie API na odpowiednie stałe HAL. Aby rozpocząć ten proces, sprawdź, ile kształtów fali haptycznej o dyskretnej amplitudzie może zdefiniować urządzenie w warstwie HAL. Konkretne pytanie związane z tym pojęciem może brzmieć tak: Ile pojedynczych impulsów haptycznych o różnicach w amplitudzie dostrzegalnych przez człowieka można zdefiniować na moim telefonie? Odpowiedź na to pytanie określa mapowanie.

Definiowanie stałych HAL zależy od sprzętu. Na przykład telefon z niższej półki może mieć tylko sprzęt, który umożliwia generowanie pojedynczego kształtu fali haptycznej. Urządzenia z bardziej zaawansowanymi komponentami sprzętowymi generują szerszy zakres dyskretnych poziomów amplitudy i mogą definiować wiele kształtów fal haptycznych w HAL. Mapowanie stałych HAL API wykorzystuje stałą HAL (przy użyciu średniej amplitudy jako wartości bazowej), a następnie rozmieszcza silniejsze lub słabsze efekty.

Diagram stałego zakresu HAL i amplitud informacji zwrotnych

Rysunek 14. Stały zakres HAL według amplitudy

Gdy zdefiniowana jest liczba stałych HAL o dyskretnej amplitudzie, należy przypisać stałe HAL i API według liczby stałych HAL. Ten proces mapowania może podzielić jedną stałą interfejsu API impulsu na maksymalnie 3 oddzielne grupy poziomów amplitudy. Sposób segmentowania stałych interfejsu API opiera się na zasadach UX dotyczących towarzyszących zdarzeń wejściowych. Więcej informacji znajdziesz w artykule Projektowanie interfejsu użytkownika z wykorzystaniem haptyki.

Model dyskretny dla stałego mapowania HAL-API

Rysunek 15. Mapowanie stałych HAL-API: model dyskretny

Jeśli urządzenie obsługuje tylko 2 stałe wartości HAL o dyskretnych amplitudach, rozważ połączenie stałych wartości HAL o średnim i wysokim poziomie amplitudy. Przykładem tego w praktyce jest mapowanie EFFECT_CLICKEFFECT_HEAVY_CLICK na tę samą stałą HAL, czyli stałą HAL poziomu średniej amplitudy. Jeśli urządzenie obsługuje tylko jedną stałą HAL o dyskretnej amplitudzie, rozważ połączenie wszystkich 3 poziomów w jeden.

Model ciągły

Model ciągły ze skalowalnością amplitudy można zastosować do definiowania stałych HAL. Do stałych HAL (np. HAL_H0, HAL_H1) można zastosować współczynnik skali (S), aby uzyskać skalowane stałe HAL (HAL_H0 x S). W tym przypadku skalowane stałe HAL są mapowane w celu zdefiniowania stałych interfejsu API (HAL_H0 x S1 = H0S1 = EFFECT_TICK), jak pokazano na rysunku 16. Dzięki skalowalności amplitudy modelu ciągłego urządzenie może przechowywać niewielką liczbę stałych HAL o różnych teksturach i dodawać wariacje amplitudy, dostosowując współczynnik skali (S). Producenci urządzeń mogą określić liczbę stałych HAL na podstawie tego, ile różnych tekstur haptycznych chcą udostępnić.

Zakres stałych HAL według tekstury i amplitudy

Rysunek 16. Stały zakres HAL według tekstury (HAL_H0) i skali amplitudy (S)

Model ciągły dla stałej HAL-API
mapowania

Rysunek 17. Mapowanie stałych HAL-API: model ciągły

W modelu ciągłym różne stałe HAL reprezentują różne tekstury haptyczne, a nie różne amplitudy. Amplitudę można skonfigurować za pomocą współczynnika skali (S). Jednak ponieważ postrzeganie tekstury (np. ostrości) jest związane z postrzeganiem czasu trwania i amplitudy, zalecamy połączenie tekstury i współczynnika skali (w procesie projektowania mapowania HAL-API).

Ilustracja 18 przedstawia stałe mapowanie przez zwiększanie wariacji od jednego stałego HAL do wielu stałych API ze skalowalnością amplitudy.

Increasing Varation
1

Increasing Varation
2

Rysunek 18. Zwiększanie różnorodności dzięki skalowalności amplitudy

W przypadku wszystkich skalowalnych stałych interfejsu API, takich jak PRIMITIVE_TICKPRIMITIVE_CLICKVibrationEffect.Composition, poziom energii stałej interfejsu API zależy od parametru float scale, gdy stała interfejsu API jest deklarowana za pomocą addPrimitive(int primitiveID, float scale, int delay). PRIMITIVE_TICKPRIMITIVE_CLICK można zaprojektować z wyraźnym rozróżnieniem, używając różnych stałych HAL. To podejście jest zalecane, jeśli chcesz dodać odmianę tekstury.