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