Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Related Jira Issues

Jira Legacy
serverSystem JIRA
serverIde71e36b8-1c31-3d38-9c43-0d513e8b44c9
keyFNSDKEXT-56

1. Software Development Kit

ID

Name

Description

1.1

SDK Libraries

The FN VictoR SDK shall provide developers with a series of stand-alone software library libraries that supports enable the creation of applications that interact with the FN VictoR device.

2. Communications

ID

Name

Description

2.1

BLE Communications Interface

The FN VictoR SDK shall provide developers with a common cross-platform interface that facilitates communications with an FN VictoR device over a Bluetooth Low Energy (BLE) connection.

2.2

BLE Scan

The BLE Communications Interface shall support scanning and identification of nearby FN VictoR device radios.

2.3

BLE Scanned Devices

The BLE Communications Interface shall provide the ability to query for a list of scanned FN VictoR devices.

2.4

BLE Connection

The BLE Communications Interface shall provide the ability to connect to any FN VictoR device in its scanned devices list.

2.5

BLE Connected Devices

The BLE Communications Interface shall provide the ability to query for a list of connected FN VictoR devices.

2.6

BLE Disconnection

The BLE Communications Interface shall provide the ability to disconnect from any FN VictoR device in its connected devices list.

2.7

BLE Reconnection

The BLE Communications Interface shall attempt to reconnect to any FN VictoR device in its connected devices list if the connection to that device is lost.

2.8

Read BLE GATT Characteristic

The BLE Communications Interface shall provide the ability to read from GATT Characteristics of the Device Information, Device Configuration, and Object Transfer GATT Services within an FN VictoR device.

2.9

Write BLE GATT Characteristic

The BLE Communications Interface shall provide the ability to write to GATT Characteristics of the Device Information, Device Configuration, and Object Transfer GATT Services within an FN VictoR device.

2.10

Subscribe to BLE GATT Characteristic Notify

The BLE Communications Interface shall provide the ability to subscribe to notifications from supported GATT Characteristics of the Device Information, Device Configuration, and Object Transfer GATT Services within an FN VictoR device.

2.11

Subscribe to BLE GATT Characteristic Indicate

The BLE Communications Interface shall provide the ability to subscribe to indications from supported GATT Characteristics of the Device Information, Device Configuration, and Object Transfer GATT Services within an FN VictoR device.

2.12

Acknowledge BLE GATT Characteristic Indicate

The BLE Communications Interface shall provide the ability to acknowledge received indications from supported GATT Characteristics of the Device Information, Device Configuration, and Object Transfer GATT Services within an FN VictoR device.

2.13

USB Communications Interface

The FN VictoR SDK shall provide developers with a common cross-platform interface that facilitates communications with an FN VictoR device over a Universal Serial Bus (USB) connection.

2.14

USB Connected Devices

The USB Communications Interface shall provide the ability to query for a list of connected FN VictoR devices.

2.15

Read USB Characteristic Equivalent

The USB Communications Interface shall provide the ability to read from the USB-equivalent characteristic data structures of the Device Information, Device Configuration, and Object Transfer USB-equivalent service interfaces within an FN VictoR device.

2.16

Write USB Characteristic Equivalent

The USB Communications Interface shall provide the ability to write to the USB-equivalent characteristic data structures of the Device Information, Device Configuration, and Object Transfer USB-equivalent service interfaces within an FN VictoR device.

2.17

Single Device Support

The FN VictoR SDK shall support either BLE or USB communications to a single device, depending on which communications mode the device is currently configured to use.

2.18

Multi-device Support

The FN VictoR SDK may support simultaneous BLE and/or USB communications with multiple FN VictoR devices.

3. Platform / OS

ID

Name

Description

3.1

Windows BLE

The FN VictoR SDK shall support BLE communications to an FN VictoR device for Windows OS application development.

3.2

Windows USB

The FN VictoR SDK shall support USB communications to an FN VictoR device for Windows OS application development.

3.3

Android BLE

The FN VictoR SDK shall support BLE communications to an FN VictoR device for Android OS application development.

3.4

Android USB

The FN VictoR SDK shall support USB communications to an FN VictoR device for Android OS application development.

3.5

Windows Version Target

The FN VictoR SDK shall support development for applications targeting Windows 10.

3.6

Android Version Target

The FN VictoR SDK shall support development for applications targeting Android 10.

4. Device Information Service

ID

Name

Description

4.1

Device Information Service

The FN VictoR SDK shall provide developers with a multi-platform, multi-protocol Device Information Service that allows for reading and writing of device information characteristics to and from the Device Information Service within an FN Victor device over a common interface.

