Gocator API
 All Classes Files Functions Variables Typedefs Macros Modules Pages
GoControl.h
Go to the documentation of this file.
1 /**
2  * @file GoControl.h
3  * @brief Declares the GoControl class.
4  *
5  * @internal
6  * Copyright (C) 2016-2019 by LMI Technologies Inc.
7  * Licensed under the MIT License.
8  * Redistributed files must retain the above copyright notice.
9  */
10 #ifndef GO_SDK_CONTROL_H
11 #define GO_SDK_CONTROL_H
12 
13 #include <GoSdk/GoSdkDef.h>
14 #include <GoSdk/GoSensorInfo.h>
15 #include <kApi/Io/kSerializer.h>
16 #include <kApi/Io/kFile.h>
17 #include <kApi/Data/kString.h>
18 
19 kBeginHeader()
20 
21 /**
22  * @class GoControl
23  * @extends kObject
24  * @ingroup GoSdk-Internal
25  * @brief Represents a set of sensor command connections (control, upgrade).
26  */
27 typedef kObject GoControl;
28 
29 /**
30  * Constructs a GoControl object.
31  *
32  * @public @memberof GoControl
33  * @version Introduced in firmware 4.0.10.27
34  * @param control Receives constructed control object.
35  * @param allocator Memory allocator (or kNULL for default).
36  * @return Operation status.
37  */
38 GoFx(kStatus) GoControl_Construct(GoControl* control, kAlloc allocator);
39 
40 
41 /**
42  * Sets an I/O cancellation query handler for this control object.
43  *
44  * The I/O cancellation query handler will be polled periodically when I/O is blocked
45  * for a non-negligible amount of time. If the cancellation handler returns kERROR_ABORT,
46  * ongoing communication will be terminated.
47  *
48  * @public @memberof GoControl
49  * @version Introduced in firmware 4.0.10.27
50  * @param control Control object.
51  * @param function I/O cancellation callback function (or kNULL to unregister).
52  * @param receiver Receiver argument for callback.
53  * @return Operation status.
54  */
55 GoFx(kStatus) GoControl_SetCancelHandler(GoControl control, kCallbackFx function, kPointer receiver);
56 
57 /**
58  * Opens connections to the specified sensor IP address.
59  *
60  * The Open function immediately opens a control connection. Later, while in the
61  * open state, if an upgrade command is given, an upgrade connection will be established
62  * automatically at that time.
63  *
64  * @public @memberof GoControl
65  * @version Introduced in firmware 4.8.2.76
66  * @param control GoControl object.
67  * @param address Sensor IP address.
68  * @param controlPort Control Port
69  * @param upgradePort Upgrade Port
70  * @return Operation status.
71  */
72 GoFx(kStatus) GoControl_Open(GoControl control, kIpAddress address, k32u controlPort, k32u upgradePort);
73 
74 /**
75  * Closes all open command connections.
76  *
77  * @public @memberof GoControl
78  * @version Introduced in firmware 4.0.10.27
79  * @param control GoControl object.
80  * @return Operation status.
81  */
82 GoFx(kStatus) GoControl_Close(GoControl control);
83 
84 /**
85  * Reports whether the control object has been opened.
86  *
87  * @public @memberof GoControl
88  * @version Introduced in firmware 4.0.10.27
89  * @param control GoControl object.
90  * @return kTRUE if connected; kFALSE otherwise.
91  */
92 GoFx(kBool) GoControl_IsConnected(GoControl control);
93 
94 /**
95  * Gets the connected sensor's protocol version.
96  *
97  * @public @memberof GoControl
98  * @version Introduced in firmware 4.0.10.27
99  * @param control GoControl object.
100  * @return Protocol version.
101  */
102 GoFx(kVersion) GoControl_ProtocolVersion(GoControl control);
103 
104 /**
105  * Reports whether the GoControl object is compatible with the sensor firmware.
106  *
107  * Compatibility is determined by comparing the major protocol version reported
108  * by the sensor with the major protocol version supported by this library. If
109  * the major versions match, then compatibility is established.
110  *
111  * @public @memberof GoControl
112  * @version Introduced in firmware 4.0.10.27
113  * @param control GoControl object.
114  * @return kTRUE if compatible; kFALSE otherwise.
115  */
116 GoFx(kBool) GoControl_IsCompatible(GoControl control);
117 
118 /**
119  * Logs into the sensor using the specified user name and password.
120  *
121  * @public @memberof GoControl
122  * @version Introduced in firmware 4.0.10.27
123  * @param control GoControl object.
124  * @param user User account.
125  * @param password User password.
126  * @return Operation status.
127  */
128 GoFx(kStatus) GoControl_Login(GoControl control, GoUser user, const kChar* password);
129 
130 /**
131  * Changes the password associated with the specified user account.
132  *
133  * @public @memberof GoControl
134  * @version Introduced in firmware 4.0.10.27
135  * @param control GoControl object.
136  * @param user User account.
137  * @param password New password.
138  * @return Operation status.
139  */
140 GoFx(kStatus) GoControl_ChangePassword(GoControl control, GoUser user, const kChar* password);
141 
142 /**
143  * Gets current sensor state information.
144  *
145  * @public @memberof GoControl
146  * @version Introduced in firmware 4.0.10.27
147  * @param control GoControl object.
148  * @param localInfo Receives local sensor information.
149  * @param remoteInfoList Updates a list of remote sensor information.
150  * @return Operation status.
151  */
152 GoFx(kStatus) GoControl_GetSensorInfo(GoControl control, GoSensorInfo localInfo, kArrayList remoteInfoList);
153 
154 /**
155 * Gets current sensor state information.
156 *
157 * @public @memberof GoControl
158 * @version Introduced in firmware 4.6.4.70
159 * @param control GoControl object.
160 * @param localInfo Receives local sensor information.
161 * @param remoteInfoList Updates a list of remote sensor information.
162 * @param buddyInfoList Updates a list of buddy sensor information.
163 * @return Operation status.
164 */
165 GoFx(kStatus) GoControl_GetSensorInfoV2(GoControl control, GoSensorInfo localInfo, kArrayList remoteInfoList, kArrayList buddyInfoList);
166 
167 /**
168  * Gets the sensor's scan mode.
169  *
170  * @public @memberof GoControl
171  * @version Introduced in firmware 4.0.10.27
172  * @param control GoControl object.
173  * @param mode Receives the scan mode.
174  * @return Operation status.
175  */
176 GoFx(kStatus) GoControl_GetScanMode(GoControl control, GoMode* mode);
177 
178 /**
179  * Assigns or removes a buddy sensor.
180  *
181  * @public @memberof GoControl
182  * @version Introduced in firmware 4.0.10.27
183  * @param control GoControl object.
184  * @param add kTRUE to add; kFALSE to remove.
185  * @param buddyId Buddy device id.
186  * @return Operation status.
187  */
188 GoFx(kStatus) GoControl_ChangeBuddy(GoControl control, kBool add, k32u buddyId);
189 
190 /**
191 * Start assigning multiple buddy sensors. A zero count unassigns all buddies.
192 *
193 * @public @memberof GoControl
194 * @version Introduced in firmware 4.6.2.95
195 * @param control GoControl object.
196 * @param buddyIds Buddy device id array.
197 * @param count 0 to Unassign all buddies; ELSE Number of buddies to assign.
198 * @return Operation status.
199 */
200 GoFx(kStatus) GoControl_AssignBuddies(GoControl control, const k32u* buddyIds, kSize count);
201 
202 /**
203 * Remove multiple buddy sensors. A zero count unassigns all buddies.
204 *
205 * @public @memberof GoControl
206  * @version Introduced in firmware 4.6.4.66
207 * @param control GoControl object.
208 * @param buddyIds Buddy device id array.
209 * @param count 0 to Unassign all buddies; ELSE Number of buddies to assign.
210 * @return Operation status.
211 */
212 
213 GoFx(kStatus) GoControl_RemoveBuddiesById(GoControl control, const k32u* buddyIds, kSize count);
214 
215 /**
216 * Remove multiple buddy sensors.
217 *
218 * @public @memberof GoControl
219 * @version Introduced in firmware 4.6.2.95
220 * @param control GoControl object.
221 * @param buddyIds Buddy device id array.
222 * @param count Number of buddies to unassign.
223 * @return Operation status.
224 */
225 GoFx(kStatus) GoControl_RemoveBuddies(GoControl control, const k32u* buddyIds, kSize count);
226 
227 /**
228  * Sends a start command to a sensor with the currently selected input source, but doesn't wait for the response.
229  *
230  * Use the GoControl_EndStart function to wait for the sensor's reply.
231  *
232  * @public @memberof GoControl
233  * @version Introduced in firmware 4.0.10.27
234  * @param control GoControl object.
235  * @return Operation status.
236  * @see GoControl_EndStart, GoControl_SetInputSource, GoControl_GetInputSource
237  */
238 GoFx(kStatus) GoControl_BeginStart(GoControl control);
239 
240 /**
241  * Waits for a start response from a sensor.
242  *
243  * Call this function sometime after calling BeginStart.
244  *
245  * @public @memberof GoControl
246  * @version Introduced in firmware 4.0.10.27
247  * @param control GoControl object.
248  * @return Operation status.
249  */
250 GoFx(kStatus) GoControl_EndStart(GoControl control);
251 
252 /**
253  * Sends a scheduled start command to a sensor with the currently selected input source, but doesn't wait for the response.
254  *
255  * Use the GoControl_EndScheduledStart function to wait for the sensor's reply.
256  *
257  * @public @memberof GoControl
258  * @version Introduced in firmware 4.1.3.106
259  * @param control GoControl object.
260  * @param value Scheduled start value (in uS for time trigger and ticks for encoder trigger)
261  * @return Operation status.
262  * @see GoControl_EndScheduledStart, GoControl_SetInputSource, GoControl_GetInputSource
263  */
264 GoFx(kStatus) GoControl_BeginScheduledStart(GoControl control, k64s value);
265 
266 /**
267  * Waits for a scheduled start response from a sensor.
268  *
269  * Call this function sometime after calling BeginScheduledStart.
270  *
271  * @public @memberof GoControl
272  * @version Introduced in firmware 4.1.3.106
273  * @param control GoControl object.
274  * @return Operation status.
275  */
276 GoFx(kStatus) GoControl_EndScheduledStart(GoControl control);
277 
278 /**
279  * Sends a stop command to a sensor, but doesn't wait for the response.
280  *
281  * Use the GoControl_EndStop function to wait for the sensor's reply.
282  *
283  * @public @memberof GoControl
284  * @version Introduced in firmware 4.0.10.27
285  * @param control GoControl object.
286  * @return Operation status.
287  * @see GoControl_EndStop
288  */
289 GoFx(kStatus) GoControl_BeginStop(GoControl control);
290 
291 /**
292  * Waits for a stop response from a sensor.
293  *
294  * Call this function sometime after calling BeginStop.
295  *
296  * @public @memberof GoControl
297  * @version Introduced in firmware 4.0.10.27
298  * @param control GoControl object.
299  * @return Operation status.
300  */
301 GoFx(kStatus) GoControl_EndStop(GoControl control);
302 
303 /**
304  * Sends a snapshot command to a sensor with the currently selected input source, but doesn't wait for the response.
305  *
306  * Use the GoControl_EndSnapshot function to wait for the sensor's reply.
307  *
308  * @public @memberof GoControl
309  * @version Introduced in firmware 5.2.1.x
310  * @param control GoControl object.
311  * @return Operation status.
312  * @see GoControl_EndSnapshot, GoControl_SetInputSource, GoControl_GetInputSource
313  */
314 GoFx(kStatus) GoControl_BeginSnapshot(GoControl control);
315 
316 /**
317  * Waits for a snapshot response from a sensor.
318  *
319  * Call this function sometime after calling BeginSnapshot.
320  *
321  * @public @memberof GoControl
322  * @version Introduced in firmware 5.2.1.x
323  * @param control GoControl object.
324  * @return Operation status.
325  */
326 GoFx(kStatus) GoControl_EndSnapshot(GoControl control);
327 
328 /**
329  * Sends a alignment command to a sensor, but doesn't wait for the response.
330  *
331  * Use the GoControl_EndAlignment function to wait for the sensor's reply.
332  *
333  * @public @memberof GoControl
334  * @version Introduced in firmware 4.0.10.27
335  * @param control GoControl object.
336  * @return Operation status.
337  * @see GoControl_EndAlignment
338  */
339 GoFx(kStatus) GoControl_BeginAlignment(GoControl control);
340 
341 /**
342  * Waits for a alignment response from a sensor.
343  *
344  * Call this function sometime after calling BeginAlignment.
345  *
346  * @public @memberof GoControl
347  * @version Introduced in firmware 4.0.10.27
348  * @param control GoControl object.
349  * @return Operation status.
350  */
351 GoFx(kStatus) GoControl_EndAlignment(GoControl control);
352 
353 /**
354  * Clears the sensor alignment.
355  *
356  * @public @memberof GoControl
357  * @version Introduced in firmware 4.1.3.106
358  * @param control GoControl object.
359  * @return Operation status.
360  */
361 GoFx(kStatus) GoControl_ClearAlignment(GoControl control);
362 
363 /**
364  * Sets the alignment reference for a sensor.
365  *
366  * @public @memberof GoControl
367  * @version Introduced in firmware 4.0.10.27
368  * @param control GoControl object.
369  * @param reference Alignment reference.
370  * @return Operation status.
371  */
372 GoFx(kStatus) GoControl_SetAlignmentReference(GoControl control, GoAlignmentRef reference);
373 
374 /**
375  * Gets the alignment reference for a sensor.
376  *
377  * @public @memberof GoControl
378  * @version Introduced in firmware 4.0.10.27
379  * @param control GoControl object.
380  * @param reference Alignment reference.
381  * @return Operation status.
382  */
383 GoFx(kStatus) GoControl_GetAlignmentReference(GoControl control, GoAlignmentRef* reference);
384 
385 /**
386  * Sends an exposure auto set command to a sensor, but doesn't wait for the response.
387  *
388  * Use the GoControl_EndExposureAutoSet function to wait for the sensor's reply.
389  *
390  * @public @memberof GoControl
391  * @version Introduced in firmware 4.0.10.27
392  * @param control GoControl object.
393  * @param role The sensor's role.
394  * @return Operation status.
395  * @see GoControl_EndExposureAutoSet
396  */
397 GoFx(kStatus) GoControl_BeginExposureAutoSet(GoControl control, GoRole role);
398 
399 /**
400  * Waits for a exposure auto set response from a sensor.
401  *
402  * Call this function sometime after calling BeginExposureAutoSet.
403  *
404  * @public @memberof GoControl
405  * @version Introduced in firmware 4.0.10.27
406  * @param control GoControl object.
407  * @return Operation status.
408  */
409 GoFx(kStatus) GoControl_EndExposureAutoSet(GoControl control);
410 
411 /**
412  * Reads the list of available sensor files.
413  *
414  * @public @memberof GoControl
415  * @version Introduced in firmware 4.0.10.27
416  * @param control GoControl object.
417  * @param files List to be populated with file names (kArrayList<kText64>).
418  * @param extensionFilter Can be used to filter the file list: "job", "rec" or null for all.
419  * @return Operation status.
420  */
421 GoFx(kStatus) GoControl_ReadFileList(GoControl control, kArrayList files, const kChar* extensionFilter);
422 
423 /**
424  * Reads a file from the connected sensor.
425  *
426  * @public @memberof GoControl
427  * @version Introduced in firmware 4.0.10.27
428  * @param control GoControl object.
429  * @param fileName Name of remote file to be read.
430  * @param data Receives a pointer to a buffer containing the file data.
431  * @param size Receives the size of the allocated buffer.
432  * @param allocator Memory allocator, used to allocate the file buffer (or kNULL for default).
433  * @return Operation status.
434  */
435 GoFx(kStatus) GoControl_ReadFile(GoControl control, const kChar* fileName, kByte** data, kSize* size, kAlloc allocator);
436 
437 /**
438  * Clears the sensor log file.
439  *
440  * @public @memberof GoControl
441  * @version Introduced in firmware 4.0.10.27
442  * @param control GoControl object.
443  * @return Operation status.
444  */
445 GoFx(kStatus) GoControl_ClearLog(GoControl control);
446 
447 /**
448  * Writes a file to the connected sensor.
449  *
450  * @public @memberof GoControl
451  * @version Introduced in firmware 4.0.10.27
452  * @param control GoControl object.
453  * @param fileName Name of remote file to be written.
454  * @param data Pointer to buffer containing the file data.
455  * @param size Size of the file.
456  * @return Operation status.
457  */
458 GoFx(kStatus) GoControl_WriteFile(GoControl control, const kChar* fileName, const kByte* data, kSize size);
459 
460 /**
461  * Copies a file within the connected sensor.
462  *
463  * @public @memberof GoControl
464  * @version Introduced in firmware 4.0.10.27
465  * @param control GoControl object.
466  * @param source Source name for the file to be copied.
467  * @param destination Destination name for the file (maximum 63 characters).
468  * @return Operation status.
469  */
470 GoFx(kStatus) GoControl_CopyFile(GoControl control, const kChar* source, const kChar* destination);
471 
472 /**
473  * Deletes a file within the connected sensor.
474  *
475  * @public @memberof GoControl
476  * @version Introduced in firmware 4.0.10.27
477  * @param control GoControl object.
478  * @param fileName Name of the file to be deleted.
479  * @return Operation status.
480  */
481 GoFx(kStatus) GoControl_DeleteFile(GoControl control, const kChar* fileName);
482 
483 /**
484  * Gets the available storage space remaining for user files.
485  *
486  * @public @memberof GoControl
487  * @version
488  * @param control GoControl object.
489  * @param spaceAvailable Storage space available.
490  * @return Operation status.
491  */
492 GoFx(kStatus) GoControl_GetUserStorageFree(GoControl control, k64u* spaceAvailable);
493 
494 /**
495  * Gets the storage space used for user files.
496  *
497  * @public @memberof GoControl
498  * @version
499  * @param control GoControl object.
500  * @param spaceUsed Storage space used.
501  * @return Operation status.
502  */
503 GoFx(kStatus) GoControl_GetUserStorageUsed(GoControl control, k64u* spaceUsed);
504 
505 /**
506  * Gets the name of the default job file to be loaded on boot.
507  *
508  * @public @memberof GoControl
509  * @version Introduced in firmware 4.0.10.27
510  * @param control GoControl object.
511  * @param fileName Receives name of the default job.
512  * @param capacity Name buffer capacity.
513  * @return Operation status.
514  */
515 GoFx(kStatus) GoControl_GetDefaultJob(GoControl control, kChar* fileName, kSize capacity);
516 
517 /**
518  * Sets a default job file to be loaded on boot.
519  *
520  * @public @memberof GoControl
521  * @version Introduced in firmware 4.0.10.27
522  * @param control GoControl object.
523  * @param fileName Name of the default file.
524  * @return Operation status.
525  */
526 GoFx(kStatus) GoControl_SetDefaultJob(GoControl control, const kChar* fileName);
527 
528 /**
529  * Gets the name of the loaded job file and whether it has been modified since loading.
530  *
531  * @public @memberof GoControl
532  * @version Introduced in firmware 4.0.10.27
533  * @param control GoControl object.
534  * @param fileName Receives name of the loaded file.
535  * @param capacity Name buffer capacity.
536  * @param isModified Receives the status of whether the loaded job has been modified.
537  * @return Operation status.
538  */
539 GoFx(kStatus) GoControl_GetLoadedJob(GoControl control, kChar* fileName, kSize capacity, kBool* isModified);
540 
541 /**
542  * Restores factory default settings.
543  *
544  * @public @memberof GoControl
545  * @version Introduced in firmware 4.0.10.27
546  * @param control GoControl object.
547  * @param restoreAddress kTRUE to restore the factory default IP address; kFALSE otherwise.
548  * @return Operation status.
549  */
550 GoFx(kStatus) GoControl_RestoreFactory(GoControl control, kBool restoreAddress);
551 
552 /**
553  * Reboots the main sensor and any connected buddy sensors.
554  *
555  * @public @memberof GoControl
556  * @version Introduced in firmware 4.0.10.27
557  * @param control GoControl object.
558  * @return Operation status.
559  */
560 GoFx(kStatus) GoControl_Reset(GoControl control);
561 
562 /**
563  * Resets the encoder value. NOTE: This is only possible with a direct encoder
564  * connection to a sensor. Resetting the encoder value when connected to a master
565  * will not work.
566  *
567  * @public @memberof GoControl
568  * @version Introduced in firmware 4.5.3.57
569  * @param control GoControl object.
570  * @return Operation status.
571  */
572 GoFx(kStatus) GoControl_ResetEncoder(GoControl control);
573 
574 /**
575  * Begins a sensor firmware upgrade.
576  *
577  * Use the GoControl_GetUpgradeStatus function to poll for upgrade completion.
578  *
579  * @public @memberof GoControl
580  * @version Introduced in firmware 4.0.10.27
581  * @param control GoControl object.
582  * @param data Pointer to buffer containing upgrade file.
583  * @param size Size of upgrade file.
584  * @return Operation status.
585  * @see GoControl_GetUpgradeStatus
586  */
587 GoFx(kStatus) GoControl_BeginUpgrade(GoControl control, void* data, kSize size);
588 
589 /**
590  * Polls for upgrade status.
591  *
592  * @public @memberof GoControl
593  * @version Introduced in firmware 4.0.10.27
594  * @param control GoControl object.
595  * @param complete Receives boolean indicating upgrade completion.
596  * @param succeeded If complete, receives boolean indicating whether upgrade was successful.
597  * @param progress If not complete, receives integer percentage indicating progress.
598  * @return Operation status.
599  */
600 GoFx(kStatus) GoControl_GetUpgradeStatus(GoControl control, kBool* complete, kBool* succeeded, k32s* progress);
601 
602 /**
603  * Gets the current time stamp value(common among all synchronized sensors).
604  *
605  * @public @memberof GoControl
606  * @version Introduced in firmware 4.0.10.27
607  * @param control GoControl object.
608  * @param time Receives the time stamp value.
609  * @return Operation status.
610  */
611 GoFx(kStatus) GoControl_GetTimestamp(GoControl control, k64u* time);
612 
613 /**
614  * Gets the current system encoder value.
615  *
616  * @public @memberof GoControl
617  * @version Introduced in firmware 4.0.10.27
618  * @param control GoControl object.
619  * @param encoder Receives encoder value.
620  * @return Operation status.
621  */
622 GoFx(kStatus) GoControl_GetEncoder(GoControl control, k64s* encoder);
623 
624 /**
625  * Sends a software trigger to the sensor.
626  *
627  * @public @memberof GoControl
628  * @version Introduced in firmware 4.0.10.27
629  * @param control GoControl object.
630  * @return Operation status.
631  */
632 GoFx(kStatus) GoControl_Trigger(GoControl control);
633 
634 /**
635  * Creates and downloads a backup of sensor files.
636  *
637  * @public @memberof GoControl
638  * @version Introduced in firmware 4.0.10.27
639  * @param control GoControl object.
640  * @param fileData Receives a pointer to a buffer containing the backup data.
641  * @param size Receives the size of the allocated buffer.
642  * @param allocator Memory allocator, used to allocate the backup buffer (or kNULL for default).
643  * @return Operation status.
644  */
645 GoFx(kStatus) GoControl_Backup(GoControl control, kByte** fileData, kSize* size, kAlloc allocator);
646 
647 /**
648  * Restores a backup of sensor files.
649  *
650  * @public @memberof GoControl
651  * @version Introduced in firmware 4.0.10.27
652  * @param control GoControl object.
653  * @param fileData Pointer to a buffer containing the backup data to be restored.
654  * @param size Size of the backup buffer.
655  * @return Operation status.
656  */
657 GoFx(kStatus) GoControl_Restore(GoControl control, const kByte* fileData, kSize size);
658 
659 /**
660  * Schedules a digital output.
661  *
662  * @public @memberof GoControl
663  * @version Introduced in firmware 4.0.10.27
664  * @param control GoControl object.
665  * @param index The digital output index.
666  * @param target The time or position target (uS or mm), depending on the configured domain. Ignored if
667  * scheduling disabled or pulsed mode enabled.
668  * @param value The value of scheduled output (0-Low or 1-High). Ignored if pulsed mode enabled.
669  * @return Operation status.
670  */
671 GoFx(kStatus) GoControl_ScheduleDigital(GoControl control, k16u index, k64s target, k8u value);
672 
673 /**
674  * Schedules an analog output.
675  *
676  * @public @memberof GoControl
677  * @version Introduced in firmware 4.0.10.27
678  * @param control GoControl object.
679  * @param index The analog output index.
680  * @param target The time or position target (uS or mm), depending on the configured domain. Ignored if
681  * scheduling disabled.
682  * @param value The value of the scheduled output (mA).
683  * @return Operation status.
684  */
685 GoFx(kStatus) GoControl_ScheduleAnalog(GoControl control, k16u index, k64s target, k32s value);
686 
687 /**
688  * Retrieves a set of various sensor states for the sensor associated with the control connection.
689  *
690  * @public @memberof GoControl
691  * @version Introduced in firmware 4.0.10.27
692  * @param control GoControl object.
693  * @param states A struct of current sensor states.
694  * @return Operation status.
695  */
696 GoFx(kStatus) GoControl_GetStates(GoControl control, GoStates* states);
697 
698 /**
699  * Enables recording on the sensor.
700  *
701  * @public @memberof GoControl
702  * @version Introduced in firmware 4.0.10.27
703  * @param control GoControl object.
704  * @param enable Enable or disable recording.
705  * @return Operation status.
706  */
707 GoFx(kStatus) GoControl_SetRecordingEnabled(GoControl control, kBool enable);
708 
709 /**
710  * Gets the sensor's recording state.
711  *
712  * @public @memberof GoControl
713  * @version Introduced in firmware 4.0.10.27
714  * @param control GoControl object.
715  * @param enabled Receives the recording state.
716  * @return Operation status.
717  */
718 GoFx(kStatus) GoControl_GetRecordingEnabled(GoControl control, kBool* enabled);
719 
720 /**
721  * Sets the sensor's data input source.
722  *
723  * @public @memberof GoControl
724  * @version Introduced in firmware 4.0.10.27
725  * @param control GoControl object.
726  * @param source The input source to set.
727  * @return Operation status.
728  */
729 GoFx(kStatus) GoControl_SetInputSource(GoControl control, GoInputSource source);
730 
731 /**
732  * Gets the sensor's data input source.
733  *
734  * @public @memberof GoControl
735  * @version Introduced in firmware 4.0.10.27
736  * @param control GoControl object.
737  * @param source Receives the data source used by the sensor.
738  * @return Operation status.
739  */
740 GoFx(kStatus) GoControl_GetInputSource(GoControl control, GoInputSource* source);
741 
742 /**
743  * Clear the sensor's replay data.
744  *
745  * @public @memberof GoControl
746  * @version Introduced in firmware 4.0.10.27
747  * @param control GoControl object.
748  * @return Operation status.
749  */
750 GoFx(kStatus) GoControl_ClearReplayData(GoControl control);
751 
752 /**
753  * Simulate the current frame stored on the sensor's live replay buffer.
754  *
755  * @public @memberof GoControl
756  * @version Introduced in firmware 4.0.10.27
757  * @param control GoControl object.
758  * @param isBufferValid Represents whether the specified data input source contained valid data to simulate against.
759  * @return Operation status.
760  */
761 GoFx(kStatus) GoControl_Simulate(GoControl control, kBool* isBufferValid);
762 
763 /**
764  * Clear the sensor's measurement statistics.
765  *
766  * @public @memberof GoControl
767  * @version Introduced in firmware 4.0.10.27
768  * @param control GoControl object.
769  * @return Operation status.
770  */
771 GoFx(kStatus) GoControl_ClearMeasurementStats(GoControl control);
772 
773 /**
774  * Seek to the specified frame position for a replay.
775  *
776  * @public @memberof GoControl
777  * @version Introduced in firmware 4.0.10.27
778  * @param control GoControl object.
779  * @param position Replay frame position.
780  * @return Operation status.
781  */
782 GoFx(kStatus) GoControl_PlaybackSeek(GoControl control, kSize position);
783 
784 /**
785  * Advance one frame in a replay.
786  *
787  * @public @memberof GoControl
788  * @version Introduced in firmware 4.0.10.27
789  * @param control GoControl object.
790  * @param direction The direction to seek.
791  * @return Operation status.
792  */
793 GoFx(kStatus) GoControl_PlaybackStep(GoControl control, GoSeekDirection direction);
794 
795 /**
796  * Get the current frame position in a replay.
797  *
798  * @public @memberof GoControl
799  * @version Introduced in firmware 4.0.10.27
800  * @param control GoControl object.
801  * @param position Replay frame position.
802  * @param count Replay frame count.
803  * @return Operation status.
804  */
805 GoFx(kStatus) GoControl_PlaybackPosition(GoControl control, kSize* position, kSize* count);
806 
807 /**
808  * Export an intensity bitmap file to local storage.
809  *
810  * @public @memberof GoControl
811  * @version Introduced in firmware 4.0.10.27
812  * @param control GoControl object.
813  * @param type The type of data to export.
814  * @param source The data source to obtain data from.
815  * @param dstFileName The destination file name.
816  * @return Operation status.
817  */
818 GoFx(kStatus) GoControl_ExportBitmap(GoControl control,
820  GoDataSource source,
821  const kChar* dstFileName);
822 
823 /**
824  * Export a CSV file to local storage.
825  *
826  * @public @memberof GoControl
827  * @version Introduced in firmware 4.0.10.27
828  * @param control GoControl object.
829  * @param dstFileName The destination file name.
830  * @return Operation status.
831  */
832 GoFx(kStatus) GoControl_ExportCsv(GoControl control, const kChar* dstFileName);
833 
834 /**
835  * Enable or disable sensor AutoStart.
836  *
837  * @public @memberof GoControl
838  * @version Introduced in firmware 4.0.10.27
839  * @param control GoControl object.
840  * @param enable kTRUE to enable AutoStart, kFALSE to disable it.
841  * @return Operation status.
842  */
843 GoFx(kStatus) GoControl_SetAutoStartEnabled(GoControl control, kBool enable);
844 
845 /**
846  * Returns the state of sensor AutoStart.
847  *
848  * @public @memberof GoControl
849  * @version Introduced in firmware 4.0.10.27
850  * @param control GoControl object.
851  * @param enabled A pointer to store the boolean state of sensor AutoStart. kTRUE if enabled and kFALSE if disabled.
852  * @return Operation status.
853  */
854 GoFx(kStatus) GoControl_GetAutoStartEnabled(GoControl control, kBool* enabled);
855 
856 /**
857 * Set sensor voltage settings (only on G3210)
858 *
859 * @public @memberof GoControl
860 * @version Introduced in firmware 4.7.5.25
861 * @param control GoControl object.
862 * @param voltage Either 48V or 24V operation
863 * @param cableLength When in 24V operation mode the cable length (millimeters) must also be supplied
864 * @return Operation status.
865 */
866 GoFx(kStatus) GoControl_SetVoltage(GoControl control, GoVoltageSetting voltage, k32u cableLength);
867 
868 /**
869 * Get the sensor voltage settings (only on G3210)
870 *
871 * @public @memberof GoControl
872 * @version Introduced in firmware 4.7.5.25
873 * @param control GoControl object.
874 * @param voltage Destination to store voltage (can be kNULL)
875 * @param cableLength Destination to store cable length (millimeters) (can be kNULL)
876 * @return Operation status.
877 */
878 GoFx(kStatus) GoControl_GetVoltage(GoControl control, GoVoltageSetting *voltage, k32u *cableLength);
879 
880 /**
881 * Enable or disable sensor Quick Edit.
882 *
883 * @public @memberof GoControl
884 * @version Introduced in firmware 4.7.11.5
885 * @param control GoControl object.
886 * @param enable kTRUE to enable Quick Edit, kFALSE to disable it.
887 * @return Operation status.
888 */
889 GoFx(kStatus) GoControl_SetQuickEditEnabled(GoControl control, kBool enable);
890 
891 /**
892 * Returns the state of sensor Quick Edit.
893 *
894 * @public @memberof GoControl
895 * @version Introduced in firmware4.7.11.5
896 * @param control GoControl object.
897 * @param enabled A pointer to store the boolean state of sensor Quick Edit. kTRUE if enabled and kFALSE if disabled.
898 * @return Operation status.
899 */
900 GoFx(kStatus) GoControl_GetQuickEditEnabled(GoControl control, kBool* enabled);
901 
902 /**
903 * Sets the control port number
904 *
905 * @public @memberof GoControl
906  * @version Introduced in firmware 4.8.2.76
907 * @param control GoControl object.
908 * @param port Port number for control channel
909 * @return Operation status.
910 */
911 GoFx(kStatus) GoControl_SetControlPort(GoControl control, k32u port);
912 
913 /**
914 * Returns the control port number
915 *
916 * @public @memberof GoControl
917  * @version Introduced in firmware 5.2.18.3
918 * @param control GoControl object.
919 * @return Control port number.
920 */
921 GoFx(k32u) GoControl_ControlPort(GoControl control);
922 
923 /**
924 * Sets the upgrade Port Number
925 *
926 * @public @memberof GoControl
927  * @version Introduced in firmware 4.8.2.76
928 * @param control GoControl object.
929 * @param port Port Number for upgrade channel
930 * @return Operation status.
931 */
932 GoFx(kStatus) GoControl_SetUpgradePort(GoControl control, k32u port);
933 
934 /**
935 * Returns the upgrade Port Number
936 *
937 * @public @memberof GoControl
938  * @version Introduced in firmware 5.2.18.3
939 * @param control GoControl object.
940 * @return Upgrade port number.
941 */
942 GoFx(k32u) GoControl_UpgradePort(GoControl control);
943 
944 /**
945  * Sets one or more runtime variables.
946  *
947  * @public @memberof GoControl
948  * @version Introduced in firmware 5.2.18.3
949  * @param control GoControl object.
950  * @param startIndex Index of the first variable to set.
951  * @param length Number of variables to set.
952  * @param values Array containing the values to set.
953  * @return Operation status.
954  */
955 GoFx(kStatus) GoControl_SetRuntimeVariables(GoControl control, kSize startIndex, kSize length, const k32s* values);
956 
957 /**
958  * Gets the number of available runtime variables.
959  *
960  * @public @memberof GoControl
961  * @version Introduced in firmware 5.2.18.3
962  * @param control GoControl object.
963  * @param count Receives variable count.
964  * @return Operation status.
965  */
966 GoFx(kStatus) GoControl_RuntimeVariableCount(GoControl control, kSize* count);
967 
968 /**
969  * Gets one or more runtime variables.
970  *
971  * @public @memberof GoControl
972  * @version Introduced in firmware 5.2.18.3
973  * @param control GoControl object.
974  * @param startIndex Index of the first variable to get.
975  * @param length Number of variables to get.
976  * @param values Receives the variable values.
977  * @return Operation status.
978  */
979 GoFx(kStatus) GoControl_GetRuntimeVariables(GoControl control, kSize startIndex, kSize length, k32s* values);
980 
981 /**
982  * Sets a sensor flag value.
983  *
984  * @public @memberof GoControl
985  * @version Introduced in firmware 5.2.18.3
986  * @param control GoControl object.
987  * @param name Name of the flag.
988  * @param value Value of the flag (in text).
989  * @return Operation status.
990  */
991 GoFx(kStatus) GoControl_SetFlag(GoControl control, const kChar* name, const kChar* value);
992 
993 /**
994  * Gets a sensor flag value.
995  *
996  * @public @memberof GoControl
997  * @version Introduced in firmware 5.2.18.3
998  * @param control GoControl object.
999  * @param name Name of the flag.
1000  * @param value String object to receive the value (in text).
1001  * @return Operation status.
1002  */
1003 GoFx(kStatus) GoControl_GetFlag(GoControl control, const kChar* name, kString value);
1004 
1005 kEndHeader()
1006 #include <GoSdk/Internal/GoControl.x.h>
1007 
1008 #endif
Sensor state, login, alignment information, recording state, playback source, uptime, playback information, and auto-start setting state.
Definition: GoSdkDef.h:717
Represents a data input source.
Represents read-only sensor information.
kStatus GoControl_DeleteFile(GoControl control, const kChar *fileName)
Deletes a file within the connected sensor.
kStatus GoControl_SetDefaultJob(GoControl control, const kChar *fileName)
Sets a default job file to be loaded on boot.
Represents a playback seek direction.
kStatus GoControl_AssignBuddies(GoControl control, const k32u *buddyIds, kSize count)
Start assigning multiple buddy sensors.
kStatus GoControl_SetQuickEditEnabled(GoControl control, kBool enable)
Enable or disable sensor Quick Edit.
Represents the replay export source type.
kStatus GoControl_RuntimeVariableCount(GoControl control, kSize *count)
Gets the number of available runtime variables.
kStatus GoControl_GetUserStorageUsed(GoControl control, k64u *spaceUsed)
Gets the storage space used for user files.
Represents a set of sensor command connections (control, upgrade).
kStatus GoControl_ChangeBuddy(GoControl control, kBool add, k32u buddyId)
Assigns or removes a buddy sensor.
kStatus GoControl_PlaybackStep(GoControl control, GoSeekDirection direction)
Advance one frame in a replay.
kStatus GoControl_ExportCsv(GoControl control, const kChar *dstFileName)
Export a CSV file to local storage.
kStatus GoControl_ClearAlignment(GoControl control)
Clears the sensor alignment.
kStatus GoControl_BeginExposureAutoSet(GoControl control, GoRole role)
Sends an exposure auto set command to a sensor, but doesn't wait for the response.
kStatus GoControl_SetFlag(GoControl control, const kChar *name, const kChar *value)
Sets a sensor flag value.
Represents a user role.
kStatus GoControl_GetTimestamp(GoControl control, k64u *time)
Gets the current time stamp value(common among all synchronized sensors).
kStatus GoControl_GetAlignmentReference(GoControl control, GoAlignmentRef *reference)
Gets the alignment reference for a sensor.
kStatus GoControl_CopyFile(GoControl control, const kChar *source, const kChar *destination)
Copies a file within the connected sensor.
kStatus GoControl_Reset(GoControl control)
Reboots the main sensor and any connected buddy sensors.
Represents a data source.
kStatus GoControl_GetUpgradeStatus(GoControl control, kBool *complete, kBool *succeeded, k32s *progress)
Polls for upgrade status.
kStatus GoControl_GetSensorInfoV2(GoControl control, GoSensorInfo localInfo, kArrayList remoteInfoList, kArrayList buddyInfoList)
Gets current sensor state information.
kStatus GoControl_GetSensorInfo(GoControl control, GoSensorInfo localInfo, kArrayList remoteInfoList)
Gets current sensor state information.
kStatus GoControl_GetAutoStartEnabled(GoControl control, kBool *enabled)
Returns the state of sensor AutoStart.
Represents either 48V or 24V (with cable length) operation. Only relevant on G3210.
kStatus GoControl_GetQuickEditEnabled(GoControl control, kBool *enabled)
Returns the state of sensor Quick Edit.
kStatus GoControl_ResetEncoder(GoControl control)
Resets the encoder value.
kStatus GoControl_BeginScheduledStart(GoControl control, k64s value)
Sends a scheduled start command to a sensor with the currently selected input source, but doesn't wait for the response.
kStatus GoControl_EndAlignment(GoControl control)
Waits for a alignment response from a sensor.
kStatus GoControl_SetRuntimeVariables(GoControl control, kSize startIndex, kSize length, const k32s *values)
Sets one or more runtime variables.
kStatus GoControl_ClearReplayData(GoControl control)
Clear the sensor's replay data.
Declares the GoSensorInfo class.
kStatus GoControl_ReadFile(GoControl control, const kChar *fileName, kByte **data, kSize *size, kAlloc allocator)
Reads a file from the connected sensor.
kStatus GoControl_Login(GoControl control, GoUser user, const kChar *password)
Logs into the sensor using the specified user name and password.
kStatus GoControl_EndSnapshot(GoControl control)
Waits for a snapshot response from a sensor.
kStatus GoControl_GetStates(GoControl control, GoStates *states)
Retrieves a set of various sensor states for the sensor associated with the control connection...
kStatus GoControl_GetVoltage(GoControl control, GoVoltageSetting *voltage, k32u *cableLength)
Get the sensor voltage settings (only on G3210)
kStatus GoControl_Close(GoControl control)
Closes all open command connections.
kStatus GoControl_SetUpgradePort(GoControl control, k32u port)
Sets the upgrade Port Number.
kStatus GoControl_BeginAlignment(GoControl control)
Sends a alignment command to a sensor, but doesn't wait for the response.
kStatus GoControl_GetRuntimeVariables(GoControl control, kSize startIndex, kSize length, k32s *values)
Gets one or more runtime variables.
kStatus GoControl_EndExposureAutoSet(GoControl control)
Waits for a exposure auto set response from a sensor.
Essential SDK declarations.
kStatus GoControl_GetInputSource(GoControl control, GoInputSource *source)
Gets the sensor's data input source.
k32u GoControl_UpgradePort(GoControl control)
Returns the upgrade Port Number.
kStatus GoControl_EndScheduledStart(GoControl control)
Waits for a scheduled start response from a sensor.
kStatus GoControl_SetAlignmentReference(GoControl control, GoAlignmentRef reference)
Sets the alignment reference for a sensor.
kStatus GoControl_RemoveBuddies(GoControl control, const k32u *buddyIds, kSize count)
Remove multiple buddy sensors.
k32u GoControl_ControlPort(GoControl control)
Returns the control port number.
kStatus GoControl_Trigger(GoControl control)
Sends a software trigger to the sensor.
kStatus GoControl_SetRecordingEnabled(GoControl control, kBool enable)
Enables recording on the sensor.
kStatus GoControl_BeginSnapshot(GoControl control)
Sends a snapshot command to a sensor with the currently selected input source, but doesn't wait for t...
kStatus GoControl_GetDefaultJob(GoControl control, kChar *fileName, kSize capacity)
Gets the name of the default job file to be loaded on boot.
kStatus GoControl_ScheduleAnalog(GoControl control, k16u index, k64s target, k32s value)
Schedules an analog output.
kStatus GoControl_ChangePassword(GoControl control, GoUser user, const kChar *password)
Changes the password associated with the specified user account.
kStatus GoControl_PlaybackSeek(GoControl control, kSize position)
Seek to the specified frame position for a replay.
kStatus GoControl_SetInputSource(GoControl control, GoInputSource source)
Sets the sensor's data input source.
kStatus GoControl_Open(GoControl control, kIpAddress address, k32u controlPort, k32u upgradePort)
Opens connections to the specified sensor IP address.
kStatus GoControl_GetFlag(GoControl control, const kChar *name, kString value)
Gets a sensor flag value.
kStatus GoControl_SetCancelHandler(GoControl control, kCallbackFx function, kPointer receiver)
Sets an I/O cancellation query handler for this control object.
kStatus GoControl_Construct(GoControl *control, kAlloc allocator)
Constructs a GoControl object.
Represents a user id.
kStatus GoControl_ReadFileList(GoControl control, kArrayList files, const kChar *extensionFilter)
Reads the list of available sensor files.
Represents an alignment reference.
kVersion GoControl_ProtocolVersion(GoControl control)
Gets the connected sensor's protocol version.
kStatus GoControl_GetLoadedJob(GoControl control, kChar *fileName, kSize capacity, kBool *isModified)
Gets the name of the loaded job file and whether it has been modified since loading.
kStatus GoControl_BeginUpgrade(GoControl control, void *data, kSize size)
Begins a sensor firmware upgrade.
kStatus GoControl_GetScanMode(GoControl control, GoMode *mode)
Gets the sensor's scan mode.
kStatus GoControl_GetRecordingEnabled(GoControl control, kBool *enabled)
Gets the sensor's recording state.
kStatus GoControl_SetVoltage(GoControl control, GoVoltageSetting voltage, k32u cableLength)
Set sensor voltage settings (only on G3210)
kStatus GoControl_SetAutoStartEnabled(GoControl control, kBool enable)
Enable or disable sensor AutoStart.
kStatus GoControl_Restore(GoControl control, const kByte *fileData, kSize size)
Restores a backup of sensor files.
kStatus GoControl_ClearMeasurementStats(GoControl control)
Clear the sensor's measurement statistics.
kStatus GoControl_ScheduleDigital(GoControl control, k16u index, k64s target, k8u value)
Schedules a digital output.
kBool GoControl_IsCompatible(GoControl control)
Reports whether the GoControl object is compatible with the sensor firmware.
kStatus GoControl_BeginStop(GoControl control)
Sends a stop command to a sensor, but doesn't wait for the response.
kBool GoControl_IsConnected(GoControl control)
Reports whether the control object has been opened.
kStatus GoControl_GetUserStorageFree(GoControl control, k64u *spaceAvailable)
Gets the available storage space remaining for user files.
kStatus GoControl_GetEncoder(GoControl control, k64s *encoder)
Gets the current system encoder value.
Represents a scan mode.
kStatus GoControl_EndStart(GoControl control)
Waits for a start response from a sensor.
kStatus GoControl_EndStop(GoControl control)
Waits for a stop response from a sensor.
kStatus GoControl_Backup(GoControl control, kByte **fileData, kSize *size, kAlloc allocator)
Creates and downloads a backup of sensor files.
kStatus GoControl_RestoreFactory(GoControl control, kBool restoreAddress)
Restores factory default settings.
kStatus GoControl_PlaybackPosition(GoControl control, kSize *position, kSize *count)
Get the current frame position in a replay.
kStatus GoControl_RemoveBuddiesById(GoControl control, const k32u *buddyIds, kSize count)
Remove multiple buddy sensors.
kStatus GoControl_SetControlPort(GoControl control, k32u port)
Sets the control port number.
kStatus GoControl_WriteFile(GoControl control, const kChar *fileName, const kByte *data, kSize size)
Writes a file to the connected sensor.
kStatus GoControl_Simulate(GoControl control, kBool *isBufferValid)
Simulate the current frame stored on the sensor's live replay buffer.
kStatus GoControl_ExportBitmap(GoControl control, GoReplayExportSourceType type, GoDataSource source, const kChar *dstFileName)
Export an intensity bitmap file to local storage.
kStatus GoControl_BeginStart(GoControl control)
Sends a start command to a sensor with the currently selected input source, but doesn't wait for the ...
kStatus GoControl_ClearLog(GoControl control)
Clears the sensor log file.