Health Results

A client can receive health messages from a sensor by connecting to the Health TCP channel (port 3194).

The Data channel (port 3196) and the Health channel can be connected at the same time. The sensor accepts multiple connections on each port. For more information on the Data channel, see Data Results.

Messages that are received on the Data and Health channels use a common structure, called Gocator Data Protocol (GDP). Each message consists of a 6-byte header, containing size and control fields, followed by a variable-length, message-specific content section. The structure of the GDP message is defined below.

Gocator Data Protocol

Field

Type

Offset

Description

size 32u 0 Count of bytes in message (including this field).
control 16u 4

Bit 15: Last Message flag

Bits 0-14: Message type identifier. (See individual data result sections.)

Messages are always sent in groups. The Last Message flag in the control field is used to indicate the final message in a group. If there is only one message per group, this bit will be set in each message.

A Health Result contains a single data block for health indicators. Each indicator reports the current status of some aspect of the sensor system, such as CPU usage or network throughput.

Health Result

Field

Type

Offset

Description

size 32u 0 Count of bytes in message (including this field).
control 16u 4

Bit 15: Last message flag.

Bits 0-14: Message type identifier. Always 0.

count (C) 32u 6 Count of indicators in this message.
source 8u 10 Source (0 – Main, 1 – Buddy).
reserved[3] 8u 11 Reserved
indicators[C] Indicator 14 Array of indicators (see format below).

The indicators block contains a 2-dimensional array of indicator data. Each row in the array has the following format:

Indicator Format

Field

Type

Offset

Description

id

32u

0

Unique indicator identifier (see Indicator identifiers table below).

instance

32u

4

Indicator instance.

value

64s

8

Value (identifier-specific meaning).

The following health indicators are defined for sensor systems.

When a sensor is accelerated, some health indicators report values from the PC that is accelerating the sensor, or a combination of both. In the table below, values are reported from the sensor unless otherwise indicated.

Undocumented indicators may be included in addition to the indicators defined below.

If multiple instances of an indicator are available, the instance is indicated in parenthesis () in the ID field.

Indicator identifiers

Indicator

ID

Instance

Value

Encoder Value

1003

-

Current system encoder tick.

Encoder Frequency

1005

-

Current system encoder frequency (ticks/s).

Laser Safety 1010 -

Laser safety status.

0: laser is disabled

1: laser is enabled

App Version

2000

-

Firmware application version.

Internal Temperature

2002

-

Internal temperature (centidegrees Celsius).

Uptime

2017

-

Time elapsed since node boot-up or reset (seconds).

Projector Temperature

2404

-

Projector module temperature (centidegrees Celsius).

Only available on projector based devices.

Control Temperature

2028

-

Control module temperature (centidegrees Celsius).

Available only on 3B-class devices.

Memory Usage - Total

2003 (0)

-

Total amount of memory currently used (bytes).

Memory Usage - Program

2003 (1)

-

Amount of memory used for program (bytes).

Memory Usage - Main heap

2003 (2)

-

Amount of memory used for main heap (bytes).

Memory Usage - Fast heap

2003 (3)

-

Amount of memory used for Fast heap (bytes).

Memory Usage - PL Heap

2003 (4)

-

Amount of memory used for PL heap (bytes).

Memory Capacity - Total

2004 (0)

-

Total capacity of memory available (bytes).

Memory Capacity - Program

2004 (1)

-

Capacity of memory available for program (bytes).

Memory Capacity - Main heap

2004 (2)

-

Capacity of memory available for main heap (bytes).

Memory Capacity - Fast heap

2004 (3)

-

Capacity of memory available for fast heap (bytes).

Memory Capacity - PL heap

2004 (4)

-

Capacity of memory available for PL heap (bytes).

Storage Usage

2005

-

Amount of non-volatile storage used (bytes).

Storage Capacity

2006

-

Total amount of non-volatile storage available (bytes).

Alignment State 20008 -

Alignment state:

0 – not aligned

1 - aligned

CPU Usage

