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
Issued by
Department of the Army Materiel Command Army Contracting Command Aberdeen Proving Ground

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

Other files attached to Family of Weapon Sight – Individual (FWS-I) Full Rate Production, newest first.
File Type Posted
W91CRB21R0012 Amendment 7.pdf PDF
W91CRB21R0012 Amendment 6.pdf PDF
Attachment 30 FWS-I Q and A Tracker - 23 Feb 2021.xlsx XLSX spreadsheet
W91CRB21R0012 Amendment 5.pdf PDF
Attachment 30 FWS-I Q and A Tracker Revd (17 Feb 2021)v2.xlsx XLSX spreadsheet
W91CRB-21-R-0012 Solicitation Amendment 4.pdf PDF
Attachment 01 FWS-I Performance Specification FRP-PRF-FWSI (2 FEB 2021).docx DOCX document
Attachment 30 FWS-I Q and A Tracker 5 FEB 2021.xlsx XLSX spreadsheet
Exhibit A FWS-I CDRL (2 FEB 2021).pdf PDF
Attachment 23 FWS-I TEP (29 JAN 2021).XLSX XLSX spreadsheet
W91CRB-21-R-0012 Solicitation Amendment 3 (8 FEB 2021).pdf PDF
Attachment 28 COMPASS.pdf PDF
W91CRB21R0012 AMENDMENT 0002.pdf PDF
Attachment 04 I- MILES IWS 2 Performance Specification PRF-PT-00543 Rev B.pdf PDF
Attachment 06 Mount Asssembly Drawing A3301511 Rev B.pdf PDF
Attachment 09 ISW_SolNet_Protocol_FinalDraft.pdf PDF
Attachment 14 FWS-I TK105AG COMPONENT LIST.PDF PDF
Attachment 16 NVThemIP Modeling Guidance.pdf PDF
Attachment 17 NVImageJ Instructions.pdf PDF
Attachment 18 Request Instruction.docx DOCX document
Attachment 24 TM 11-5855-343-10-Operator_2020-7-01.pdf PDF
Attachment 25 Past Performance Questionaire from SSP.docx DOCX document
Attachment 29 FWS-I QASP.docx DOCX document
Attachment 11 DD Form 254.pdf PDF
Attachment 30 FWS-I Q and A Tracker.XLSX XLSX spreadsheet
Attachment 28 COMPASS Request Instruction.docx DOCX document
Exhibit A FWS-I CDRLs.pdf PDF
Attachment 26 Small Arms Tool Kit LIN W51910.pdf PDF
Solicitation W91CRB-21-R-0012 FWS-I (Amendment 1).pdf PDF
Solicitation W91CRB-21-R-0012 FWS-I.pdf PDF
Attachment 05 Manworn HALO Assembly Drawing 184100 Rev C.pdf PDF
Attachment 07 M16A1 A2 M4 Bracket Assembly Drawing A3170580 Rev B.pdf PDF
Attachment 10 FWS-I SCG 25 APRIL 2018.pdf PDF
Attachment 13 FWS-I Failure Definition and Scoring Criteria (FDSC) 24 May 2013.docx DOCX document
Attachment 15 draft M_TMDE Technical Manual (1).docx DOCX document
Attachment 19 LSAR MIL-STD-1388-2B.PDF PDF
Attachment 20 DD1494_PreparationGuide.pdf PDF
Attachment 22 Scheduled Government Furnished Property-VERSION1.4_distributed_.pdf PDF
Attachment 27 ASSET and eHTS Request Instruction.docx DOCX document
Attachment 01 FWS-I Performance Specification FRP-PRF-FWSI 09 Nov 2020.docx DOCX document
Attachment 21 Requisitioned Government Furnished Property-VERSION1.3_distributed_0005.pdf PDF
Attachment 23 FWS-I TEP.xlsx XLSX spreadsheet
Exhibit B DID DOCUMENT.PDF PDF
Attachment 26 Small Arms Tool Kit LIN W51910.pdf PDF
Solicitation W91CRB-21-R-0012 FWS-I.pdf PDF
Attachment 18 Request Instruction.docx DOCX document
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 .