4.2

Read Bluetooth Device ID

The Device Information Service shall provide the ability to read the Bluetooth device identifier of an FN VictoR device.

4.3

Read USB Device ID

The Device Information Service shall provide the ability to read the USB device identifier of an FN VictoR device.

4.4

Read Firmware Version

The Device Information Service shall provide the ability to read the firmware version of an FN VictoR device.

4.5

Read BLE Protocol Version

The Device Information Service shall provide the ability to read the highest version of the BLE protocol supported by an FN VictoR device.

4.6

Read USB Protocol Version

The Device Information Service shall provide the ability to read the highest version of the USB protocol supported by an FN VictoR device.

4.7

Read Trigger Detection Algorithm Version

The Device Information Service shall provide the ability to read the highest supported version of the trigger detection algorithm supported by an FN VictoR device.

4.8

Read Trained Neural Network Model File

The Device Information Service shall provide the ability to read the name of the trained TensorFlow Neural Network model file that is currently loaded in an FN VictoR device.

4.9

Read Next Shot ID

The Device Information Service shall provide the ability to read the ID of the next shot to be used by an FN VictoR device.

4.10

Read Current Battery Level

The Device Information Service shall provide the ability to read the current battery voltage percentage of an FN VictoR device.

4.11

Notify Current Battery Level

The Device Information Service shall provide the ability to receive current battery voltage percentage notifications from an FN VictoR device.

4.12

Read Last Holster Draw Timestamp

The Device Information Service shall provide the ability to read the last holster draw timestamp from an FN VictoR device.

4.13

Read Last Holster Draw Total Draw Time

The Device Information Service shall provide the ability to read the last holster draw total draw time from an FN VictoR device.

4.14

Notify Last Holster Draw Information

The Device Information Service shall provide the ability to receive last holster draw information notifications (timestamp and total draw time fields) from an FN VictoR device.

4.15

Read RAM Utilization

The Device Information Service shall provide the ability to read the percentage of volatile memory (RAM) currently in use by an FN VictoR device.

4.16

Read eMMC Utilization

The Device Information Service shall provide the ability to read the percentage of non-volatile memory (eMMC) already used by an FN VictoR device.

4.17

Read CPU Utilization

The Device Information Service shall provide the ability to read the utilization percentage of all four CPU cores in an FN VictoR device.

5. Device Configuration Service

ID

Name

Description

5.1

Device Configuration Service

The FN VictoR SDK shall provide developers with a multi-platform, multi-protocol Device Configuration Service that allows for reading and writing of device configuration parameters to and from an FN Victor device over a common interface.

5.2

Read Optical Path Video Parameter

The Device Configuration Service shall provide the ability to get the optical path video parameter from an FN VictoR device as a value indicating short-range, long-range, or auto-range.

5.3

Write Optical Path Video Parameter

The Device Configuration Service shall provide the ability to set the optical path video parameter (optical path field) of an FN VictoR device to a value indicating short-range, long-range, or auto-range.

5.4

Read Bluetooth Link General System Parameter

The Device Configuration Service shall provide the ability to get the Bluetooth link general system parameter from an FN VictoR device as a value indicating disabled or enabled.

5.5

Write Bluetooth Link General System Parameter

The Device Configuration Service shall provide the ability to set the Bluetooth link general system parameter of an FN VictoR device to a value indicating disable or enable.

5.6

Read System LED General System Parameter

The Device Configuration Service shall provide the ability to get the system LED general system parameter from an FN VictoR device as a value indicating disabled or enabled.

5.7

Write System LED General System Parameter

The Device Configuration Service shall provide the ability to set the system LED general system parameter of an FN VictoR device to a value indicating disable or enable.

5.8

Read Buzzer General System Parameter

The Device Configuration Service shall provide the ability to get the buzzer general system parameter from an FN VictoR device as as a value indicating disabled or enabled.

5.9

Write Buzzer General System Parameter

The Device Configuration Service shall provide the ability to set the buzzer general system parameter of an FN VictoR device to a value indicating disable or enable.

5.10

Read System Time

The Device Configuration Service shall provide the ability to get the system time from an FN VictoR device as a Unix Epoch formatted timestamp.

5.11

Write System Time

The Device Configuration Service shall provide the ability to set the system time of an FN VictoR device to a Unix Epoch formatted timestamp.

5.12

Read VictoR Mounting Orientation Training Parameter

The Device Configuration Service shall provide the ability to get the Picatinny rail mounting position from an FN VictoR device as a value indicating a position defined with respect to the muzzle of either above (12 o’clock), below (6 o’clock), left (9 o’clock), or right (3 o’clock).

