Attachment 08 ISW_SolNet_PropertyDescriptorSpecification_FinalDraft.pdf
PDF 712 KB Posted
- Attached to
- Family of Weapon Sight – Individual (FWS-I) Full Rate Production Federal contract opportunity
- Solicitation number
- W91CRB-21-R-0012
About this file
This solicitation requests full rate production of the Family of Weapon Sights - Individual (FWS-I). Key requirements include production of the FWS-I, associated spare and repair parts, maintenance, and system technical support. The FWS-I is an uncooled, lightweight, infrared imaging device of medium to high resolution used for surveillance and target acquisition on individual weapons during daylight, darkness, adverse weather, and dirty battlefield conditions. When used in conjunction with an Intra-Soldier Wireless (ISW) Interface Control Document (ICD) compliant device, the FWS-I shall provide a wireless Rapid Target Acquisition (RTA) capability. When used with a Direct View Optic (DVO), the FWS-I shall provide interconnectivity such that the FWS-I displayed output scene imagery serves as the input for the DVO. The soliciting agency is the Department of the Army Materiel Command Army Contracting Command Aberdeen Proving Ground.
View the file
Other files for this federal contract opportunity
Show all 46
On GovTribe
Work with this file on GovTribe
- Download the original file
- Contacts named in this file
- Similar government files
- Ask GovTribe AI about this file
Text version
UNCLASSIFIED//FOR OFFICIAL USE ONLY
(U//FOUO) Intra-Soldier Wireless (ISW)
(U//FOUO) SolNet Property Descriptor Specification
Version 1.4 October 2020
DISTRIBUTION STATEMENT D: Distribution authorized to the Department of Defense and U.S. DoD contractors For Official Use Only or for Administrative or Operational Use, 28 September 2018. Other requests for this document shall be referred to the C5ISR Center S&TCD CTI&E Branch. Bldg. 6010, Blair Hall, 6590 Reconnaissance Street, Aberdeen Proving Ground, MD 21005
ISW SolNet Property Descriptor Specification Version: 1.4 Date: October 2020 UNCLASSIFIED//FOR OFFICIAL USE ONLY
(U) Revision History (U)
Date Version Description
September 2018 1.0 Initial document
March 2019 1.1 Edits from implementer feedback; added APIs and SolNet reference
June 2019 1.2 API and SolNet compliance matrix changes; updated API
September 2019 1.3 Updated API (get FW version, set factory default)
October 2020 1.4 SolNet Property Descriptors separated from ISW Embedment Guide & Updated
(U)
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page i
(U) Table of Contents
1. (U) Document Purpose and Scope
2. (U) References
2.1 (U) Document References
2.2 (U) Definitions
2.3 (U) Acronyms and Abbreviations
2.4 (U) Language and Word Usage
3. (U) General Description
4. (U) Service-Specific Property Descriptors
4.1 (U) Core Property Descriptors
4.2 (U) Video Property Descriptors
4.2.1 (U) Video Output Format Raw Descriptor
4.2.2 (U) Video Format Descriptor
4.2.3 (U) Video Sample Format Descriptor
4.2.4 (U) Maximum Frame Size Descriptor
4.2.5 (U) RLE Format Descriptor
4.2.6 (U) Video Input Format Descriptor
4.2.7 (U) Video Protocol Descriptor
4.2.8 (U) Video Instantaneous Field of View Descriptor
4.2.9 (U) Video Principal Point Descriptor
4.2.10 (U) Video Lens Distortion Descriptor
4.2.11 (U) Video Control Descriptor
4.2.12 (U) Image Sensor Type Descriptor
4.2.13 (U) Image Sensor Waveband Descriptor
4.2.14 (U) Video Intrinsic Parameters Descriptor
4.2.15 (U) Video Frame Rate Descriptor
4.3 (U) Audio Property Descriptors
4.4 (U) Position Property Descriptors
4.4.1 (U) Position Device Class Descriptor
4.5 (U) Environment Property Descriptors
4.6 (U) Health Property Descriptors
4.7 (U) User Interface (UI) Property Descriptors
4.7.1 (U) Simple UI Motion
4.7.2 (U) Simple UI Buttons
4.8 (U) Control Property Descriptors
4.9 (U) Motion Property Descriptors
4.9.1 (U) IMU Output Rate Descriptor
4.9.2 (U) IMU Input Rate Descriptor
4.9.3 (U) Motion Sensor Rate Descriptor
4.9.4 (U) Motion Sensor Axes Descriptor
4.9.5 (U) Motion Sensor Accelerometer Descriptor
4.9.6 (U) Motion Sensor Gyroscope Descriptor
4.9.7 (U) Motion Sensor Magnetometer Descriptor
4.10 (U) AR Type 1 Property Descriptors
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page ii
4.11 (U) AR Type 2 Property Descriptors
4.11.1 (U) Overlay Output Descriptor
4.12 (U) Protocol Property Descriptors
4.12.1 (U) GSSIP Feature Support
4.13 (U) Status Property Descriptors
4.13.1 (U) Battery Descriptor
4.14 (U) Range Property Descriptors
4.14.1 (U) LRF Capabilities Descriptor
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page iii
(U) List of Tables Table 2-1 (U) Document References Table 2-2 (U) Definitions Table 2-3 (U) Acronyms and Abbreviations Table 2-4 (U) IEEE Word Usage Summary Table 4-1 (U) Service-Specific Property Descriptor Class Namespace Table 4-2 (U) Video Property Descriptor ID Values Table 4-3 (U) Video Output Format Raw Descriptor Table 4-4 (U) Raw Video Output Pixel Formats Table 4-5 (U) Video Format Descriptor Table 4-6 (U) Video Encoding Formats Table 4-7 (U) Video Sample Format Descriptor Table 4-8 (U) Pixel Formats Table 4-9 (U) Maximum Frame Size Descriptor Table 4-10 (U) RLE Format Descriptor Table 4-11 (U) RLE Version Numbers Table 4-12 (U) Video Input Format Descriptor Table 4-13 (U) Supported Video Input Resolutions Bitmask Table 4-14 (U) Supported Video Input Formats Bitmask Table 4-15 (U) Video Protocol Descriptor Table 4-16 (U) Video Protocol Table 4-17 (U) Video Instantaneous Field of View Descriptor Table 4-18 (U) Video Principal Point Descriptor Table 4-19 (U) Video Lens Distortion Descriptor Table 4-20 (U) Video Control Descriptor Table 4-21 (U) Image Sensor Type Descriptor Table 4-22 (U) Image Sensor Types Enumeration Table 4-23 (U) Image Sensor Waveband Descriptor Table 4-24 (U) Image Sensor Waveband Enumeration Table 4-25 (U) Video Intrinsic Parameters Descriptor Table 4-26 (U) Video Frame Rate Descriptor Table 4-27 (U) Audio Property Descriptor ID Values Table 4-28 (U) Position Property Descriptor ID Values Table 4-29 (U) Position Device Class Descriptor Table 4-30 (U) Position Device Class Enumeration Table 4-31 (U) Environment Property Descriptor ID Values Table 4-32 (U) Health Property Descriptor ID Values Table 4-33 (U) UI Property Descriptor ID Values Table 4-34 (U) Simple UI Motion Descriptor Table 4-35 (U) Simple Motion Update Vector Table 4-36 (U) Simple UI Button Descriptor Table 4-37 (U) Button States Table 4-38 (U) Button Events Table 4-39 (U) Short BITMAP Event Update Table 4-40 (U) Long BITMAP Event Update Table 4-41 (U) Short Button Event Update Table 4-42 (U) Long Button Event Update Table 4-43 (U) Extended Event Map Update
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page iv
Table 4-44 (U) Control Property Descriptor ID Values Table 4-45 (U) Motion Property Descriptor ID Values Table 4-46 (U) IMU Output Rate Descriptor Table 4-47 (U) IMU Input Rate Descriptor Table 4-48 (U) Motion Sensor Rate Descriptor Table 4-49 (U) Motion Sensor Axes Descriptor Table 4-50 (U) Motion Sensor Accelerometer Descriptor Table 4-51 (U) Motion Sensor Gyroscope Descriptor Table 4-52 (U) Motion Sensor Magnetometer Descriptor Table 4-53 (U) AR Type 1 Property Descriptor Values Table 4-54 (U) AR Type 2 Property Descriptor Values Table 4-55 (U) Overlay Output Descriptor Table 4-56 (U) Supported RLE Versions Bitmask Table 4-57 (U) Protocol Property Descriptor Values Table 4-58 (U) GSSIP Feature Support Descriptor Table 4-59 (U) Status Property Descriptor Values Table 4-60 (U) Battery Descriptor Table 4-61 (U) Range Property Descriptor Values Table 4-62 (U) LRF Capabilities Descriptor
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 1
1. (U) Document Purpose and Scope (U//FOUO) This document defines the service-related Descriptor specification for the Intra-Soldier Wireless (ISW) Soldier Network (SolNet). This document is intended to provide enough information for ISW nodes to define and process descriptors in compliance with the SolNet protocol for interoperating and coexisting with other ISW SolNet devices within the same network.
2. (U) References
2.1 (U) Document References
(Unclassified)
Table 2-1 (U) Document References Ref # Title
[R1] A3309776- ISW SolNet Protocol v1.4
[R2] IEEE-SA Standards Style Manual, 2014
[R3] IEEE Std 1003.1-2001
2.2 (U) Definitions
Table 2-2 (U) Definitions Term Definition
Consumer See data consumer
Data Consumer
An ISW node that receives (consumes) data from a given Data Producer
Data Producer
An ISW node that produces (transmits) data to a given Data Consumer
Endpoint Logical flow of data arriving from an application over a wired interface
Node The hardware, firmware and software that constitutes an ISW implementation
Peer Node connected to the local node over the air
Producer See data producer
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 2
Table 2-2 (U) Definitions Term Definition
Provider See service provider
Service Provider
An ISW node, or service, which advertises and offers its service, through the use of ISW SolNet
Service Subscriber
An ISW node which queries (Browses), and registers with a given Service Provider
Subscriber See service subscriber
2.3 (U) Acronyms and Abbreviations
Table 2-3 (U) Acronyms and Abbreviations Acronym Abbreviation
API Application Programming Interface
AR Augmented Reality
ENVG-B Enhanced Night Vision Goggle - Binocular
FOUO For Official Use Only
ICD Interface Control Document
IMU Inertial Measurement Unit
ISW Intra-Soldier Wireless
LRF Laser Range Finder
LSB Least Significant Bits
MSB Most Significant Bits
SolNet Intra-Soldier Wireless Networking
UI User Interface
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 3
2.4 (U) Language and Word Usage (U//FOUO) This specification has adopted IEEE Standards Style Manual [R2] word usage, as defined in section §10.2.
Table 2-4 (U) IEEE Word Usage Summary
(U//FOUO)
Shall is required to - The word shall indicate mandatory requirements strictly to be followed in order to conform to the standard and from which no deviation is permitted.
Must is a natural consequence of - The use of the word must is deprecated and shall not be used when stating mandatory requirements; must is used only to describe unavoidable situations.
Will it is true that - The use of the word will is deprecated and shall not be used when stating mandatory requirements; will is only used in statements of fact.
Should is recommended that - The word should indicate that among several possibilities, one is recommended as particularly suitable without mentioning or excluding others; or that a certain course of action is preferred but not necessarily required.
May is permitted to - The word may is used to indicate a course of action permissible within the limits of the standard.
Can is able to - The word can is used for statements of possibility and capability, whether material, physical, or causal.
(U//FOUO)
3. (U) General Description (U//FOUO) The ISW SolNet Protocol [R1] defines the Intra-Soldier Wireless Networking (SolNet) protocol. This protocol promotes networking layer compatibility between ISW nodes. SolNet defines a simple networking protocol for service discovery and flow activation. ISW nodes discover the services of peers using service discovery. ISW nodes register with the discovered peer's service using flow activation. Together, these operations promote efficient use of the network.
(U//FOUO) Nodes advertise provided services using Service descriptors and Property descriptors.
Property descriptors are of two varieties:
• (U//FOUO) Core Properties: Properties that apply to the entire node or that can be used as supplementary descriptors for qualifying various services or service-specific properties.
• (U//FOUO) Service-Specific Properties: Properties that describe or qualify specific services.
(U//FOUO) The ISW SolNet Protocol [R1] defines:
• (U//FOUO) Common Descriptor format
• (U//FOUO) Descriptor Namespace
• (U//FOUO) Service Descriptor namespace and format
• (U//FOUO) Core Property Descriptor namespace and formats
(U//FOUO) Refer to that specification for context.
(U//FOUO) This document describes Service-Specific Property descriptors.
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 4
4. (U) Service-Specific Property Descriptors (U//FOUO) The namespace for service-specific property descriptors is sub-divided into service classes.
Property descriptors are grouped by service class as described in the following table.
Table 4-1 (U) Service-Specific Property Descriptor Class Namespace
(U//FOUO)
Value Type Description
0x0100 – 0x07FF CORE Defined in the ISW SolNet Protocol [R1]
Service-Specific Descriptors
0x0800 – 0x0BFF VIDEO Describes properties of a video output service, video input service, or video element
0x0C00 – 0x0FFF AUDIO Describes properties of an audio service or audio element
0x1000 – 0x13FF POSITION Describes properties of a service or element that produces position or vectors
0x1400 – 0x17FF ENVIRONMENT Describes properties of a service or element that produces environmental information
0x1800 – 0x1BFF HEALTH Describes properties of a service or element that produces human health information
0x1C00 – 0x1FFF UI Describes properties of a UI service or element
0x2000 – 0x23FF CONTROL Describes properties of a service or element consisting solely of control (protocol) exchange
0x2400 – 0x27FF MOTION Describes properties of a service or element that measures or monitors motion.
0x2800 – 0x2BFF RESERVED Reserved for future specification.
0x2C00 – 0x2DFF AR TYPE 1 Describes properties of a service or element that produces augmented reality (AR) data for ENVG-B AR ICD.
0x2E00 – 0x2FFF AR TYPE 2 Describes properties of a service or element that produces augmented reality (AR) information.
0x3000-0x33FF PROTOCOL Describes properties of dataflow formats or protocols.
0x3400 – 0x37FF STATUS Describes properties of a service or element that produces status.
0x3800 – 0x3BFF RANGE Describes properties of a service or element that produces range data.
0x3C00 – 0x7FFF RESERVED Reserved for future specification
0x8000-0xFFFF Vendor-defined Reserved for vendor or implementer use. Use of values in this range may significantly impair interoperability.
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 5
4.1 (U) Core Property Descriptors (U//FOUO) Core Property descriptors are defined in ISW SolNet Protocol [R1].
4.2 (U) Video Property Descriptors (U//FOUO) The following table define video property descriptor IDs.
Table 4-2 (U) Video Property Descriptor ID Values
(U//FOUO)
Value Type Description
0x0800 VIDEO OUTPUT FORMAT RAW Deprecated. Raw video output format
0x0801 VIDEO FORMAT Video format.
0x0802 VIDEO SAMPLE FORMAT Pixel format of the video format
0x0803 MAXIMUM FRAME SIZE Maximum JPEG frame size
0x0804 RLE FORMAT Run Length Encoding (RLE) format
0x0805-0x87F Reserved Reserved for future specification
0x0880 VIDEO INPUT FORMAT Video input format.
0x0881-0x8FF Reserved Reserved for future specification
0x0900 PROTOCOL Video packetization protocol
0x0901-097F Reserved Reserved for future specification
0x0980 IFOV Instantaneous field of view
0x0981-09FF Reserved Reserved for future specification
0x0A00 PRINCIPAL POINT Principal point
0x0A01-0A7F Reserved Values reserved for future specification
0x0A80 VIDEO LENS DISTORTION Video lens distortion parameters
0x0A81-0AFF Reserved Values reserved for future specification
0x0B00 VIDEO CONTROL Various video controls
0x0B01 IMAGE SENSOR TYPE Video image sensor type
0x0B02 IMAGE SENSOR WAVEBAND Video image sensor waveband
0x0B03-0B7F Reserved Values reserved for future specification
0x0B80 VIDEO INTRINSIC PARAMETERS Video intrinsic camera parameters
0x0B81-0B8F Reserved Values reserved for future specification
0x0B90 VIDEO FRAME RATE Video output frame rate
0x0B91-FFFF Reserved Values reserved for future specification
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 6
4.2.1 (U) Video Output Format Raw Descriptor (U//FOUO) This descriptor defines parameters describing raw video output format. Note: This descriptor is deprecated as of specification version 1.4. It is recorded here to support fielded systems. New systems shall not use this descriptor, but instead use the Video Format descriptor.
Table 4-3 (U) Video Output Format Raw Descriptor
(U//FOUO)
Field Bits Value Type Description
Length 16 0x000C uint16_t Length of this descriptor not including the common descriptor header
Descriptor ID 16 0x0800 uint16_t Video Output Format Raw
Video Format X 16 Var uint16_t Number of pixel columns per frame
Video Format Y 16 Var uint16_t Number of pixel rows per frame
Frame Rate 32 Var float_t Frames per second
Bit Depth 16 Var uint16_t Number of bits per pixel
Pixel Format 16 Var uint16_t Enumerated pixel format; see Raw Video Pixel Format table for values
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 7
Table 4-4 (U) Raw Video Output Pixel Formats
(U//FOUO)
Pixel Format Value Description
Monochrome 0x0001 Luminance (Y’) only (Monochrome)
NV21 0x0002 YCrCb format for images using the NV21 encoding format.
YUY2 0x0003 YCbCr format for images using YUYV (YUY2) encoding.
NV16 0x0004 YCbCr format, used for video.
Reserved 0x0005-0x001F Reserved for future specification.
RGBA 4444 0x0020 Two byte pixel: RGB color and alpha format, 4 bits per channel.
RGBA 8888 0x0021 Four byte pixel: RGB color and alpha format, 8 bits per channel.
RGBA 5551 0x0022 Two byte pixel: RGB color and alpha format, 5 bits per Red, Green, Blue channel, and a single 1-bit alpha.
RGBX 8888 0x0023 Four byte pixel: RGB color with Alpha format, with alpha channel ignored. 8 bits per color channel, 8 bits for alpha. Alpha should be set to 0xFF.
Reserved 0x0024-0x002F Reserved for future specification.
RGB 332 0x0030 One byte pixel: RGB color format with no alpha bits format. 3 bits for Red and Green channel, 2 bits for Blue channel
RGB 555 0x0031 Two byte pixel: RGB color without alpha bits format. 5 bits for Red and Blue channel, 6 bits for Green channel.
RGB 888 0x0032 Three byte pixel: RGB color without alpha bits format. 8 bits per color channel.
Reserved 0x0033-0xFFFF Reserved for future specification.
(U//FOUO)
4.2.2 (U) Video Format Descriptor (U//FOUO) This descriptor defines parameters describing video format, rate, and encoding.
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 8
Table 4-5 (U) Video Format Descriptor
(U//FOUO)
Field Bits Value Type Description
Length 16 0x000C uint16_t Length of this descriptor not including the common descriptor header
Descriptor ID 16 0x0801 uint16_t Video Format
Video Format X 16 Var uint16_t Number of pixel columns per frame
Video Format Y 16 Var uint16_t Number of pixel rows per frame
Frame Rate 32 Var float_t Frames per second
Format Options 8 Var uint8_t Bit 0 – Reported video resolution is:
0b0 = Fixed resolution 0b1 = Variable, maximum resolution
Bit 1 – Reported video frame rate is:
0b0 = Fixed frame rate 0b1 = Variable, maximum frame rate
Bit 2 – 7: Reserved for future specification (0b0) Reserved 8 0x00 uint8_t Reserved for future specification
Encoding Format 16 Var uint16_t Enumerated encoding format; see Video Encoding Formats table
(U//FOUO)
Table 4-6 (U) Video Encoding Formats
(U//FOUO)
Encoding Format Value Description
RAW 0x0000 Raw pixel data
Baseline JPEG 0x0001 Baseline JPEG
RLE 0x0002 Run-Length Encoding
Reserved 0x0003 – 0xFFFF
Reserved for future specification
(U//FOUO)
4.2.3 (U) Video Sample Format Descriptor (U//FOUO) This descriptor defines parameters describing pixel format of the video to allow data interpretation.
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 9
Table 4-7 (U) Video Sample Format Descriptor
(U//FOUO)
Field Bits Value Type Description
Length 16 0x0004 uint16_t Length of this descriptor not including the common descriptor header
Descriptor ID 16 0x0802 uint16_t Video Sample Format
Bit Depth 16 Var uint16_t Number of bits per pixel
Pixel Format 16 Var uint16_t Enumerated format of pixels; see Pixel Formats table
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 10
Table 4-8 (U) Pixel Formats
(U//FOUO)
Pixel Format Value Description
Y Only 0x0001 Luminance (Y’) only (Monochrome)
NV21 0x0002 YCrCb format for images using the NV21 encoding.
YUY2 0x0003 YCbCr format for images using YUYV (YUY2) encoding.
NV16 0x0004 YCbCr format, used for video.
YUV422 0x0005 Generic YCrCb with horizontal.
YUV420 0x0006 Sub-sampling of chrominance. Packing and bytes not defined.
Reserved 0x0007- 0x001F
Reserved for future specification.
RGBA 4444 0x0020 Two byte pixel: RGB color and alpha format, 4 bits per channel.
RGBA 8888 0x0021 Four byte pixel: RGB color and alpha format, 8 bits per channel.
RGBA 5551 0x0022 Two byte pixel: RGB color and alpha format, 5 bits per Red, Green, Blue channel, and a single 1-bit alpha.
RGBX 8888 0x0023 Four byte pixel: RGB color with Alpha format, with alpha channel ignored. 8 bits per color channel, 8 bits for alpha. Alpha should be set to 0xFF.
Reserved 0x0024- 0x002F
Reserved for future specification.
RGB 332 0x0030 One byte pixel: RGB color format with no alpha bits format. 3 bits for Red and Green channel, 2 bits for Blue channel
RGB 555 0x0031 Two byte pixel: RGB color without alpha bits format. 5 bits for Red and Blue channel, 6 bits for Green channel.
RGB 888 0x0032 Three byte pixel: RGB color without alpha bits format. 8 bits per color channel.
Reserved 0x0033- 0xFFFF
Reserved for future specification.
(U//FOUO)
4.2.4 (U) Maximum Frame Size Descriptor (U//FOUO) This descriptor defines parameters describing the maximum size of a JPEG frame.
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 11
Table 4-9 (U) Maximum Frame Size Descriptor
(U//FOUO)
Field Bits Value Type Description
Length 16 0x0004 uint16_t Length of this descriptor not including the common descriptor header
Descriptor ID 16 0x0803 uint16_t Maximum Frame Size
Frame Size 32 Var uint32_t Maximum JPEG frame size in bytes
(U//FOUO)
4.2.5 (U) RLE Format Descriptor (U//FOUO) This descriptor defines the run length encoding protocols supported by ARC4.
Table 4-10 (U) RLE Format Descriptor
(U//FOUO)
Field Bits Value Type Description
Length 16 0x0004 uint16_t Length of this descriptor not including the common descriptor header
Descriptor ID 16 0x0804 uint16_t RLE Format
Reserved 16 0x0000 uint16_t Reserved for future specification
RLE Version 16 Var uint16_t RLE version number
(U//FOUO)
Table 4-11 (U) RLE Version Numbers
(U//FOUO)
Pixel Format Value Description
RLE Version 1 0x0001 RLE version 1
Reserved 0x0002, 0x0004, 0x0008
Reserved for future specification
RLE Version 5 0x0010 RLE version 5
Reserved 0x0020 – 0x8000
Reserved for future specification
4.2.6 (U) Video Input Format Descriptor (U//FOUO) This descriptor defines the format of input video.
Table 4-12 (U) Video Input Format Descriptor
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 12
Field Bits Value Type Description
Length 16 0x000C uint16_t Length of this descriptor not including the common descriptor header
Descriptor ID 16 0x0880 uint16_t Video Input Format Raw
Minimum Rate 32 Var float_t Minimum supported frame rate in hertz
Maximum Rate 32 Var float_t Maximum supported frame rate in hertz
Supported Resolutions
16 Var uint16_t Bitmask of supported resolutions
Supported Formats 16 Var uint16_t Bitmask of supported formats
(U//FOUO)
Table 4-13 (U) Supported Video Input Resolutions Bitmask
(U//FOUO)
Pixel Format Value Description
RES_640x480 0x0001 640 x 480 resolution
Reserved 0x0002 – 0xFFFF
Reserved for future specification
(U//FOUO)
Table 4-14 (U) Supported Video Input Formats Bitmask
(U//FOUO)
Pixel Format Value Description
Format Y 0x0001 Luminance (Y) only (Monochrome)
RGB 332 0x0002 RGB 8-bit
RGB 565 0x0004 RGB 16-bit
RGB 888 0x0008 RGB 24-bit
Reserved 0x0010 – 0xFFFF
Reserved for future specification.
(U//FOUO)
4.2.7 (U) Video Protocol Descriptor (U//FOUO) This descriptor defines the protocol for packetizing video data into medium-specific packets.
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 13
Table 4-15 (U) Video Protocol Descriptor
(U//FOUO)
Field Bits Value Type Description
Length 16 0x0004 uint16_t Length of this descriptor not including the common descriptor header
Descriptor ID 16 0x0900 uint16_t Video Protocol
Protocol 16 Var uint16_t Enumerated video protocol type; see Video Protocol table for values
Reserved 16 0x0000 uint16_t Reserved for future specification
(U//FOUO)
Table 4-16 (U) Video Protocol
(U//FOUO)
Field Value Description
Reserved 0x0000 Reserved; do not use
FVTS 0x0001 Flexible Video Transport Stream (FVTS)
Reserved 0x0002 – 0xFFFF
Reserved for future specification
(U//FOUO)
4.2.8 (U) Video Instantaneous Field of View Descriptor (U//FOUO) This descriptor defines the special resolution of the video’s sensing imaging system.
Table 4-17 (U) Video Instantaneous Field of View Descriptor
(U//FOUO)
Field Bits Value Type Description
Length 16 0x0004 uint16_t Length of this descriptor not including the common descriptor header
Descriptor ID 16 0x0980 uint16_t Video Instantaneous Field of View
IFoV 32 Var float_t The instantaneous field of view of the video being transmitted
(U//FOUO)
4.2.9 (U) Video Principal Point Descriptor (U//FOUO) This descriptor defines the point from which the focal length of the lens is measured by video’s sensing imaging system. The principal point of a camera is the location of the intersection of the optical axis and the focal plane array.
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 14
Table 4-18 (U) Video Principal Point Descriptor
(U//FOUO)
Field Bits Value Type Description
Length 16 0x0004 uint16_t Length of this descriptor not including the common descriptor header
Descriptor ID 16 0x0A00 uint16_t Video Principal Point
Principal Point X 16 Var uint16_t A measured value of where the optical center of the image is located (which column) relative to the upper left pixel of the image being transmitted
Principal Point Y 16 Var uint16_t A measured value of where the optical center of the image is located (which row) relative to the upper left pixel of the image being transmitted
(U//FOUO)
4.2.10 (U) Video Lens Distortion Descriptor (U//FOUO) This descriptor defines parameters that account for lens distortion. The following parameter should coincide with a truncated Brown-Conrady lens distortion model commonly used by software libraries such as OpenCV, which is defined by the following equations describing a mapping of each pixel’s true coordinates (x, y) to its distorted coordinates (xd, yd).
𝑥𝑥𝑑𝑑 = 𝑥𝑥(1 + 𝑘𝑘1𝑟𝑟2 + 𝑘𝑘2𝑟𝑟4 + 𝑘𝑘3𝑟𝑟6) + 2𝑝𝑝1𝑥𝑥𝑥𝑥 + 𝑝𝑝2(𝑟𝑟2 + 2𝑥𝑥2) 𝑥𝑥𝑑𝑑 = 𝑥𝑥(1 + 𝑘𝑘1𝑟𝑟2 + 𝑘𝑘2𝑟𝑟4 + 𝑘𝑘3𝑟𝑟6) + 𝑝𝑝1(𝑟𝑟2 + 2𝑥𝑥2) + 2𝑝𝑝2𝑥𝑥𝑥𝑥
Table 4-19 (U) Video Lens Distortion Descriptor
Field Bits Value Type Description
Length 16 0x0014 uint16_t Length of this descriptor not including the common descriptor header
Descriptor ID 16 0x0A80 uint16_t Video Lens Distortion
Distortion Coefficient K1
32 Var float_t 1st radial distortion coefficient
Distortion Coefficient K2
32 Var float_t 2nd radial distortion coefficient
Distortion Coefficient P1
32 Var float_t 1st tangential distortion coefficient
Distortion Coefficient P2
32 Var float_t 2nd tangential distortion coefficient
Distortion Coefficient K3
32 Var float_t 3rd radial distortion coefficient
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 15
4.2.11 (U) Video Control Descriptor (U//FOUO) This descriptor defines various controls for video framing.
Table 4-20 (U) Video Control Descriptor
(U//FOUO)
Field Bits Value Type Description
Length 16 0x0004 uint16_t Length of this descriptor not including the common descriptor header
Descriptor ID 16 0x0B00 uint16_t Video Control
Control Bitmap 16 Var uint16_t Bitmap indicating various video controls:
Bit 0: 1 = Video-to-IMU sync timestamp appears at beginning of every frame
Bits 1 – 15: Reserved for future specification
Reserved 16 Var uint16_t Reserved for future specification
(U//FOUO)
4.2.12 (U) Image Sensor Type Descriptor (U//FOUO) This descriptor defines the type of image sensor that the video is captured on. If a system includes a single composite sensor made of multiple technologies, multiple image sensor type properties may be included. For systems with multiple discrete sensors, that are not used to make a composite image, there should be multiple distinct video services for each.
Table 4-21 (U) Image Sensor Type Descriptor
(U//FOUO)
Field Bits Value Type Description
Length 16 ≥0x0004 uint16_t Length of this descriptor not including the common descriptor header
Descriptor ID 16 0x0B01 uint16_t Image Sensor Type
Type 16 Var uint16_t Enumerated type of image sensor array described in Image Sensor Types Enumeration table.
Reserved 16 0x0000 uint16_t Reserved for future specification
Type Description 8×N Var uint8_t NULL terminated UTF-8 human readable string of the sensor type. This field is recommended but may be excluded (i.e. N = 0), if no string description is desired.
This field shall be padded with zeros such that the length (N) of the Type Description field is a multiple of 4 bytes.
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 16
Table 4-22 (U) Image Sensor Types Enumeration
(U//FOUO)
Field Value Type Description Sensor Type Description
Unknown 0x0000 “UNKNOWN” The sensor type is unknown.
Other 0x0001 See Note. See Note.
Computer 0x0002 “COMPUTER” The image was computer generated via Augmented Reality (AR), Mixed Reality, animation, or other.
CCD 0x0003 “CCD” Charge-coupled device sensor
CMOS 0x0004 “CMOS” Complementary MOS (CMOS) Active-Pixel Sensor
(APS)
I2CMOS 0x0005 “I2CMOS” Image Intensifier CMOS
EBAPS 0x0006 “EBAPS” Electron Bombarded Active Pixel Sensor
INGAAS 0x0007 “InGaAs” Indium Gallium Arsenide FPA sensor
INSB 0x0008 “InSb” Indium Antimonide FPA sensor
VOX 0x0009 “VOx” Vanadium Oxide PFA sensor
ALPD 0x000A “ALPD” Asynchronous laser pulse detect
TOF 0x000B “TOF” Time of flight sensor
SLM 0x000C “SLM” Spatial Light Modulated
Reserved 0x000D-
0XFFFF
N/A Reserved for future use.
(U//FOUO)
(U//FOUO) Note: SENSOR_TYPE_OTHER shall only be used in the absence of an enumerated sensor type listed here and no similar sensor technologies. If SENSOR_TYPE_OTHER is used, it shall include a human readable sensor description.
4.2.13 (U) Image Sensor Waveband Descriptor (U//FOUO) This descriptor defines the wavebands the image sensor is sensitive to. This allows a remote device to identify the waveband(s) the video sensor detects. Sensors may have single, broad, dual, or multi-band capability. For each of these, multiple image sensor waveband descriptors may be added for each waveband. For example, a device could be sensitive to thermal long-wave infrared and visible sensor. For example, near infrared and visible, would include two image sensor waveband descriptors, one for each waveband.
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 17
Table 4-23 (U) Image Sensor Waveband Descriptor
(U//FOUO)
Field Bits Value Type Description
Length 16 ≥0x0004 uint16_t Length of this descriptor not including the common descriptor header
Descriptor ID 16 0x0B02 uint16_t Image Sensor Waveband
Type 16 Var uint16_t Enumerated type of imaging sensor waveband described in Image Sensor Waveband Enumeration table.
Reserved 16 0x0000 uint16_t Reserved for future specification
Sensor Type Description
8×N Var uint8_t NULL terminated UTF-8 human readable string of the sensor type. This field is recommended but may be excluded (i.e. N = 0), if no string description is desired.
This field shall be padded with zeros such that the length (N) of the Type Description field is a multiple of 4 bytes.
(U//FOUO)
Table 4-24 (U) Image Sensor Waveband Enumeration
(U//FOUO)
Field Value Sensor Type Description
Unknown 0x0000 The sensor waveband is unknown
Other 0x0001 See Note.
XRAY 0x0002 X-Ray
UV 0x0003 Ultraviolet
Visible 0x0004 Visible light
Near Infrared 0x0005 Near Infrared
Short Wave Infrared 0x0006 Short Wave Infrared
Medium Wave Infrared 0x0007 Medium Wave Infrared
Long Wave Infrared 0x0008 Long Wave Infrared
Reserved 0x0009- 0xFFFF
Reserved
(U//FOUO)
(U//FOUO) Note: If SENSOR_WAVEBAND_OTHER is used, it shall include a human readable string description for the sensor type.
4.2.14 (U) Video Intrinsic Parameters Descriptor (U//FOUO) This descriptor defines video intrinsic camera parameters.
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 18
Table 4-25 (U) Video Intrinsic Parameters Descriptor
(U//FOUO)
Field Bits Value Type Description
Length 16 0x0014 uint16_t Length of this descriptor not including the common descriptor header
Descriptor ID 16 0x0B80 uint16_t Video Intrinsic Parameters
Focal Length X 32 Var float_t Distance between the image sensor and the camera lens, in units of pixels
Focal Length Y 32 Var float_t Distance between the image sensor and the camera lens, in units of pixels
Principal Point X 32 Var float_t Location of the intersection of the optical axis and the focal plane array; location, in units of pixels, of the optical center measured along the columns of the image relative to the left-most pixel
Principal Point Y 32 Var float_t Location of the intersection of the optical axis and the focal plane array; location, in units of pixels, of the optical center measured along the rows of the image relative to the left-most pixel
Skew 32 Var float_t Misalignment between the sensor plane and the image plane, in units of pixels; optional; if not present, set to 0.0
(U//FOUO)
4.2.15 (U) Video Frame Rate Descriptor (U//FOUO) This descriptor defines the video frame rate.
Table 4-26 (U) Video Frame Rate Descriptor
(U//FOUO)
Field Bits Value Type Description
Length 16 0x0004 uint16_t Length of this descriptor not including the common descriptor header
Descriptor ID 16 0x0B90 uint16_t Video Frame Rate
Frame Rate 32 Var float_t Frame rate in hertz.
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 19
4.3 (U) Audio Property Descriptors (U//FOUO) The following table defines audio property descriptor IDs.
Table 4-27 (U) Audio Property Descriptor ID Values
(U//FOUO)
Value Type Description
0x0C00 – 0x0FFF
RESERVED Values reserved for future specification.
(U//FOUO)
(U//FOUO) No audio descriptors have been defined.
4.4 (U) Position Property Descriptors (U//FOUO) The following table defines position property descriptor IDs.
Table 4-28 (U) Position Property Descriptor ID Values
(U//FOUO)
Value Type Description
0x1000 POSITION
DEVICE CLASS
Class of Position device.
0x1001 – 0x13FF
RESERVED Values reserved for future specification.
(U//FOUO)
4.4.1 (U) Position Device Class Descriptor (U//FOUO) This descriptor defines a class of position device. A node may advertise multiple classes of device.
Table 4-29 (U) Position Device Class Descriptor
(U//FOUO)
Field Bits Value Type Description
Length 16 0x0004 uint16_t Length of this descriptor not including the common descriptor header
Descriptor ID 16 0x1000 uint16_t Position Device Class
Class 16 Var uint16_t Enumerated class of position device described in Position Device Class Enumeration table.
Reserved 16 0x0000 uint16_t Reserved for future specification
(U//FOUO)
Table 4-30 (U) Position Device Class Enumeration
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 20
Field Value Device Class Description
Unknown 0x0000 The sensor waveband is unknown
GSSIP RCVR 0x0001 GSSIP Receiver
GSSIP INTER 0x0002 GSSIP Intelligent Terminal
Reserved 0x0003- 0xFFFF
Reserved
4.5 (U) Environment Property Descriptors (U//FOUO) The following table defines environment property descriptor IDs.
Table 4-31 (U) Environment Property Descriptor ID Values
(U//FOUO)
Value Type Description
0x1400 – 0x17FF
RESERVED Values reserved for future specification.
(U//FOUO)
(U//FOUO) No environment descriptors have been defined.
4.6 (U) Health Property Descriptors (U//FOUO) The following table defines health property descriptor IDs.
Table 4-32 (U) Health Property Descriptor ID Values
(U//FOUO)
Value Type Description
0x1800 – 0x1BFF
RESERVED Values reserved for future specification.
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 21
4.7 (U) User Interface (UI) Property Descriptors (U//FOUO) The following table defines UI property descriptor IDs.
Table 4-33 (U) UI Property Descriptor ID Values
(U//FOUO)
Value Type Description
0x1C00 UI_MOTION Descriptor representing a user interface motion input (e.g. mouse, trackball, pointer, etc.)
0x1C01 UI_BUTTONS Descriptor representing a set of user interface buttons (e.g. keyboard, keypad, button bar, etc.)
0x1C02 – 0x1FFF
RESERVED Values reserved for future specification.
(U//FOUO)
(U//FOUO) Simple UI child descriptors may represent either motion values or button (key) states. Each descriptor represents all or part of an expression of a single input. An input with multiple expressions (e.g. a mouse with both motion and buttons) will require multiple descriptors. The combination of all expressions of a single input are collectively referred to as that input’s “terminal”.
(U//FOUO) NOTE: While a possible reference system is described in this section, it is neither mandatory nor complete. Implementers are encouraged to utilize the reference system that is most appropriate to the service.
(U//FOUO) It remains the responsibility of the service subscriber to understand the reference system in use by the service provider.
(U//FOUO) The suggested reference system for this document exists within, and is defined by, ordinary 3-dimensional space, with six degrees of freedom: translation along and rotation around three orthogonal axes. All motion is considered in terms of a moving reference point (the cursor) within a reference volume defined by these axes, and is represented by a vector with three components, ‘X’, ‘Y’, and ‘Z’.
(U//FOUO) The axes of an input terminal should be understood to generally follow the right-hand rule, from the perspective of the user providing the input. In this model, the user’s thumb lies along the ‘X’ axis, the user’s index finger lies along the ‘Y’ axis, and the user’s middle finger lies along the ‘Z’ axis.
(U//FOUO) For translational motion, the volume, axes, and coordinate system are defined by a reference surface. This surface should be chosen to be appropriate for the input terminal. For screen-based input, the screen typically acts as the reference surface; for virtual or physical tabletop volumes, the tabletop can be the reference surface; for a Virtual Reality or Augmented Reality system, the ground or floor beneath the user’s feet may be used.
(U//FOUO) In any case, the axes can be understood by imagining the user placing the back of his right hand on the reference surface with thumb, index finger, and middle finger pointing in orthogonal directions (with otherwise minimal physical contortion). The imaginary thumb points in the positive ‘X’ direction, the imaginary index finger points in the positive ‘Y’ direction, and the imaginary middle finger points in the positive ‘Z’ direction. For typical device screen use, this yields ‘X’ as “to the right”, ‘Y’ as “up”, and ‘Z’ as “towards the user”. For tabletop use, this yields ‘X’ as “to the right”, ‘Y’ as “away from the user”, and ‘Z’ as “up from the table”.
(U//FOUO) For rotational motion, the reference axes are chosen similarly, by imagining the user holding his hand in the same configuration as before, but this time with his arm held straight out to the right. In this position, his index finger will be pointing to his right and his thumb pointing in the same direction he
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 22 is facing. The axes are labeled the same as with translation: thumb as ‘X’, index finger as ‘Y’, and middle finger as ‘Z’. This yields roll as rotation around the X axis (thumb), pitch as rotation around the Y axis (index finger), and yaw as rotation around the Z axis (middle finger). In this reference, a positive X motion represents a roll to the right (i.e. clockwise from the user’s point of view), a positive Y motion is pitch up, and a positive Z motion is a yaw to the right.
4.7.1 (U) Simple UI Motion (U//FOUO) This descriptor allows a service to express user input of motion in a virtual space. Motion may be translation (e.g. mouse movement, volume slider), or rotation (e.g. knob turn, head rotation).
Motion may be absolute (i.e. “move to (x,y,z)”) relative (i.e. “move by (Δx, Δy, Δz)”), or as a speed vector (i.e. now moving at (x,y,z) units per sec). All translational motion is described in terms of a reference volume whose bounds are defined by values in the descriptor. The units of the bounds are undefined.
(U//FOUO) Each UI motion element is represented by a “terminal” (e.g. a mouse pointer might be terminal ‘0’, while a volume knob might be terminal ‘2’). Each terminal must be represented by an instance of a Simple UI Motion descriptor. Each terminal can only be either translational or rotational.
UI elements that require both types of motion must be represented by more than one terminal.
Table 4-34 (U) Simple UI Motion Descriptor
(U//FOUO)
Field Bits Value Type Description
Length 16 0x0010 uint16_t Length of this descriptor not including the common descriptor header
Descriptor ID 16 0x1C00 uint16_t UI Motion Input
Terminal ID 8 Var uint8_t Identifier for the terminal this motion expresses
Type 8 Var uint8_t Type of motion; 0 = translation, 1 = rotation
Flags 16 Var uint16_t Options controlling behavior:
Bit 0: Updates use standard format
Bit 1: Wrap at edges
All other values reserved for future specification
Xmin 16 Var int16_t Minimum X value
Xmax 16 Var int16_t Maximum X value
Ymin 16 Var int16_t Minimum Y value
Ymax 16 Var int16_t Maximum Y value
Zmin 16 Var int16_t Minimum Z value
Zmax 16 Var int16_t Maximum Z value
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 23
(U) Standard Format
(U//FOUO) The standard format for motion updates is described below. This format is not required for Simple UI services, unless the “Standard Format” flag is set in the motion descriptor.
Table 4-35 (U) Simple Motion Update Vector
(U//FOUO)
Field Bits Value Type Description
Terminal ID 8 Var uint8_t Identifier for the terminal this motion expresses
Mode 8 Var uint8_t Mode of motion:
0x00 = vector is explicit new value
0x01 = vector represents a change in value
0x02 = vector represents a new speed
X 16 Var int16_t For translational terminals: Value, change, or speed along the X axis.
For rotational terminals: Value, change, or speed around the X axis.
Y 16 Var int16_t For translational terminals: Value, change, or speed along the X axis.
For rotational terminals: Value, change, or speed around the X axis.
Z 16 Var int16_t For translational terminals: Value, change, or speed along the X axis.
For rotational terminals: Value, change, or speed around the X axis.
(U//FOUO)
4.7.2 (U) Simple UI Buttons (U//FOUO) This descriptor allows a service to express user input of button events. Each button descriptor has a set of capabilities that determine what states its buttons can represent and what events it can express.
Buttons may be physical switches, keyboard keys, virtual objects, or any other object that has two (or possibly more) states, activated by a user. For the purposes of this specification, a button “state” is a description of the physical or virtual position, mode, or setting of a button. An “event” is an action or option triggered by a change in button state, timer expiry, or other user or external input.
(U//FOUO) Each aggregate UI button element is represented by a “terminal” and must provide an instance of the following descriptor. The grouping of buttons within a terminal and terminals within a service is left to the discretion of the implementer but should follow an organization that reflects the physical input device(s). For example, a system that provides both mouse and paddle input could provide a separate terminal for each, where each represents multiple physical buttons.
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 24
Table 4-36 (U) Simple UI Button Descriptor
(U//FOUO)
Field Bits Value Type Description
Length 16 0x0004 uint16_t Length of this descriptor not including the common descriptor header
Descriptor ID 16 0x1C01 uint16_t UI Button Input
Terminal ID 8 Var uint8_t Identifier for the terminal this input represents
Capabilities 8 Var uint8_t Button event capabilities of this terminal:
0x01 – Terminal uses standard format for updates.
0x02 – Terminal supports “press” event
0x04 – Terminal supports “release” event0x08 – Terminal supports “hold” event
0x10 – Terminal supports “double-press” event
0x20 – Terminal supports “short tap” event
0x40 – Terminal supports higher states and state transition events (see STATE(N) events in the Button States table)
0x80 – Extended event support; terminal supports additional events not directly represented by this field. If this bit is set, the service provider must include an “Extended Event Map” update type.
Button Count 8 Var uint8_t Number of buttons in the terminal (buttons will be numbered from zero to one less than this value)
State Count 8 Var uint8_t Number of states per button. (Typically, only two states) Value of 0 means “ignore this field”.
(U//FOUO)
(U) Button States
(U//FOUO) All buttons must have at least two states: “pressed”, which represents an active state, and “released”, which represents an inactive state. Because other input objects may be represented as buttons for the purposes of this specification, these states, though named for common button semantics, may apply differently for other inputs. Despite this physical difference, operation should follow as closely as is reasonable for the object. For example, a dip switch might be considered “pressed” while in the “on” position and “released” while in the “off” position. Buttons may have more states if desired by the implementer (e.g. “armed” or “deep press” or similar). When a button state changes (e.g. the button is pressed or released), the service provider may emit an event describing the state change (one of PRESS, RELEASE, or STATE(N) from the table below).
(U//FOUO) Services MAY provide higher alternate states for buttons. If supported, the service should provide ample additional documentation about those states, requirements for use and selected values.
Service subscribers should attempt to fully interpret and understand the service provider’s use of alternate states.
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 25
(U//FOUO) Services should only define higher states if needed to fundamentally represent the physical or virtual position or setting of a button (e.g. a 3-position switch). Services should not define higher states to indicate actions, timing, or any external conditions (events should be used for those cases).
(U//FOUO) Service subscribers may ignore service providers that provide states not understood by the service subscriber or may engage partially with service providers that provide states not understood by the service subscriber, by selectively ignoring STATE (N) events.
Table 4-37 (U) Button States
(U//FOUO)
State Value Description
PRESSED 0x00 The button is in a PRESSED state.
RELEASED 0x01 The button is in a RELEASED state.
STATE(N) 0x02- 0x0F
ICDs or vendors may define custom states in this range.
WARNING: Usage of higher states is inherently not interoperable unless defined by a commonly supported ICD.
(U//FOUO)
(U) Button Events
(U//FOUO) User input is communicated to a service subscriber primarily with events, where each event describes a trigger that may be acted upon by the service subscriber. Events may be emitted when one or more buttons change state (e.g. a PRESS event), when a timing constraint has been exceeded (e.g. a HOLD event when a button has been in a pressed state for a sufficiently long time), or from some other user interaction (e.g. vendor events).
(U//FOUO) Note that an “event” represents an action, timeout, or condition of the system, and is a distinct concept from “state”, which represents a physical or virtual position or attribute of a button.
(U//FOUO) Services MAY define additional events in the vendor range while still maintaining the standard format. User interactions that cannot be represented by the state and event model described here MAY use any desired data format but MUST clear the “standard format” bit in the capabilities of the button descriptor. Usage of extensions within the standard format, or abandonment of the standard format will limit interoperability.
(U//FOUO) Services are not required to support or emit all defined event types. For example, a service with a button that simply triggers an operation may choose to send a PRESS event on button press, but not send RELEASE events at all. Similarly, a service may choose to send HOLD events without associated PRESS events. Services must not, however, send event types that have not been advertised in the descriptor’s capability field or in an “Extended Event Map” update.
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 26
Table 4-38 (U) Button Events
(U//FOUO)
Event Value Trigger Description
PRESS 0x00 State or State and time
Marks the transition of a button from previous state to the PRESSED state or the result of a press/release transition that should be considered a basic button press.
RELEASE 0x01 State Marks the transition of a button from previous state to the RELEASED state.
A service MAY choose to not emit RELEASE events.
HOLD 0x02 Time Marks that a button has been in the PRESSED state for enough time to be considered held. All parameters for a HOLD event (e.g.
length of time required) are left to ICD or implementer discretion.
A service implementation MAY emit a HOLD event without an associated PRESS or RELEASE event. Receivers MUST be prepared to handle HOLD and other time-based events without the presence of state-based events.
DOUBLE-
PRESS
0x03 State and time
Marks that a button has entered the PRESSED state twice in a short period of time. All parameters for a DOUBLE-PRESS event (e.g.
interval time) are left to ICD or implementer discretion.
SHORT TAP 0x04 State and time
Marks the transition of a button from previous state to the TAPPED state or the result of a press/release transition that is considered a button tap. May also be called “quick tap” or “quick press”.
LONG
HOLD
0x05 Time Marks that a button has been held in the PRESSED state for enough time to be considered a longer-than HOLD period.
Reserved 0x06 – 0x0F
Reserved for future specification.
BITMAP 0x10 State, time, other
Marks the combined base states of all buttons in the terminal with a bitmap. This event type may be sent periodically or as the result of a query, or in response to a state change.
Reserved 0x11 Reserved for future specification.
STATE(N) 0x10+N, N>1, N<16
State Marks the transition of a button from previous state to state N.
Terminals that provide alternative higher button states must support this event type to allow higher states to be useful. This event must not be used for transitions to the PRESSED (0) or RELEASED (1) states.
VENDOR 0x80 – 0xFF
Vendor-defined
Vendors or implementers may define custom events in this range, but interoperability is not guaranteed.
(U//FOUO)
(U) Button Timing
(U//FOUO) While some events are time based (i.e. press/release within a small threshold time for a quick tap, buttons pressed for more than a threshold time for a hold, etc.), this specification does not define or
UNCLASSIFIED//FOR OFFICIAL USE ONLY Page 27 limit the timing that determines those operations. Timing and other thresholds may be defined by ICDs or left to vendor implementation.
(U//FOUO) In general, time-related operations are defined, measured, and emitted by the service provider. A very simple UI service may, however, elect to only send press and release events (i.e. the capabilities field of the descriptor does not have set bits for HOLD, DOUBLE-PRESS, or EVENT(N) events). In this case, the receiver bears the responsibility for measuring timing between a PRESS event and its related RELEASE event to determine if the user is executing a hold operation or other time-based operation.
(U) Standard Format
(U//FOUO) The “standard format” for UI operation is to send SolNet data messages whose payload is one or more of the button update blocks as described below. These formats are not required for Simple UI services unless the “Standard Format” capability is set in the button descriptor.
This is the start of the file's text. The full file is on GovTribe.
File details come from the government source that posted it. Updated .