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
62 NT_NET_MODE_NONE = 0x00,
63 NT_NET_MODE_SERVER = 0x01,
64 NT_NET_MODE_CLIENT = 0x02,
65 NT_NET_MODE_STARTING = 0x04,
66 NT_NET_MODE_FAILURE = 0x08,
91 unsigned long long last_change;
131 unsigned int remote_port;
132 unsigned long long last_update;
133 unsigned int protocol_version;
150 unsigned int version;
161 unsigned int call_uid;
182 void NT_GetEntryValue(
const char* name,
size_t name_len,
195 int NT_SetDefaultEntryValue(
const char* name,
size_t name_len,
196 const struct NT_Value* default_value);
207 int NT_SetEntryValue(
const char* name,
size_t name_len,
222 void NT_SetEntryTypeValue(
const char* name,
size_t name_len,
227 void NT_SetEntryFlags(
const char* name,
size_t name_len,
unsigned int flags);
231 unsigned int NT_GetEntryFlags(
const char* name,
size_t name_len);
245 void NT_DeleteEntry(
const char* name,
size_t name_len);
256 void NT_DeleteAllEntries(
void);
272 struct NT_EntryInfo* NT_GetEntryInfo(
const char* prefix,
size_t prefix_len,
273 unsigned int types,
size_t* count);
290 void NT_SetListenerOnStart(
void (*on_start)(
void* data),
void* data);
291 void NT_SetListenerOnExit(
void (*on_exit)(
void* data),
void* data);
293 typedef void (*NT_EntryListenerCallback)(
unsigned int uid,
void* data,
294 const char*
name,
size_t name_len,
298 typedef void (*NT_ConnectionListenerCallback)(
299 unsigned int uid,
void* data,
int connected,
302 unsigned int NT_AddEntryListener(
const char* prefix,
size_t prefix_len,
303 void* data, NT_EntryListenerCallback callback,
305 void NT_RemoveEntryListener(
unsigned int entry_listener_uid);
306 unsigned int NT_AddConnectionListener(
void* data,
307 NT_ConnectionListenerCallback callback,
308 int immediate_notify);
309 void NT_RemoveConnectionListener(
unsigned int conn_listener_uid);
311 int NT_NotifierDestroyed();
317 void NT_SetRpcServerOnStart(
void (*on_start)(
void* data),
void* data);
318 void NT_SetRpcServerOnExit(
void (*on_exit)(
void* data),
void* data);
320 typedef char* (*NT_RpcCallback)(
void* data,
const char* name,
size_t name_len,
321 const char* params,
size_t params_len,
325 void NT_CreateRpc(
const char* name,
size_t name_len,
const char* def,
326 size_t def_len,
void* data, NT_RpcCallback callback);
327 void NT_CreatePolledRpc(
const char* name,
size_t name_len,
const char* def,
331 int NT_PollRpcTimeout(
int blocking,
double time_out,
333 void NT_PostRpcResponse(
unsigned int rpc_id,
unsigned int call_uid,
334 const char* result,
size_t result_len);
336 unsigned int NT_CallRpc(
const char* name,
size_t name_len,
const char* params,
338 char* NT_GetRpcResult(
int blocking,
unsigned int call_uid,
size_t* result_len);
339 char* NT_GetRpcResultTimeout(
int blocking,
unsigned int call_uid,
340 double time_out,
size_t* result_len);
341 void NT_CancelBlockingRpcResult(
unsigned int call_uid);
345 int NT_UnpackRpcDefinition(
const char* packed,
size_t packed_len,
347 char* NT_PackRpcValues(
const struct NT_Value** values,
size_t values_len,
349 struct NT_Value** NT_UnpackRpcValues(
const char* packed,
size_t packed_len,
350 const NT_Type* types,
size_t types_len);
355 void NT_SetNetworkIdentity(
const char* name,
size_t name_len);
360 unsigned int NT_GetNetworkMode();
371 void NT_StartServer(
const char* persist_filename,
const char* listen_address,
377 void NT_StopServer(
void);
382 void NT_StartClientNone(
void);
391 void NT_StartClient(
const char* server_name,
unsigned int port);
403 void NT_StartClientMulti(
size_t count,
const char** server_names,
404 const unsigned int* ports);
409 void NT_StopClient(
void);
417 void NT_SetServer(
const char* server_name,
unsigned int port);
428 void NT_SetServerMulti(
size_t count,
const char** server_names,
429 const unsigned int* ports);
437 void NT_StartDSClient(
unsigned int port);
440 void NT_StopDSClient(
void);
445 void NT_StopRpcServer(
void);
450 void NT_StopNotifier(
void);
458 void NT_SetUpdateRate(
double interval);
475 const char* NT_SavePersistent(
const char* filename);
476 const char* NT_LoadPersistent(
const char* filename,
477 void (*warn)(
size_t line,
const char* msg));
484 void NT_DisposeValue(
struct NT_Value* value);
487 void NT_InitValue(
struct NT_Value* value);
490 void NT_DisposeString(
struct NT_String* str);
493 void NT_InitString(
struct NT_String* str);
496 enum NT_Type NT_GetType(
const char* name,
size_t name_len);
514 void NT_DisposeEntryInfoArray(
struct NT_EntryInfo* arr,
size_t count);
533 unsigned long long NT_Now(
void);
536 typedef void (*NT_LogFunc)(
unsigned int level,
const char* file,
537 unsigned int line,
const char* msg);
538 void NT_SetLogger(NT_LogFunc func,
unsigned int min_level);
557 char* NT_AllocateCharArray(
size_t size);
570 int* NT_AllocateBooleanArray(
size_t size);
583 double* NT_AllocateDoubleArray(
size_t size);
596 struct NT_String* NT_AllocateStringArray(
size_t size);
603 void NT_FreeCharArray(
char* v_char);
610 void NT_FreeDoubleArray(
double* v_double);
617 void NT_FreeBooleanArray(
int* v_boolean);
629 void NT_FreeStringArray(
struct NT_String* v_string,
size_t arr_size);
638 enum NT_Type NT_GetValueType(
const struct NT_Value* value);
649 int NT_GetValueBoolean(
const struct NT_Value* value,
650 unsigned long long* last_change,
int* v_boolean);
661 int NT_GetValueDouble(
const struct NT_Value* value,
662 unsigned long long* last_change,
double* v_double);
678 char* NT_GetValueString(
const struct NT_Value* value,
679 unsigned long long* last_change,
size_t* str_len);
695 char* NT_GetValueRaw(
const struct NT_Value* value,
696 unsigned long long* last_change,
size_t* raw_len);
712 int* NT_GetValueBooleanArray(
const struct NT_Value* value,
713 unsigned long long* last_change,
size_t* arr_size);
729 double* NT_GetValueDoubleArray(
const struct NT_Value* value,
730 unsigned long long* last_change,
750 unsigned long long* last_change,
765 int NT_GetEntryBoolean(
const char* name,
size_t name_len,
766 unsigned long long* last_change,
int* v_boolean);
780 int NT_GetEntryDouble(
const char* name,
size_t name_len,
781 unsigned long long* last_change,
double* v_double);
797 char* NT_GetEntryString(
const char* name,
size_t name_len,
798 unsigned long long* last_change,
size_t* str_len);
814 char* NT_GetEntryRaw(
const char* name,
size_t name_len,
815 unsigned long long* last_change,
size_t* raw_len);
831 int* NT_GetEntryBooleanArray(
const char* name,
size_t name_len,
832 unsigned long long* last_change,
size_t* arr_size);
848 double* NT_GetEntryDoubleArray(
const char* name,
size_t name_len,
849 unsigned long long* last_change,
869 NT_String* NT_GetEntryStringArray(
const char* name,
size_t name_len,
870 unsigned long long* last_change,
885 int NT_SetDefaultEntryBoolean(
const char* name,
size_t name_len,
886 int default_boolean);
898 int NT_SetDefaultEntryDouble(
const char* name,
size_t name_len,
899 double default_double);
912 int NT_SetDefaultEntryString(
const char* name,
size_t name_len,
913 const char* default_value,
size_t default_len);
926 int NT_SetDefaultEntryRaw(
const char* name,
size_t name_len,
927 const char* default_value,
size_t default_len);
940 int NT_SetDefaultEntryBooleanArray(
const char* name,
size_t name_len,
941 const int* default_value,
942 size_t default_size);
955 int NT_SetDefaultEntryDoubleArray(
const char* name,
size_t name_len,
956 const double* default_value,
957 size_t default_size);
970 int NT_SetDefaultEntryStringArray(
const char* name,
size_t name_len,
972 size_t default_size);
986 int NT_SetEntryBoolean(
const char* name,
size_t name_len,
int v_boolean,
999 int NT_SetEntryDouble(
const char* name,
size_t name_len,
double v_double,
1013 int NT_SetEntryString(
const char* name,
size_t name_len,
const char*
str,
1014 size_t str_len,
int force);
1027 int NT_SetEntryRaw(
const char* name,
size_t name_len,
const char* raw,
1028 size_t raw_len,
int force);
1041 int NT_SetEntryBooleanArray(
const char* name,
size_t name_len,
const int* arr,
1042 size_t size,
int force);
1055 int NT_SetEntryDoubleArray(
const char* name,
size_t name_len,
const double* arr,
1056 size_t size,
int force);
1069 int NT_SetEntryStringArray(
const char* name,
size_t name_len,
1070 const struct NT_String* arr,
size_t size,
int force);
NetworkTables RPC Call Data.
Definition: ntcore_c.h:159
NetworkTables RPC Result Definition.
Definition: ntcore_c.h:143
NetworkTables Connection Information.
Definition: ntcore_c.h:128
NetworkTables Entry Value.
Definition: ntcore_c.h:89
NetworkTables Entry Information.
Definition: ntcore_c.h:113
unsigned int flags
Entry flags.
Definition: ntcore_c.h:121
unsigned long long last_change
Timestamp of last change to entry (type or value).
Definition: ntcore_c.h:124
struct NT_String name
Entry name.
Definition: ntcore_c.h:115
A NetworkTables string.
Definition: ntcore_c.h:74
NetworkTables RPC Definition.
Definition: ntcore_c.h:149
NetworkTables RPC Parameter Definition.
Definition: ntcore_c.h:137
char * str
String contents (UTF-8).
Definition: ntcore_c.h:80
size_t len
Length of the string in bytes.
Definition: ntcore_c.h:85
enum NT_Type type
Entry type.
Definition: ntcore_c.h:118