5.13

Write VictoR Mounting Orientation Training Parameter

The Device Configuration Service shall provide the ability to set the Picatinny rail mounting position of an FN VictoR device to a value indicating a position defined with respect to the muzzle of either above (12 o’clock), below (6 o’clock), left (9 o’clock), or right (3 o’clock).

5.14

Read Aimpoint Offsets Training Parameter

The Device Configuration Service shall provide the ability to get the aimpoint offsets training parameter from an FN VictoR device as a column offset +/- the maximum image width and a row offset +/- the maximum image height.

5.15

Write Aimpoint Offsets Training Parameter

The Device Configuration Service shall provide the ability to set the aimpoint offsets training parameter of an FN VictoR device to a column offset +/- the maximum image width and a row offset +/- the maximum image height.

5.16

Read Shot Rejection Angle Training Parameter

The Device Configuration Service shall provide the ability to get the shot rejection angle training parameter from an FN VictoR device as an angle between 0 and 90 degrees.

5.17

Write Shot Rejection Angle Training Parameter

The Device Configuration Service shall provide the ability to set the shot rejection angle training parameter of an FN VictoR device to an angle between 0 and 90 degrees.

5.18

Read System Power Command

The Device Configuration Service shall provide the ability to get whether the last system power command sent to an FN VictoR device was to power off or to reboot system.

5.19

Write System Power Command

The Device Configuration Service shall provide the ability to send a system power command to an FN VictoR device indicating it should power off or reboot system.

5.20

Read Vision System Command

The Device Configuration Service shall provide the ability to get whether the last vision system command sent to an FN VictoR device was a “target recognition system control” command or a “get a shot clip” command.

5.21

Write Vision System Command

The Device Configuration Service shall provide the ability to send a vision system command to an FN VictoR device as either a “target recognition system control” command or a “get a shot clip” command.

5.22

Read Target Recognition System Control Vision System Command Data

The Device Configuration Service shall provide the ability to get the last vision system command data sent to an FN VictoR device as either a value indicating “interface engine control stop” or “interface engine control start” if the command was a “target recognition system control” command.

5.23

Read Shot Clip Vision System Command Data

The Device Configuration Service shall provide the ability to get the last vision system command data sent to an FN VictoR device as a value indicating the shot identifier if the command was a “get a shot clip” command.

5.24

Write Target Recognition System Vision System Command Data

The Device Configuration Service shall provide the ability to set the vision system command data sent to an FN VictoR device as either a value indicating “interface engine control stop” or “interface engine control start” if the command was a “target recognition system control” command.

5.25

Write Shot Clip Vision System Command Data

The Device Configuration Service shall provide the ability to set the vision system command data sent to an FN VictoR device as a value indicating the shot identifier if the command was a “get a shot clip” command.

5.26

Read Trigger Threshold Value Trigger Detection Parameter

The Device Configuration Service shall provide the ability to get the trigger threshold value trigger detection parameter from an FN VictoR device as a value between 0 and Tmax.

5.27

Write Trigger Threshold Value Trigger Detection Parameter

The Device Configuration Service shall provide the ability to set the trigger threshold value trigger detection parameter of an FN VictoR device to a value between 0 and Tmax.

5.28

Read Maximum Trigger Threshold Value Trigger Detection Parameter

The Device Configuration Service shall provide the ability to get the maximum trigger threshold value (Tmax) trigger detection parameter from an FN VictoR device as a value between 0 and 65535.

5.29

Write Maximum Trigger Threshold Value Trigger Detection Parameter

The Device Configuration Service shall provide the ability to set the maximum trigger threshold value (Tmax) trigger detection parameter of an FN VictoR device to a value between 0 and 65535.

5.30

Read Trigger Impact Window Trigger Detection Parameter

The Device Configuration Service shall provide the ability to get the trigger impact window trigger detection parameter from an FN VictoR device as a value between 1 and 99 milliseconds.

5.31

Write Trigger Impact Window Trigger Detection Parameter

The Device Configuration Service shall provide the ability to set the trigger impact window trigger detection parameter of an FN VictoR device to a value between 1 and 99 milliseconds.

5.32

Read Post-Trigger Impact Window Trigger Detection Parameter

The Device Configuration Service shall provide the ability to get the post-trigger impact window trigger detection parameter from an FN VictoR device as a value between 0 and 65535 milliseconds.

5.33

Write Post-Trigger Impact Window Trigger Detection Parameter

The Device Configuration Service shall provide the ability to set the post-trigger impact window trigger detection parameter of an FN VictoR device to a value between 0 and 65535 milliseconds.

5.34