2007

-

CPU usage (percentage of maximum).

Net Out Capacity

2009

-

Total available outbound network throughput (bytes/s).

Net Out Link Status

2034

-

Current Ethernet link status.

 

(0x0000) - No link, or speed unknown.

(0x0001) - 10 Mb/s, half duplex.

(0x0002) - 10 Mb/s, full duplex.

(0x0004) - 100 Mb/s, half-duplex.

(0x0008) - 100 Mb/s, full-duplex.

(0x0010) - 1000 Mb/s, half-duplex.

(0x0020) - 1000 Mb/s, full-duplex.

(0x8000) - Auto-negotiated.

Sync Source* 2043 -

Synchronization source.

1 - Master device

2 - Sensor

Digital Inputs* 2024 - Current digital input status (one bit per input).
Event Count 2102 - Total number of events triggered.

Camera Search Count

2217

-

Number of search states. (Only important when tracking is enabled.)

Camera Trigger Drops

2201

-

Number of dropped triggers due to collision with camera exposure timing.

(Grouped with “Trigger Drops” indicator)

Sensor Watchdog Reset

3006

-

Number of restarts caused by a fatal error condition, such as watchdog resets or crash resets.

Platform CUDA Status

3007

-

Status of CUDA/GPU support on the sensor (accelerated and non-accelerated) platform.

0 = CUDA/GPU execution supported in current platform environment.

Analog Output Drops

21014(previously 2501)

Output Index

Number of dropped outputs.

Digital Output Drops

21015 (previously 2601)

Output Index

Number of dropped outputs.

Serial Output Drops

21016 (previously 2701)

Output Index

Number of dropped outputs.

Sensor State*

20000

-

Sensor state.

-1 – Conflict

0 – Ready

1 – Running

Current Sensor Speed*

20001

-

Current sensor speed. (Hz)

Maximum Speed*

20002

-

The sensor’s maximum speed.

Spot Count*

20003

-

Number of spots found in the last unresampled profile/surface.

Max Spot Count*

20004

-

Maximum number of spots that can be found.

Scan Count*

20005

-

Number of surfaces detected from a top device.

Master Status* 20006

0 for main

1 for buddy

Master connection status:

0 – Not connected

1 – Connected

The indicator with instance = buddy does not exist if the buddy is not connected.

Cast Start State* 20007   The state of the second digital input. (NOTE: Only available on XLine capable licensed devices)
Point Count 20015 - Number of points found in last resampled Profile/Surface.
Max Point Count 20016 - Maximum number of points that can be found.

Laser Overheat*

20020

-

Indicates whether laser overheat has occurred.

0 – Has not overheated

1 – Has overheated

Only available on certain 3B laser devices.

Laser Overheat Duration*

20021

-

The length of time in which the laser overheating state occurred.

Only available on certain 3B laser devices.

Playback Position*

20023

-

The current replay playback position.

Playback Count*

20024

-

The number of frames present in the replay.

FireSync Version

20600

-

The FireSync version used by the Gocator build.

The low-level firmware version used by the sensor.

Processing Drops**

21000

-

The sum of various processing drop indicators including drops due to insufficient CPU and buffer overflows.

Last Processing Latency

21001

-

Processing latency is the time from the start of camera exposure of the profile or last profile of the surface, to the time of the last frame which causes the scan to be emitted from the generation engine. In the case of long exposure time, the time is measured from the start of the exposure (profiles and surfaces). For multiple exposures it includes the summation of the individual exposure times (profiles and surfaces).

Max Processing Latency

21002

-

Maximum value of processing latency.

Ethernet Output

21003

- Number of bytes transmitted.

Ethernet Rate

21004

-

The average number of bytes per second being transmitted.

Ethernet Drops

21005

-

Number of dropped Ethernet packets.

Digital Output Pass

21006

Output Index

Number of pass digital output pulse.

Digital Output Fail

21007

Output Index

Number of fail digital output pulse.

Trigger Drops**

21010

 

