18 #define NT_DEFAULT_PORT 1735
27 NT_BOOLEAN_ARRAY = 0x10,
28 NT_DOUBLE_ARRAY = 0x20,
29 NT_STRING_ARRAY = 0x40,
34 enum NT_EntryFlags { NT_PERSISTENT = 0x01 };
52 NT_NOTIFY_IMMEDIATE = 0x01,
53 NT_NOTIFY_LOCAL = 0x02,
55 NT_NOTIFY_DELETE = 0x08,
56 NT_NOTIFY_UPDATE = 0x10,
57 NT_NOTIFY_FLAGS = 0x20
82 unsigned long long last_change;
122 unsigned int remote_port;
123 unsigned long long last_update;
124 unsigned int protocol_version;
141 unsigned int version;
152 unsigned int call_uid;
173 void NT_GetEntryValue(
const char* name,
size_t name_len,
186 int NT_SetDefaultEntryValue(
const char* name,
size_t name_len,
187 const struct NT_Value* default_value);
198 int NT_SetEntryValue(
const char* name,
size_t name_len,
213 void NT_SetEntryTypeValue(
const char* name,
size_t name_len,
218 void NT_SetEntryFlags(
const char* name,
size_t name_len,
unsigned int flags);
222 unsigned int NT_GetEntryFlags(
const char* name,
size_t name_len);
236 void NT_DeleteEntry(
const char* name,
size_t name_len);
247 void NT_DeleteAllEntries(
void);
263 struct NT_EntryInfo* NT_GetEntryInfo(
const char* prefix,
size_t prefix_len,
264 unsigned int types,
size_t* count);
281 void NT_SetListenerOnStart(
void (*on_start)(
void* data),
void* data);
282 void NT_SetListenerOnExit(
void (*on_exit)(
void* data),
void* data);
284 typedef void (*NT_EntryListenerCallback)(
unsigned int uid,
void* data,
285 const char*
name,
size_t name_len,
289 typedef void (*NT_ConnectionListenerCallback)(
290 unsigned int uid,
void* data,
int connected,
293 unsigned int NT_AddEntryListener(
const char* prefix,
size_t prefix_len,
294 void* data, NT_EntryListenerCallback callback,
296 void NT_RemoveEntryListener(
unsigned int entry_listener_uid);
297 unsigned int NT_AddConnectionListener(
void* data,
298 NT_ConnectionListenerCallback callback,
299 int immediate_notify);
300 void NT_RemoveConnectionListener(
unsigned int conn_listener_uid);
302 int NT_NotifierDestroyed();
308 void NT_SetRpcServerOnStart(
void (*on_start)(
void* data),
void* data);
309 void NT_SetRpcServerOnExit(
void (*on_exit)(
void* data),
void* data);
311 typedef char* (*NT_RpcCallback)(
void* data,
const char* name,
size_t name_len,
312 const char* params,
size_t params_len,
316 void NT_CreateRpc(
const char* name,
size_t name_len,
const char* def,
317 size_t def_len,
void* data, NT_RpcCallback callback);
318 void NT_CreatePolledRpc(
const char* name,
size_t name_len,
const char* def,
322 int NT_PollRpcTimeout(
int blocking,
double time_out,
324 void NT_PostRpcResponse(
unsigned int rpc_id,
unsigned int call_uid,
325 const char* result,
size_t result_len);
327 unsigned int NT_CallRpc(
const char* name,
size_t name_len,
const char* params,
329 char* NT_GetRpcResult(
int blocking,
unsigned int call_uid,
size_t* result_len);
330 char* NT_GetRpcResultTimeout(
int blocking,
unsigned int call_uid,
331 double time_out,
size_t* result_len);
332 void NT_CancelBlockingRpcResult(
unsigned int call_uid);
336 int NT_UnpackRpcDefinition(
const char* packed,
size_t packed_len,
338 char* NT_PackRpcValues(
const struct NT_Value** values,
size_t values_len,
340 struct NT_Value** NT_UnpackRpcValues(
const char* packed,
size_t packed_len,
341 const NT_Type* types,
size_t types_len);
346 void NT_SetNetworkIdentity(
const char* name,
size_t name_len);
357 void NT_StartServer(
const char* persist_filename,
const char* listen_address,
363 void NT_StopServer(
void);
368 void NT_StartClientNone(
void);
377 void NT_StartClient(
const char* server_name,
unsigned int port);
389 void NT_StartClientMulti(
size_t count,
const char** server_names,
390 const unsigned int* ports);
395 void NT_StopClient(
void);
403 void NT_SetServer(
const char* server_name,
unsigned int port);
414 void NT_SetServerMulti(
size_t count,
const char** server_names,
415 const unsigned int* ports);
423 void NT_StartDSClient(
unsigned int port);
426 void NT_StopDSClient(
void);
431 void NT_StopRpcServer(
void);
436 void NT_StopNotifier(
void);
444 void NT_SetUpdateRate(
double interval);
461 const char* NT_SavePersistent(
const char* filename);
462 const char* NT_LoadPersistent(
const char* filename,
463 void (*warn)(
size_t line,
const char* msg));
470 void NT_DisposeValue(
struct NT_Value* value);
473 void NT_InitValue(
struct NT_Value* value);
476 void NT_DisposeString(
struct NT_String* str);
479 void NT_InitString(
struct NT_String* str);
482 enum NT_Type NT_GetType(
const char* name,
size_t name_len);
500 void NT_DisposeEntryInfoArray(
struct NT_EntryInfo* arr,
size_t count);
519 unsigned long long NT_Now(
void);
522 typedef void (*NT_LogFunc)(
unsigned int level,
const char* file,
523 unsigned int line,
const char* msg);
524 void NT_SetLogger(NT_LogFunc func,
unsigned int min_level);
543 char* NT_AllocateCharArray(
size_t size);
556 int* NT_AllocateBooleanArray(
size_t size);
569 double* NT_AllocateDoubleArray(
size_t size);
582 struct NT_String* NT_AllocateStringArray(
size_t size);
589 void NT_FreeCharArray(
char* v_char);
596 void NT_FreeDoubleArray(
double* v_double);
603 void NT_FreeBooleanArray(
int* v_boolean);
615 void NT_FreeStringArray(
struct NT_String* v_string,
size_t arr_size);
624 enum NT_Type NT_GetValueType(
const struct NT_Value* value);
635 int NT_GetValueBoolean(
const struct NT_Value* value,
636 unsigned long long* last_change,
int* v_boolean);
647 int NT_GetValueDouble(
const struct NT_Value* value,
648 unsigned long long* last_change,
double* v_double);
664 char* NT_GetValueString(
const struct NT_Value* value,
665 unsigned long long* last_change,
size_t* str_len);
681 char* NT_GetValueRaw(
const struct NT_Value* value,
682 unsigned long long* last_change,
size_t* raw_len);
698 int* NT_GetValueBooleanArray(
const struct NT_Value* value,
699 unsigned long long* last_change,
size_t* arr_size);
715 double* NT_GetValueDoubleArray(
const struct NT_Value* value,
716 unsigned long long* last_change,
736 unsigned long long* last_change,
751 int NT_GetEntryBoolean(
const char* name,
size_t name_len,
752 unsigned long long* last_change,
int* v_boolean);
766 int NT_GetEntryDouble(
const char* name,
size_t name_len,
767 unsigned long long* last_change,
double* v_double);
783 char* NT_GetEntryString(
const char* name,
size_t name_len,
784 unsigned long long* last_change,
size_t* str_len);
800 char* NT_GetEntryRaw(
const char* name,
size_t name_len,
801 unsigned long long* last_change,
size_t* raw_len);
817 int* NT_GetEntryBooleanArray(
const char* name,
size_t name_len,
818 unsigned long long* last_change,
size_t* arr_size);
834 double* NT_GetEntryDoubleArray(
const char* name,
size_t name_len,
835 unsigned long long* last_change,
855 NT_String* NT_GetEntryStringArray(
const char* name,
size_t name_len,
856 unsigned long long* last_change,
871 int NT_SetDefaultEntryBoolean(
const char* name,
size_t name_len,
872 int default_boolean);
884 int NT_SetDefaultEntryDouble(
const char* name,
size_t name_len,
885 double default_double);
898 int NT_SetDefaultEntryString(
const char* name,
size_t name_len,
899 const char* default_value,
size_t default_len);
912 int NT_SetDefaultEntryRaw(
const char* name,
size_t name_len,
913 const char* default_value,
size_t default_len);
926 int NT_SetDefaultEntryBooleanArray(
const char* name,
size_t name_len,
927 const int* default_value,
928 size_t default_size);
941 int NT_SetDefaultEntryDoubleArray(
const char* name,
size_t name_len,
942 const double* default_value,
943 size_t default_size);
956 int NT_SetDefaultEntryStringArray(
const char* name,
size_t name_len,
958 size_t default_size);
972 int NT_SetEntryBoolean(
const char* name,
size_t name_len,
int v_boolean,
985 int NT_SetEntryDouble(
const char* name,
size_t name_len,
double v_double,
999 int NT_SetEntryString(
const char* name,
size_t name_len,
const char*
str,
1000 size_t str_len,
int force);
1013 int NT_SetEntryRaw(
const char* name,
size_t name_len,
const char* raw,
1014 size_t raw_len,
int force);
1027 int NT_SetEntryBooleanArray(
const char* name,
size_t name_len,
const int* arr,
1028 size_t size,
int force);
1041 int NT_SetEntryDoubleArray(
const char* name,
size_t name_len,
const double* arr,
1042 size_t size,
int force);
1055 int NT_SetEntryStringArray(
const char* name,
size_t name_len,
1056 const struct NT_String* arr,
size_t size,
int force);
NetworkTables RPC Call Data.
Definition: ntcore_c.h:150
NetworkTables RPC Result Definition.
Definition: ntcore_c.h:134
NetworkTables Connection Information.
Definition: ntcore_c.h:119
NetworkTables Entry Value.
Definition: ntcore_c.h:80
NetworkTables Entry Information.
Definition: ntcore_c.h:104
unsigned int flags
Entry flags.
Definition: ntcore_c.h:112
unsigned long long last_change
Timestamp of last change to entry (type or value).
Definition: ntcore_c.h:115
struct NT_String name
Entry name.
Definition: ntcore_c.h:106
A NetworkTables string.
Definition: ntcore_c.h:65
NetworkTables RPC Definition.
Definition: ntcore_c.h:140
NetworkTables RPC Parameter Definition.
Definition: ntcore_c.h:128
char * str
String contents (UTF-8).
Definition: ntcore_c.h:71
size_t len
Length of the string in bytes.
Definition: ntcore_c.h:76
enum NT_Type type
Entry type.
Definition: ntcore_c.h:109