18 #define NT_DEFAULT_PORT 1735
27 NT_BOOLEAN_ARRAY = 0x10,
28 NT_DOUBLE_ARRAY = 0x20,
29 NT_STRING_ARRAY = 0x40,
54 NT_NOTIFY_IMMEDIATE = 0x01,
55 NT_NOTIFY_LOCAL = 0x02,
57 NT_NOTIFY_DELETE = 0x08,
58 NT_NOTIFY_UPDATE = 0x10,
59 NT_NOTIFY_FLAGS = 0x20
84 unsigned long long last_change;
124 unsigned int remote_port;
125 unsigned long long last_update;
126 unsigned int protocol_version;
143 unsigned int version;
154 unsigned int call_uid;
175 void NT_GetEntryValue(
const char *name,
size_t name_len,
187 int NT_SetEntryValue(
const char *name,
size_t name_len,
202 void NT_SetEntryTypeValue(
const char *name,
size_t name_len,
207 void NT_SetEntryFlags(
const char *name,
size_t name_len,
unsigned int flags);
211 unsigned int NT_GetEntryFlags(
const char *name,
size_t name_len);
225 void NT_DeleteEntry(
const char *name,
size_t name_len);
236 void NT_DeleteAllEntries(
void);
252 struct NT_EntryInfo *NT_GetEntryInfo(
const char *prefix,
size_t prefix_len,
253 unsigned int types,
size_t *count);
270 void NT_SetListenerOnStart(
void (*on_start)(
void *data),
void *data);
271 void NT_SetListenerOnExit(
void (*on_exit)(
void *data),
void *data);
273 typedef void (*NT_EntryListenerCallback)(
274 unsigned int uid,
void *data,
const char *
name,
size_t name_len,
275 const struct NT_Value *value,
unsigned int flags);
277 typedef void (*NT_ConnectionListenerCallback)(
278 unsigned int uid,
void *data,
int connected,
281 unsigned int NT_AddEntryListener(
const char *prefix,
size_t prefix_len,
282 void *data, NT_EntryListenerCallback callback,
284 void NT_RemoveEntryListener(
unsigned int entry_listener_uid);
285 unsigned int NT_AddConnectionListener(
void *data,
286 NT_ConnectionListenerCallback callback,
287 int immediate_notify);
288 void NT_RemoveConnectionListener(
unsigned int conn_listener_uid);
290 int NT_NotifierDestroyed();
296 void NT_SetRpcServerOnStart(
void (*on_start)(
void *data),
void *data);
297 void NT_SetRpcServerOnExit(
void (*on_exit)(
void *data),
void *data);
299 typedef char *(*NT_RpcCallback)(
void *data,
const char *name,
size_t name_len,
300 const char *params,
size_t params_len,
301 size_t *results_len);
303 void NT_CreateRpc(
const char *name,
size_t name_len,
const char *def,
304 size_t def_len,
void *data, NT_RpcCallback callback);
305 void NT_CreatePolledRpc(
const char *name,
size_t name_len,
const char *def,
309 void NT_PostRpcResponse(
unsigned int rpc_id,
unsigned int call_uid,
310 const char *result,
size_t result_len);
312 unsigned int NT_CallRpc(
const char *name,
size_t name_len,
const char *params,
314 char *NT_GetRpcResult(
int blocking,
unsigned int call_uid,
size_t *result_len);
318 int NT_UnpackRpcDefinition(
const char *packed,
size_t packed_len,
320 char *NT_PackRpcValues(
const struct NT_Value **values,
size_t values_len,
322 struct NT_Value **NT_UnpackRpcValues(
const char *packed,
size_t packed_len,
323 const NT_Type *types,
size_t types_len);
328 void NT_SetNetworkIdentity(
const char *name,
size_t name_len);
339 void NT_StartServer(
const char *persist_filename,
const char *listen_address,
345 void NT_StopServer(
void);
354 void NT_StartClient(
const char *server_name,
unsigned int port);
359 void NT_StopClient(
void);
364 void NT_StopRpcServer(
void);
369 void NT_StopNotifier(
void);
377 void NT_SetUpdateRate(
double interval);
394 const char *NT_SavePersistent(
const char *filename);
395 const char *NT_LoadPersistent(
const char *filename,
396 void (*warn)(
size_t line,
const char *msg));
403 void NT_DisposeValue(
struct NT_Value *value);
406 void NT_InitValue(
struct NT_Value *value);
409 void NT_DisposeString(
struct NT_String *str);
412 void NT_InitString(
struct NT_String *str);
415 enum NT_Type NT_GetType(
const char *name,
size_t name_len);
433 void NT_DisposeEntryInfoArray(
struct NT_EntryInfo *arr,
size_t count);
452 unsigned long long NT_Now(
void);
455 typedef void (*NT_LogFunc)(
unsigned int level,
const char *file,
456 unsigned int line,
const char *msg);
457 void NT_SetLogger(NT_LogFunc func,
unsigned int min_level);
476 char *NT_AllocateCharArray(
size_t size);
489 int *NT_AllocateBooleanArray(
size_t size);
502 double *NT_AllocateDoubleArray(
size_t size);
515 struct NT_String *NT_AllocateStringArray(
size_t size);
522 void NT_FreeCharArray(
char *v_char);
529 void NT_FreeDoubleArray(
double *v_double);
536 void NT_FreeBooleanArray(
int *v_boolean);
548 void NT_FreeStringArray(
struct NT_String *v_string,
size_t arr_size);
557 enum NT_Type NT_GetValueType(
const struct NT_Value *value);
568 int NT_GetValueBoolean(
const struct NT_Value *value,
569 unsigned long long *last_change,
int *v_boolean);
580 int NT_GetValueDouble(
const struct NT_Value *value,
581 unsigned long long *last_change,
double *v_double);
597 char *NT_GetValueString(
const struct NT_Value *value,
598 unsigned long long *last_change,
size_t *str_len);
614 char *NT_GetValueRaw(
const struct NT_Value *value,
615 unsigned long long *last_change,
size_t *raw_len);
631 int *NT_GetValueBooleanArray(
const struct NT_Value *value,
632 unsigned long long *last_change,
size_t *arr_size);
648 double *NT_GetValueDoubleArray(
const struct NT_Value *value,
649 unsigned long long *last_change,
669 unsigned long long *last_change,
684 int NT_GetEntryBoolean(
const char *name,
size_t name_len,
685 unsigned long long *last_change,
int *v_boolean);
699 int NT_GetEntryDouble(
const char *name,
size_t name_len,
700 unsigned long long *last_change,
double *v_double);
716 char *NT_GetEntryString(
const char *name,
size_t name_len,
717 unsigned long long *last_change,
size_t *str_len);
733 char *NT_GetEntryRaw(
const char *name,
size_t name_len,
734 unsigned long long *last_change,
size_t *raw_len);
750 int *NT_GetEntryBooleanArray(
const char *name,
size_t name_len,
751 unsigned long long *last_change,
size_t *arr_size);
767 double *NT_GetEntryDoubleArray(
const char *name,
size_t name_len,
768 unsigned long long *last_change,
788 NT_String *NT_GetEntryStringArray(
const char *name,
size_t name_len,
789 unsigned long long *last_change,
804 int NT_SetEntryBoolean(
const char *name,
size_t name_len,
int v_boolean,
817 int NT_SetEntryDouble(
const char *name,
size_t name_len,
double v_double,
831 int NT_SetEntryString(
const char *name,
size_t name_len,
const char *
str,
832 size_t str_len,
int force);
845 int NT_SetEntryRaw(
const char *name,
size_t name_len,
const char *raw,
846 size_t raw_len,
int force);
859 int NT_SetEntryBooleanArray(
const char *name,
size_t name_len,
const int *arr,
860 size_t size,
int force);
873 int NT_SetEntryDoubleArray(
const char *name,
size_t name_len,
const double *arr,
874 size_t size,
int force);
887 int NT_SetEntryStringArray(
const char *name,
size_t name_len,
888 const struct NT_String *arr,
size_t size,
int force);
NetworkTables RPC Call Data.
Definition: ntcore_c.h:152
NetworkTables RPC Result Definition.
Definition: ntcore_c.h:136
NetworkTables Connection Information.
Definition: ntcore_c.h:121
NetworkTables Entry Value.
Definition: ntcore_c.h:82
NetworkTables Entry Information.
Definition: ntcore_c.h:106
unsigned int flags
Entry flags.
Definition: ntcore_c.h:114
unsigned long long last_change
Timestamp of last change to entry (type or value).
Definition: ntcore_c.h:117
struct NT_String name
Entry name.
Definition: ntcore_c.h:108
A NetworkTables string.
Definition: ntcore_c.h:67
NetworkTables RPC Definition.
Definition: ntcore_c.h:142
NetworkTables RPC Parameter Definition.
Definition: ntcore_c.h:130
char * str
String contents (UTF-8).
Definition: ntcore_c.h:73
size_t len
Length of the string in bytes.
Definition: ntcore_c.h:78
enum NT_Type type
Entry type.
Definition: ntcore_c.h:111