Read Detection Threshold Target Recognition System Parameter

The Device Configuration Service shall provide the ability to get the detection threshold target recognition system parameter from an FN VictoR device as a percentage between 0 and 100.

5.35

Write Detection Threshold Target Recognition System Parameter

The Device Configuration Service shall provide the ability to set the detection threshold target recognition system parameter of an FN VictoR device to a percentage between 0 and 100.

6. Object Transfer Service

ID

Name

Description

6.1

Object Transfer Service

The FN VictoR SDK shall provide developers with a multi-platform, BLE protocol Object Transfer Service that allows for reading and writing of binary objects including video, images, and vision system model files to and from an FN Victor device over a common interface.

6.2

Write Command PDU

The Object Transfer Service shall provide the ability to write Object Transfer Command PDUs to an FN VictoR device

6.3

Read Response PDU

The Object Transfer Service shall provide the ability to read Object Transfer Response PDUs from an FN VictoR device.

6.4

Notify Response PDU

The Object Transfer Service shall provide the ability to receive notifications of incoming Object Transfer Response PDUs from an FN VictoR device.

6.5

File Read Command Class

The Object Transfer Service shall support the File Read Command Class of object transfer commands.

6.6

Write File Command

The Object Transfer service shall provide the ability to write the Read File Object Transfer Command to an FN VictoR device with a specified byte offset, number of bytes to read, and file name to read from the device.

6.7

Read File Command Data

The Object Transfer service shall provide the ability to read the Read File Object Transfer Command Data from an FN VictoR device which contains the requested file contents in binary format.

6.8

Notify File Command Data

The Object Transfer service shall provide the ability to receive Read File Object Transfer Command Data notifications from an FN VictoR device which contains the requested file contents in binary format.

7. Unity Engine Integration

ID

Name

Description

7.1

Unity Integration

The FN VictoR SDK shall come bundled with a Unity package that includes a reference implementation of how to use the FN SDK and can be imported into a Unity project.

7.2

Library Plug-in

The Unity package shall include the FN VictoR SDK library as a managed plug-in.

7.3

Unity/SDK Interface

The Unity package shall include Scripts that provide Unity developers with an interface to the various classes, methods, and utilities of the FN VictoR SDK library.

7.4

Unity/SDK Prefabs

The Unity package shall include Prefabs with pre-configured GameObjects that use the Scripts of the Unity/SDK Interface to provide a developer-friendly mechanism for interacting with an FN VictoR device while developing in the Unity Editor.

7.5

Example Unity Scene

The Unity package shall include a scene that utilizes the Prefabs of the Unity/SDK Interface to provide developers with a “ready-to-go” example illustrating all of the Prefabs needed in a scene as well as any configuration parameters that need to be configured for successful FN VictoR device interaction.

7.6

Unity Version Target

The Unity package shall support development of Unity projects targeting the Unity LTS Release 2020.3.27f1.

8. Logging

ID

Name

Description

8.1

Logging System

The FN VictoR SDK shall provide developers with a multi-platform Logging System that aides in the development, debugging, and monitoring of interactions between their applications and the SDK, and interactions between the SDK and the FN VictoR device.

8.2

Logging Levels

The Logging System shall provide DEBUG, INFO, WARN, ERROR, and FATAL log levels.

8.3

DEBUG Log Level

The DEBUG Log Level shall provide information about SDK and/or FN VictoR device behavior that may be useful to diagnose or debug issues.

8.4

INFO Log Level

The INFO Log Level shall provide information about SDK and/or FN VictoR device events that would be considered useful knowledge for general purposes.

8.5

WARN Log Level

The WARN Log Level shall provide information about SDK and/or FN VictoR device events that may be an indication of a problem with SDK or device interaction.

8.6

ERROR Log Level

The ERROR Log Level shall provide information about SDK and/or FN VictoR device errors that indicate a definite but potentially recoverable problem with SDK or device interaction.

8.7

FATAL Log Level

The FATAL Log Level shall provide information about SDK and/or FN VictoR device errors that indicate a critical problem with SDK or device interaction that results in application termination.

8.8

Logging Targets

The Logging System shall support logging to the standard output and standard error streams, or to a file.

9. Documentation

ID

Name

Description

9.1

Code Documentation

The FN VictoR SDK shall come with a fully documented API for developers

9.2

Technical Documentation

Unity shall provide FN with technical documentation on the design of the FN VictoR SDK that details design choices, outlines the software architecture, and illustrates intended use cases.

9.3

Getting Started Guide

Unity shall provide FN with a getting started guide that explains how to set up a Windows or Android development project and integrate it with the FN VictoR SDK.