Gocator API

- Home
- Types
- Files

All Classes Files Functions Variables Typedefs Macros Modules Pages
GoHealth.h
Go to the documentation of this file.
1 /**
2 * @file GoHealth.h
3 * @brief Declares the GoHealthMsg class and related types.
4 *
5 * @internal
6 * Copyright (C) 2016-2018 by LMI Technologies Inc.
7 * Licensed under the MIT License.
8 * Redistributed files must retain the above copyright notice.
9 */
10 #ifndef GO_SDK_HEALTH_H
11 #define GO_SDK_HEALTH_H
12
13 #include <GoSdk/GoSdkDef.h>
14 #include <kApi/Io/kSerializer.h>
15 kBeginHeader()
16
17 /**
18 * @struct GoHealthIndicatorId
19 * @ingroup GoSdk-HealthChannel
20 * @brief Represents a health indicator ID.
21 *
22 * The following enumerators are defined:
23 * - #GO_HEALTH_ENCODER_VALUE
24 * - #GO_HEALTH_ENCODER_FREQUENCY
25 * - #GO_HEALTH_FIRMWARE_VERSION
26 * - #GO_HEALTH_FIRESYNC_VERSION
27 * - #GO_HEALTH_UPTIME
28 * - #GO_HEALTH_TEMPERATURE
29 * - #GO_HEALTH_CPU_TEMPERATURE
30 * - #GO_HEALTH_PROJECTOR_TEMPERATURE
31 * - #GO_HEALTH_CAMERA_0_TEMPERATURE
32 * - #GO_HEALTH_CAMERA_1_TEMPERATURE
33 * - #GO_HEALTH_LASER_DRIVER_TEMPERATURE
34 * - #GO_HEALTH_LASER_TEMPERATURE
35 * - #GO_HEALTH_LASER_OVERHEAT
36 * - #GO_HEALTH_LASER_OVERHEAT_DURATION
37 * - #GO_HEALTH_MEMORY_USED
38 * - #GO_HEALTH_MEMORY_CAPACITY
39 * - #GO_HEALTH_STORAGE_USED
40 * - #GO_HEALTH_STORAGE_CAPACITY
41 * - #GO_HEALTH_CPU_USED
42 * - #GO_HEALTH_SYNC_SOURCE
43 * - #GO_HEALTH_NET_OUT_USED
44 * - #GO_HEALTH_NET_OUT_RATE
45 * - #GO_HEALTH_NET_OUT_CAPACITY
46 * - #GO_HEALTH_NET_OUT_LINK_STATUS
47 * - #GO_HEALTH_DIGITAL_INPUTS
48 * - #GO_HEALTH_CAMERA_SEARCH_COUNT
49 * - #GO_HEALTH_STATE
50 * - #GO_HEALTH_SPEED
51 * - #GO_HEALTH_MAXSPEED
52 * - #GO_HEALTH_SPOT_COUNT
53 * - #GO_HEALTH_MAX_SPOT_COUNT
54 * - #GO_HEALTH_SCAN_COUNT
55 * - #GO_HEALTH_PLAYBACK_POSITION
56 * - #GO_HEALTH_PLAYBACK_COUNT
57 * - #GO_HEALTH_DIGITAL_OUTPUT_HIGH_COUNT
58 * - #GO_HEALTH_DIGITAL_OUTPUT_LOW_COUNT
59 * - #GO_HEALTH_PROCESSING_LATENCY_LAST
60 * - #GO_HEALTH_PROCESSING_LATENCY_MAX
61 * - #GO_HEALTH_PROCESSING_DROPS
62 * - #GO_HEALTH_TRIGGER_DROPS
63 * - #GO_HEALTH_OUTPUT_DROPS
64 * - #GO_HEALTH_ANALOG_DROPS
65 * - #GO_HEALTH_DIGITAL_DROPS
66 * - #GO_HEALTH_SERIAL_DROPS
67 * - #GO_HEALTH_ETHERNET_DROPS
68 * - #GO_HEALTH_RANGE_VALID_COUNT
69 * - #GO_HEALTH_RANGE_INVALID_COUNT
70 * - #GO_HEALTH_ANCHOR_INVALID_COUNT
71 * - #GO_HEALTH_MEASUREMENT
72 * - #GO_HEALTH_MEASUREMENT_PASS
73 * - #GO_HEALTH_MEASUREMENT_FAIL
74 * - #GO_HEALTH_MEASUREMENT_MIN
75 * - #GO_HEALTH_MEASUREMENT_MAX
76 * - #GO_HEALTH_MEASUREMENT_AVERAGE
77 * - #GO_HEALTH_MEASUREMENT_STDEV
78 * - #GO_HEALTH_MEASUREMENT_INVALID_COUNT
79 * - #GO_HEALTH_MEASUREMENT_OVERFLOW_COUNT
80 */
81 typedef k32s GoHealthIndicatorId;
82 /** @name GoHealthIndicatorId
83 *@{*/
84 #define GO_HEALTH_ENCODER_VALUE (1003) ///< Current system encoder tick.
85 #define GO_HEALTH_ENCODER_FREQUENCY (1005) ///< Current system encoder frequency (ticks/s).
86 #define GO_HEALTH_LASER_SAFETY (1010) ///< Laser safety status.
87
88 #define GO_HEALTH_FIRMWARE_VERSION (2000) ///< Firmware application version.
89 #define GO_HEALTH_FIRESYNC_VERSION (20600) ///< FireSync version
90
91 #define GO_HEALTH_UPTIME (2017) ///< Time elapsed since boot-up or reset (seconds).
92
93 #define GO_HEALTH_TEMPERATURE (2002) ///< Internal temperature (degrees Celsius).
94 #define GO_HEALTH_TEMPERATURE_EXTENDED (20009) ///< Internal temperature extended (supports multiple devices, degrees Celsius).
95 #define GO_HEALTH_PROJECTOR_TEMPERATURE (2404) ///< Projector temperature (degrees Celsius).
96 #define GO_HEALTH_LASER_TEMPERATURE (2028) ///< Laser temperature (degrees Celsius). Available only on 3B-class devices.
97 #define GO_HEALTH_LASER_OVERHEAT (20020) ///< Indicates whether the laser is overheating. (DEPRECATED)
98 #define GO_HEALTH_LASER_OVERHEAT_DURATION (20021) ///< Indicates how long the laser has been overheating if it is overheating. (DEPRECATED)
99 #define GO_HEALTH_OVERHEAT (20020) ///< Indicates whether the sensor is overheating.
100 #define GO_HEALTH_OVERHEAT_DURATION (20021) ///< Indicates how long the sensor has been overheating if it is overheating.
101
102 #define GO_HEALTH_CPU_TEMPERATURE (20011) ///< CPU temperature (degrees Celsius).
103 #define GO_HEALTH_CAMERA_0_TEMPERATURE (20012) ///< Camera 0 temperature (degrees Celsius).
104 #define GO_HEALTH_CAMERA_1_TEMPERATURE (20013) ///< Camera 1 temperature (degrees Celsius).
105 #define GO_HEALTH_LASER_DRIVER_TEMPERATURE (20014) ///< Laser driver temperature (degrees Celsius).
106
107 #define GO_HEALTH_MEMORY_USED (2003) ///< Amount of memory currently used (bytes).
108 #define GO_HEALTH_MEMORY_CAPACITY (2004) ///< Total amount of memory available (bytes).
109 #define GO_HEALTH_STORAGE_USED (2005) ///< Amount of non-volatile storage used (bytes).
110 #define GO_HEALTH_STORAGE_CAPACITY (2006) ///< Total amount of non-volatile storage available (bytes).
111 #define GO_HEALTH_CPU_USED (2007) ///< CPU usage (percentage of maximum).
112
113 #define GO_HEALTH_SYNC_SOURCE (2043) ///< Sensor synchronization source. (1 - Master, 2 - Device/Gocator)
114 #define GO_HEALTH_NET_OUT_USED (21003) ///< Current outbound network count (bytes).
115 #define GO_HEALTH_NET_OUT_RATE (21004) ///< Current outbound network throughput (bytes/second).
116 #define GO_HEALTH_NET_OUT_CAPACITY (2009) ///< Total available outbound network throughput (bytes/s).
117 #define GO_HEALTH_NET_OUT_LINK_STATUS (2034) ///< The ethernet output's current network link status
118
119 #define GO_HEALTH_DIGITAL_INPUTS (2024) ///< Current digital input status (one bit per input).
120 #define GO_HEALTH_EVENT_COUNTS (2102) ///< Total number of events triggered.
121 #define GO_HEALTH_CAMERA_SEARCH_COUNT (2217) ///< Number of search states.
122 #define GO_HEALTH_CAMERA_TRIGGER_DROPS (2201) ///< Number of dropped triggers.
123
124 #define GO_HEALTH_STATE (20000) ///< Current system state.
125 #define GO_HEALTH_SPEED (20001) ///< Current speed (Hz).
126 #define GO_HEALTH_MAXSPEED (20002) ///< Maximum speed (Hz).
127 #define GO_HEALTH_SPOT_COUNT (20003) ///< Number of found spots in the last raw/unresampled profile/surface
128 #define GO_HEALTH_MAX_SPOT_COUNT (20004) ///< Maximum number of spots that can be found
129 #define GO_HEALTH_SCAN_COUNT (20005) ///< The number of scanned profiles or surfaces.
130 #define GO_HEALTH_VALID_POINT_COUNT (20015) ///< The number of found points in the last resampled profile/surface
131 #define GO_HEALTH_MAX_POINT_COUNT (20016) ///< Maximum number of points that can be found
132
133 #define GO_HEALTH_MASTER_STATUS (20006) ///< Master connection status: 0=not connected, 1=connected
134 #define GO_HEALTH_CAST_START_STATE (20007) ///< The state of the second digital input.
135 #define GO_HEALTH_ALIGNMENT_STATE (20008) ///< The state of the sensor alignment.
136
137 #define GO_HEALTH_PLAYBACK_POSITION (20023) ///< Indicates the current replay playback index.
138 #define GO_HEALTH_PLAYBACK_COUNT (20024) ///< Indicates the number of frames present in the current replay.
139
140 #define GO_HEALTH_DIGITAL_OUTPUT_HIGH_COUNT (21006) ///< The number scans with high digital output pulses.
141 #define GO_HEALTH_DIGITAL_OUTPUT_LOW_COUNT (21007) ///< The number scans with no digital output pulse.
142
143 #define GO_HEALTH_PROCESSING_LATENCY_LAST (21001) ///< Last reported processing latency value (in uS).
144 #define GO_HEALTH_PROCESSING_LATENCY_MAX (21002) ///< Maximum reported processing latency.
145 #define GO_HEALTH_PROCESSING_DROPS (21000) ///< Current number of processing drops.
146 #define GO_HEALTH_TRIGGER_DROPS (21010) ///< Current number of trigger drops.
147 #define GO_HEALTH_OUTPUT_DROPS (21011) ///< Current number of output drops. Sum of all output drops.
148
149 #define GO_HEALTH_ANALOG_DROPS (21014) ///< Current number of analog output drops. Replaces GO_HEALTH_ANALOG_DROPS.
150 #define GO_HEALTH_DIGITAL_DROPS (21015) ///< Current number of digital output drops. Replaces GO_HEALTH_DIGITAL_DROPS.
151 #define GO_HEALTH_SERIAL_DROPS (21016) ///< Current number of serial output drops. Replaces GO_HEALTH_SERIAL_DROPS.
152 #define GO_HEALTH_CONTROLLED_TRIGGER_DROPS (21017) ///< Trigger drops from the Controlled Triggering System.
153 #define GO_HEALTH_SURFACE_PROCESSING_TIME (21018) ///< Processing time of frame on 35XX/32XX (microseconds).
154 #define GO_HEALTH_MAX_FRAME_RATE (21019) ///< Max configurable frame rate (scaled by 0.000001).
155 #define GO_HEALTH_ETHERNET_DROPS (21005) ///< Current number of ethernet output drops.
156
157 #define GO_HEALTH_RANGE_VALID_COUNT (21100) ///< Current number of frames with valid range data.
158 #define GO_HEALTH_RANGE_INVALID_COUNT (21101) ///< Current number of frames with invalid range data.
159 #define GO_HEALTH_ANCHOR_INVALID_COUNT (21200) ///< Number of frames with anchor invalid.
160
161 #define GO_HEALTH_FIRST_LOG_ID (21301) ///< ID of first available log entry
162 #define GO_HEALTH_LAST_LOG_ID (21300) ///< ID of last available log entry
163
164 #define GO_HEALTH_ENCODER_Z_INDEX_PULSE_DROPS (22000) ///< Encoder z-index pulse drops
165
166 #define GO_HEALTH_TOOL_RUN_TIME (22004) ///< Most recent time taken to execute the tool
167 #define GO_HEALTH_PART_TOTAL_EMITTED (22006) ///< Total number of parts emitted
168 #define GO_HEALTH_PART_LENGTH_LIMIT (22007) ///< Number of parts emitted based on length limit
169 #define GO_HEALTH_PART_MIN_AREA_DROPS (22008) ///< Number of parts dropped
170 #define GO_HEALTH_PART_BACKTRACK_DROPS (22009) ///< Number of parts dropped due to backtracking
171 #define GO_HEALTH_PART_CURRENTLY_ACTIVE (22010) ///< Number of parts currently being tracked
172 #define GO_HEALTH_PART_LENGTH (22011) ///< Length of largest active part
173 #define GO_HEALTH_PART_START_Y (22012) ///< Start Y position of largest active part
174 #define GO_HEALTH_PART_TRACKING_STATE (22013) ///< Tracking state of largest active part
175 #define GO_HEALTH_PART_CAPACITY_EXCEEDED (22014) ///< Part detection capacity exceeded
176 #define GO_HEALTH_PART_X_POSITION (22015) ///< Center X position of largets active part
177 #define GO_HEALTH_TOOL_RUN_TIME_MIN (22016) ///< Minimum time for tool to process a sample
178 #define GO_HEALTH_TOOL_RUN_TIME_MAX (22017) ///< Maximum time for tool to process a sample
179 #define GO_HEALTH_TOOL_RUN_TIME_AVERAGE (22018) ///< Average time for tool to process a sample
180 #define GO_HEALTH_TOOL_RUN_TIME_PERCENT (22019) ///< Average percentage of total time running the tool
181
182 #define GO_HEALTH_MEASUREMENT (30000) ///< Measurement value.
183 #define GO_HEALTH_MEASUREMENT_PASS (30001) ///< Number of pass decisions.
184 #define GO_HEALTH_MEASUREMENT_FAIL (30002) ///< Number of fail decisions.
185 #define GO_HEALTH_MEASUREMENT_MIN (30003) ///< Minimum measurement value.
186 #define GO_HEALTH_MEASUREMENT_MAX (30004) ///< Maximum measurement value.
187 #define GO_HEALTH_MEASUREMENT_AVERAGE (30005) ///< Average measurement value.
188 #define GO_HEALTH_MEASUREMENT_STDEV (30006) ///< Measurement value standard deviation.
189 #define GO_HEALTH_MEASUREMENT_INVALID_COUNT (30007) ///< Number of invalid values.
190 #define GO_HEALTH_MEASUREMENT_OVERFLOW_COUNT (30008) ///< Number of values which exceed the numerical limit of an output protocol's measurement value field.
191 /**@}*/
192
193
194 /**
195 * @struct GoIndicator
196 * @extends kValue
197 * @ingroup GoSdk-HealthChannel
198 * @brief Represents health indicator.
199 */
200 typedef struct GoIndicator
201 {
202 k32u id; ///< Indicator ID (e.g. GO_HEALTH_CPU_USED)
203 k32u instance; ///< Indicator instance number.
204 k64s value; ///< Indicator value.
205 } GoIndicator;
206
207 /**
208 * @class GoHealthMsg
209 * @extends kObject
210 * @ingroup GoSdk-HealthChannel
211 * @brief Represents health information from a single sensor.
212 */
213 typedef kObject GoHealthMsg;
214
215 /**
216 * Gets the health source.
217 *
218 * @public @memberof GoHealthMsg
219 * @version Introduced in firmware 4.0.10.27
220 * @param msg Message object.
221 * @return Health source.
222 */
223 GoFx(GoDataSource) GoHealthMsg_Source(GoHealthMsg msg);
224
225 /**
226 * Count of health indicators in this message.
227 *
228 * @public @memberof GoHealthMsg
229 * @version Introduced in firmware 4.0.10.27
230 * @param msg Message object.
231 * @return Count of indicators.
232 */
233 GoFx(kSize) GoHealthMsg_Count(GoHealthMsg msg);
234
235 /**
236 * Gets the health indicator at the specified index.
237 *
238 * @public @memberof GoHealthMsg
239 * @version Introduced in firmware 4.0.10.27
240 * @param msg Message object.
241 * @param index Indicator index.
242 * @return Indicator pointer.
243 */
244 GoFx(GoIndicator*) GoHealthMsg_At(GoHealthMsg msg, kSize index);
245
246 /**
247 * Finds the health indicator with the matching ID. Returns kNULL if not found.
248 *
249 * @public @memberof GoHealthMsg
250 * @version Introduced in firmware 4.0.10.27
251 * @param msg Message object.
252 * @param id Indicator index.
253 * @param instance Indicator instance.
254 * @return Indicator pointer.
255 */
256 GoFx(GoIndicator*) GoHealthMsg_Find(GoHealthMsg msg, k32u id, k32u instance);
257
258 kEndHeader()
259 #include <GoSdk/Messages/GoHealth.x.h>
260
261 #endif
k32u
GoHealthMsg::GoHealthMsg_Count
kSize GoHealthMsg_Count(GoHealthMsg msg)
Count of health indicators in this message.
GoHealthMsg
Represents health information from a single sensor.
kSize
GoIndicator
Represents health indicator.
Definition: GoHealth.h:200
GoDataSource
Represents a data source.
GoSdkDef.h
Essential SDK declarations.
GoHealthMsg::GoHealthMsg_Find
GoIndicator * GoHealthMsg_Find(GoHealthMsg msg, k32u id, k32u instance)
Finds the health indicator with the matching ID.
k32s
kSerializer.h
GoHealthMsg::GoHealthMsg_Source
GoDataSource GoHealthMsg_Source(GoHealthMsg msg)
Gets the health source.
GoHealthIndicatorId
Represents a health indicator ID.
k64s
GoIndicator::id
k32u id
Indicator ID (e.g. GO_HEALTH_CPU_USED)
Definition: GoHealth.h:202
GoHealthMsg::GoHealthMsg_At
GoIndicator * GoHealthMsg_At(GoHealthMsg msg, kSize index)
Gets the health indicator at the specified index.
GoIndicator::instance
k32u instance
Indicator instance number.
Definition: GoHealth.h:203
kObject
GoIndicator::value
k64s value
Indicator value.
Definition: GoHealth.h:204