Number of dropped triggers. The sum of various triggering-related drop indicators. This includes, but is not limited to, Camera Trigger Drops and Controlled Trigger Drops.

Output Drops**

21011

 

Number of dropped output data. The sum of all output drops (analog, digital, serial, host server, and ASCII server).

Controlled Trigger Drops 21017   Number of trigger drops from the trigger controller functionality which tracks if a trigger is not processed due to some system delay. (Grouped with “Trigger Drops” indicator)
Surface Processing Time 21018   Processing time of frame on 35xx/32xx (microseconds)
Max Frame Rate 21019   32xx/35xx max configurable frame rate given above in Surface Processing Time (scaled by 1x10-6)

Range Valid Count**

21100

-

Number of valid ranges.

Range Invalid Count**

21101

-

Number of invalid ranges.

Anchor Invalid Count**

21200

-

Number of frames with anchoring invalid.

Light Operational Time

21201

-

Total running time of G2 laser or G3 projector light (on Gocator firmware 5.3 or later), in minutes.

First Log Id

21301

 

ID of the first available log entry.

Last Log Id

21300

 

ID of the last available log entry. It is inclusive: for example, if first = 3 and last = 5, the available log IDs are 3, 4, 5. If no log is available, the last ID is less than the first ID.

Z-Index Drop Count

22000

-

The number of dropped surfaces due to a lack of z-encoder pulse during rotational part detection.

Tool Run Time 22004 Tool Index The most recent time taken to execute the tool.
Part Total Emitted 22006 - Total number of parts emitted by profile part detection.
Part Length Limit 22007 - Number of parts emitted due to reaching the length limit.
Part Min Area Drops 22008 - Number of parts dropped due to being smaller than the minimum area.
Part Backtrack Drops 22009 - Number of parts dropped due to backtracking.
Parts Currently Active 22010 - Number of parts currently being tracked.
Part Length 22011 - Length of largest active part.
Part Start Y 22012 - Start Y position of the largest active part.
Part Tracking State 22013 - Tracking state of the largest active part.
Part Capacity Exceeded 22014 - Part detection part or run capacity has been exceeded.
Part X Position 22015 - Center X position of the largest active part.
Tool Runtime Minimum 22016 - Minimum time spent for tool to process a sample
Tool Runtime Maximum 22017 - Maximum time spent for tool to process a sample
Tool Runtime Average 22018 - Average time for tool to process a sample
Tool Runtime Percent Average 22019 - Average percentage of total time spent running this tool

Bar Alignment Status

22020

-

Status of the buffered bar alignment when aligning:

1 – buffer leveling in progress

2 – buffer searching in progress

3 – buffer scanning in progress

4 – buffer padding in progress

5 – buffering complete; processing alignment on buffered data

11 – alignment leveling in progress

12 – alignment searching in progress

13 – alignment fitting in progress

14 – alignment complete

15 – alignment completed but failed

16 – alignment cancelled

Value

30000

Measurement ID

Measurement Value.

Pass

30001

Measurement ID

Number of pass decision.

Fail

30002

Measurement ID

Number of fail decision.

Min

30003

Measurement ID

Minimum measurement value.

Max

30004

Measurement ID

Maximum measurement value.

Average

30005

Measurement ID

Average measurement value.

Std. Dev.

30006

Measurement ID

Measurement value standard deviation.

Invalid Count

30007

Measurement ID

Number of invalid values.

Overflow 30008 Measurement ID

Number of times this measurement has overflown on any output. Multiple simultaneous overflows result in only a single increment to this counter. Overflow conditions include:

-Value exceeds bit representation available for given protocol

-Analog output (mA) falls outside of acceptable range (0-20 mA)

When a measurement value overflow occurs, the value is set to the null value appropriate for the given protocol's measurement value output type. The Overflow health indicator increments.

* When the sensor is accelerated, the indicator's value is reported from the accelerating PC.

** When the sensor is accelerated, the indicator's value is the sum of the values reported from the sensor and the accelerating PC.