29#ifndef PROTOCORE_OPCUA_CLIENT_H
30#define PROTOCORE_OPCUA_CLIENT_H
34#if PROTOCORE_ENABLE_OPCUA_CLIENT
46 uint16_t session_auth_ns;
47 uint32_t session_auth_id;
51 uint32_t request_handle;
55void protocore_opcua_client_init(OpcUaClient *c);
62size_t protocore_opcua_client_hello(
const char *endpoint_url, uint8_t *out,
size_t cap);
65size_t protocore_opcua_client_open(OpcUaClient *c, uint8_t *out,
size_t cap);
68size_t protocore_opcua_client_get_endpoints(OpcUaClient *c,
const char *endpoint_url, uint8_t *out,
size_t cap);
71size_t protocore_opcua_client_create_session(OpcUaClient *c,
const char *session_name,
const char *endpoint_url,
72 uint8_t *out,
size_t cap);
75size_t protocore_opcua_client_activate_session(OpcUaClient *c, uint8_t *out,
size_t cap);
78size_t protocore_opcua_client_read(OpcUaClient *c,
const OpcUaReadItem *items, uint32_t n, uint8_t *out,
size_t cap);
81size_t protocore_opcua_client_browse(OpcUaClient *c, uint16_t ns, uint32_t
id, uint8_t *out,
size_t cap);
84size_t protocore_opcua_client_write(OpcUaClient *c,
const OpcUaWriteItem *items, uint32_t n, uint8_t *out,
size_t cap);
87size_t protocore_opcua_client_close_session(OpcUaClient *c, uint8_t *out,
size_t cap);
90size_t protocore_opcua_client_close_channel(uint8_t *out,
size_t cap);
99 uint32_t recv_buf_size;
100 uint32_t send_buf_size;
101 uint32_t max_msg_size;
102 uint32_t max_chunk_count;
106proto_bool protocore_opcua_client_on_ack(
const uint8_t *msg,
size_t len, OpcUaAckInfo *out);
109proto_bool protocore_opcua_client_on_open(OpcUaClient *c,
const uint8_t *msg,
size_t len);
112int32_t protocore_opcua_client_on_get_endpoints(
const uint8_t *msg,
size_t len);
115proto_bool protocore_opcua_client_on_create_session(OpcUaClient *c,
const uint8_t *msg,
size_t len);
118proto_bool protocore_opcua_client_on_activate_session(
const uint8_t *msg,
size_t len);
125int32_t protocore_opcua_client_on_read(
const uint8_t *msg,
size_t len, OpcUaVariant *vals, uint32_t *statuses,
131 uint32_t ref_type_id;
136 char browse_name[32];
143int32_t protocore_opcua_client_on_browse(
const uint8_t *msg,
size_t len, OpcUaClientRef *refs, uint32_t max);
149int32_t protocore_opcua_client_on_write(
const uint8_t *msg,
size_t len, uint32_t *results, uint32_t max);
OPC UA Binary server: handshake + SecureChannel + Session + Read/Write + Browse (PROTOCORE_ENABLE_OPC...
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS