29#ifndef DETERMINISTICESPASYNCWEBSERVER_OPCUA_CLIENT_H
30#define DETERMINISTICESPASYNCWEBSERVER_OPCUA_CLIENT_H
37#if DETWS_ENABLE_OPCUA_CLIENT
46 uint16_t session_auth_ns;
47 uint32_t session_auth_id;
48 bool session_auth_numeric;
51 uint32_t request_handle;
55void opcua_client_init(OpcUaClient *c);
62size_t opcua_client_hello(
const char *endpoint_url, uint8_t *out,
size_t cap);
65size_t opcua_client_open(OpcUaClient *c, uint8_t *out,
size_t cap);
68size_t opcua_client_get_endpoints(OpcUaClient *c,
const char *endpoint_url, uint8_t *out,
size_t cap);
71size_t opcua_client_create_session(OpcUaClient *c,
const char *session_name,
const char *endpoint_url, uint8_t *out,
75size_t opcua_client_activate_session(OpcUaClient *c, uint8_t *out,
size_t cap);
78size_t opcua_client_read(OpcUaClient *c,
const OpcUaReadItem *items, uint32_t n, uint8_t *out,
size_t cap);
81size_t opcua_client_browse(OpcUaClient *c, uint16_t ns, uint32_t
id, uint8_t *out,
size_t cap);
84size_t opcua_client_write(OpcUaClient *c,
const OpcUaWriteItem *items, uint32_t n, uint8_t *out,
size_t cap);
87size_t opcua_client_close_session(OpcUaClient *c, uint8_t *out,
size_t cap);
90size_t 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;
106bool opcua_client_on_ack(
const uint8_t *msg,
size_t len, OpcUaAckInfo *out);
109bool opcua_client_on_open(OpcUaClient *c,
const uint8_t *msg,
size_t len);
112int32_t opcua_client_on_get_endpoints(
const uint8_t *msg,
size_t len);
115bool opcua_client_on_create_session(OpcUaClient *c,
const uint8_t *msg,
size_t len);
118bool opcua_client_on_activate_session(
const uint8_t *msg,
size_t len);
125int32_t opcua_client_on_read(
const uint8_t *msg,
size_t len, OpcUaVariant *vals, uint32_t *statuses, uint32_t max);
130 uint32_t ref_type_id;
135 char browse_name[32];
142int32_t opcua_client_on_browse(
const uint8_t *msg,
size_t len, OpcUaClientRef *refs, uint32_t max);
148int32_t opcua_client_on_write(
const uint8_t *msg,
size_t len, uint32_t *results, uint32_t max);
User-facing configuration for DeterministicESPAsyncWebServer.
OPC UA Binary server: handshake + SecureChannel + Session + Read/Write + Browse (DETWS_ENABLE_OPCUA).