OPC UA C++ API
OPC UA의 C++ 공개 API 목록입니다.
API 145개
opcuaOPC UA C++ API입니다. C ABI의 RAII 래퍼와 QtCore 및 MFC 클라이언트 워커(worker)를 제공합니다.MfcClientConfigurationMfcClientWorker의 연결 설정과 ID(identity) 설정입니다.MfcClientConfiguration::anonymoususerName과 userSecret 대신 익명으로 활성화합니다.MfcClientConfiguration::applicationUriUTF-8로 된 ApplicationUri이며, 최대 4096바이트입니다. 클라이언트 인증서와 일치해야 합니다.MfcClientConfiguration::certificateDer클라이언트 애플리케이션 인스턴스 인증서입니다(DER, 최대 64 KiB).MfcClientConfiguration::endpointUTF-8로 된 opc.tcp:// 엔드포인트(endpoint) URL이며, 최대 4096바이트입니다.MfcClientConfiguration::flags::pdcomm_opcua_option_flags 값의 비트 OR입니다.MfcClientConfiguration::mode요청할 ::pdcomm_opcua_security_mode 값입니다.MfcClientConfiguration::policy요청할 ::pdcomm_opcua_policy 값입니다.MfcClientConfiguration::privateKeyPem그 인증서의 개인 키입니다(PEM, 최대 64 KiB).MfcClientConfiguration::timeoutMs각 네트워크 교환과 처리 중인 각 요청의 타임아웃(timeout)이며, 1부터 300000 ms까지입니다.MfcClientConfiguration::trustedServerDer신뢰할 서버 인증서입니다(DER, 최대 64 KiB).MfcClientConfiguration::userNameUserNameIdentityToken에 쓰는 UTF-8 사용자 이름이며, 최대 4096바이트입니다. anonymous가 false일 때 사용합니다.MfcClientConfiguration::userSecretUTF-8 암호이며, 최대 16 KiB입니다. anonymous가 false일 때 사용합니다.MfcClientEventMfcClientWorker::Drain()으로 워커의 메일박스에서 꺼낸 이벤트 하나입니다.MfcClientEvent::abortedStopped: 워커가 그 밖의 방식으로 종료되었습니다. 항상 !orderly입니다.MfcClientEvent::acceptedStopped: Submit()이 받아들인 요청 수입니다.MfcClientEvent::completedStopped: 응답으로 끝났거나 begin 또는 response 실패로 끝난 요청 수입니다.MfcClientEvent::correlationPending, Completed, Failed: MfcClientWorker::Submit()에 전달한 상관 ID(correlation)입니다. 워커 실패이면 0입니다.MfcClientEvent::discardedStopped: abort 실패로 끝난 요청 수입니다.MfcClientEvent::kind이벤트 종류입니다.MfcClientEvent::metadataCompleted: 응답의 요청 ID, 인코딩 ID, serviceResult입니다.MfcClientEvent::orderlyStopped: drain이 CloseSession과 채널 닫기로 끝났습니다.MfcClientEvent::ownerThreadReady: 네이티브 클라이언트를 소유한 워커 스레드의 Win32 스레드 ID입니다.MfcClientEvent::phaseFailed: begin, response, abort, worker 중 하나입니다.MfcClientEvent::reasonStopped: drained-and-closed, aborted, native-error, adapter-error 중 하나입니다.MfcClientEvent::requestIdPending, Completed: 네이티브 요청 ID(requestHandle)입니다.MfcClientEvent::statusFailed: 실패의 ::pdcomm_opcua_status 값입니다.MfcClientEvent::textFailed: 영문 상세 텍스트이며, 네이티브 호출 직후 워커 스레드에서 복사합니다.MfcClientEvent::valueCompleted: 소유된 응답이며, ServiceFault일 수 있습니다. 클라이언트와 워커보다 오래 유지되며, 마지막 참조가 사라질 때까지 네이티브 핸들을 보유합니다.MfcClientEventKindMfcClientEvent의 종류입니다. 어떤 멤버가 설정되는지를 결정합니다.MfcClientEventKind::Completed검증된 응답이 도착했습니다. correlation, requestId, metadata, value가 설정됩니다.MfcClientEventKind::Failed요청 또는 워커가 실패했습니다. correlation(워커이면 0), status, phase, text가 설정됩니다.MfcClientEventKind::Pending요청을 보냈습니다. correlation과 requestId가 설정됩니다.MfcClientEventKind::Ready세션이 활성화되었습니다. ownerThread가 설정됩니다.MfcClientEventKind::Stopped워커가 종료되었습니다. 항상 마지막 이벤트입니다. orderly, aborted, 카운터, reason이 설정됩니다.MfcClientStopMfcClientWorker::RequestStop()이 워커를 끝내는 방식입니다.MfcClientStop::Abort다음 확인 지점에서 멈추고, 대기 중인 작업을 버리며, 프로토콜 종료 절차 없이 클라이언트를 해제합니다.MfcClientStop::Drain받아들인 모든 요청을 완료한 뒤 세션과 채널을 닫습니다.MfcClientWorker네이티브 OPC UA 클라이언트를 소유하는 일회용(one-shot) MFC 워커 스레드입니다.MfcClientWorker::Drain큐에 있는 모든 이벤트를 순서대로 꺼냅니다. 수신 스레드에서 호출합니다.MfcClientWorker::MaximumCommands큐에 있거나 전송 중인, 받아들인 요청의 최대 개수입니다.MfcClientWorker::MaximumEvents메일박스에서 동시에 대기할 수 있는 이벤트 수의 상한입니다.MfcClientWorker::MaximumQueuedBytes요청 하나의 최대 크기이자, 큐에 있고 아직 보내지 않은 모든 요청을 합친 최대 크기입니다(4 MiB).MfcClientWorker::MfcClientWorker워커를 만듭니다. 연결은 Start()가 시작합니다.MfcClientWorker::MfcClientWorker복사할 수 없습니다.MfcClientWorker::RequestStop워커에 중지를 요청합니다. 스레드 안전합니다.MfcClientWorker::Start워커 스레드를 시작합니다. 한 번만 시작할 수 있습니다.MfcClientWorker::SubmitUA Binary 서비스 요청 하나를 큐에 넣습니다. 스레드 안전(thread-safe)합니다.MfcClientWorker::Wait워커 스레드가 종료될 때까지 기다립니다. 소유자 스레드에서만 호출합니다.MfcClientWorker::operator=복사 대입할 수 없습니다.MfcClientWorker::~MfcClientWorker중단(abort)을 요청하고, 스레드를 기다린 뒤 자격 증명을 지웁니다.buffer라이브러리가 반환하는, 소유되는 불변 바이트 버퍼입니다.buffer::buffer버퍼 핸들의 소유권을 가져옵니다.buffer::copy버퍼 내용을 복사합니다.bytes문자열의 바이트를 ::pdcomm_opcua_bytes 뷰로 빌립니다.bytes벡터의 바이트를 ::pdcomm_opcua_bytes 뷰로 빌립니다.check실패한 C ABI 상태에 대해 예외를 던집니다.client보안 채널(secure channel) 하나를 사용하는 OPC UA 클라이언트 세션(session)입니다.client::activate_anonymous세션을 익명으로 활성화합니다(ActivateSession).client::activate_user_name사용자 이름과 암호로 세션을 활성화합니다(ActivateSession).client::beginUA Binary 서비스 요청 하나를 큐에 넣습니다.client::close세션과 보안 채널을 순서에 맞게 닫습니다.client::connect서버에 연결하고 세션을 만듭니다.client::discover인증 없이 서버의 엔드포인트를 읽습니다.client::poll블로킹 없이 큐에 있는 바이트를 보내고 도착한 응답을 받습니다.client::take요청의 응답이 도착했으면 가져옵니다.errorC ABI 호출이 실패할 때마다 래퍼가 던지는 예외입니다.error::error예외를 만듭니다.error::license_requiredPDComm 라이선스가 없어 호출이 거부되었는지 알려 줍니다.error::status실패한 호출의 상태를 반환합니다.licenseOPC UA 라이브러리의 PDComm 라이선스입니다. 라이선스 텍스트를 설치하고, 라이선스 상태와 이 호스트의 ID를 읽습니다.license::host_id이 호스트의 ID PDH1-XXXX-XXXX-XXXX-XXXX를 반환합니다.license::install라이선스 텍스트를 설치하고, 이전에 설치한 텍스트를 교체합니다.license::status라이선스 상태 JSON을 반환합니다(pdcomm_opcua_license_status() 참고).options라이브러리 기본값으로 채운 클라이언트 옵션을 반환합니다.owned::pdcomm_opcua_handle 하나를 소유하는 이동 전용(move-only) 소유자이며, 모든 래퍼의 기반 클래스입니다.owned::operator=복사 대입을 할 수 없습니다. 핸들의 소유자는 정확히 하나입니다.owned::operator=현재 핸들을 해제한 뒤 other에서 소유권을 가져옵니다.owned::owned빈 소유자를 만듭니다.owned::owned복사할 수 없습니다. 핸들의 소유자는 정확히 하나입니다.owned::owned소유권을 이동합니다. other는 비게 됩니다.owned::reset소유한 핸들을 즉시 해제하고 객체를 비웁니다.owned::~owned소유한 핸들이 있으면 해제합니다.qt_client_configurationqt_client_worker의 연결 및 ID 설정입니다.qt_client_configuration::anonymoususer_name과 user_secret 대신 익명으로 활성화합니다.qt_client_configuration::application_uriApplicationUri입니다. 최대 4096바이트이며 클라이언트 인증서와 일치해야 합니다.qt_client_configuration::certificate_der클라이언트 애플리케이션 인스턴스 인증서입니다(DER, 최대 64 KiB).qt_client_configuration::endpointUTF-8로 된 opc.tcp:// 엔드포인트(endpoint) URL입니다. 최대 4096바이트입니다.qt_client_configuration::flags::pdcomm_opcua_option_flags 값의 비트 OR입니다.qt_client_configuration::mode요청할 ::pdcomm_opcua_security_mode 값입니다.qt_client_configuration::policy요청할 ::pdcomm_opcua_policy 값입니다.qt_client_configuration::private_key_pem그 인증서의 개인 키입니다(PEM, 최대 64 KiB).qt_client_configuration::timeout_ms각 네트워크 교환과 처리 중인 각 요청의 타임아웃(timeout)입니다. 1~300000 ms입니다.qt_client_configuration::trusted_server_der신뢰할 서버 인증서입니다(DER, 최대 64 KiB).qt_client_configuration::user_nameUserNameIdentityToken에 쓰는 UTF-8 사용자 이름입니다. anonymous가 false일 때 사용합니다.qt_client_configuration::user_secretUTF-8 암호입니다. 최대 16 KiB이며 anonymous가 false일 때 사용합니다.qt_client_failureqt_client_worker::failed()가 전달하는 실패입니다.qt_client_failure::correlation실패한 요청의 상관 ID(correlation)입니다. 워커 실패이면 0입니다.qt_client_failure::phase"begin", "response", "abort" 또는 "worker"입니다.qt_client_failure::status실패의 ::pdcomm_opcua_status 값입니다.qt_client_failure::text네이티브 호출 직후 워커 스레드에서 복사한 영문 상세 텍스트입니다.qt_client_responseqt_client_worker::completed()가 전달하는 응답입니다.qt_client_response::correlation애플리케이션이 qt_client_worker::submit()에 전달한 상관 ID(correlation)입니다.qt_client_response::metadata응답 메타데이터입니다. 요청 ID, 인코딩 ID와 serviceResult입니다.qt_client_response::request_id요청의 네이티브 요청 ID(requestHandle)입니다.qt_client_response::value소유된 응답입니다. 클라이언트와 워커보다 오래 유지됩니다. const copy()와 info()는 어느 스레드에서나 호출할 수 있으며, 네이티브 버퍼는 마지막 참조와 함께 해제됩니다.qt_client_response_ptr대기열 시그널(queued signal)로 전달되는 공유된 불변 응답입니다.qt_client_stopqt_client_worker::request_stop()이 워커를 끝내는 방식입니다.qt_client_stop::abort다음 확인 시점에 멈추고, 대기 중인 작업을 버리고, 프로토콜 닫기 없이 클라이언트를 해제합니다.qt_client_stop::drain수락된 요청을 모두 완료한 뒤 세션과 채널을 닫습니다.qt_client_terminalqt_client_worker::stopped()가 전달하는 최종 보고입니다.qt_client_terminal::aborted워커가 그 밖의 방식으로 끝났으면 True입니다. 항상 !orderly입니다.qt_client_terminal::acceptedsubmit()이 수락한 요청 수입니다.qt_client_terminal::completed응답, 또는 "begin"이나 "response" 실패로 끝난 요청 수입니다.qt_client_terminal::discarded"abort" 실패로 끝난 요청 수입니다.qt_client_terminal::orderly드레인(drain)이 CloseSession과 채널 닫기로 끝났으면 True입니다.qt_client_terminal::reason워커가 끝난 이유입니다. "drained-and-closed", "aborted", "native-error", "adapter-error" 또는 "restart-rejected"입니다.qt_client_worker네이티브 OPC UA 클라이언트를 소유하는 일회용 QThread입니다.qt_client_worker::completed검증된 응답이 도착했습니다. 요청은 끝났습니다.qt_client_worker::failed요청 또는 워커가 실패했습니다. qt_client_failure를 참고합니다.qt_client_worker::maximum_commands큐에 있거나 전송 중인, 수락된 요청의 최대 개수입니다.qt_client_worker::maximum_queued_bytes요청 하나의 최대 크기이자, 큐에 있고 아직 전송되지 않은 요청 전체를 합한 최대 크기입니다(4 MiB).qt_client_worker::operator=복사 대입을 할 수 없습니다.qt_client_worker::pending요청이 서버로 전송되었습니다.qt_client_worker::qt_client_worker복사할 수 없습니다.qt_client_worker::qt_client_worker워커를 만듭니다. start()가 연결을 시작합니다.qt_client_worker::ready세션이 활성화되었고 요청을 보내고 있습니다.qt_client_worker::request_stop워커에 멈추도록 요청합니다. 스레드 안전합니다.qt_client_worker::stopped워커가 끝났습니다. 항상 한 번의 실행에서 마지막 시그널입니다.qt_client_worker::submitUA Binary 서비스 요청 하나를 큐에 넣습니다. 스레드 안전합니다.qt_client_worker::~qt_client_worker중단을 요청하고, 스레드를 기다리고, 자격 증명을 지웁니다.require_version로드된 라이브러리가 ABI 0x00000002을 구현하는지 확인합니다.response소유되며 검증된 UA Binary 서비스 응답입니다.response::info응답 메타데이터를 반환합니다.response::response응답 핸들의 소유권을 가져옵니다.server네임스페이스 2에 변수를 두는 메모리 내 OPC UA 서버입니다.server::add_variableObjects 폴더 아래에 Variable 노드(node)를 추가합니다.server::close리스너를 닫고 모든 채널을 중단합니다.server::create서버를 만들고 바인딩합니다.server::local_address서버가 수신 대기 중인 소켓 주소를 반환합니다.server::poll블로킹 없이 연결을 수락하고 요청을 한 번 처리합니다.server::read_value인증된 로컬 사용자로서 Value 속성을 읽습니다.server::set_value인증된 로컬 사용자로서 Value 속성(attribute)을 씁니다.server_options라이브러리 기본값으로 채운 서버 옵션을 반환합니다.
조건에 맞는 API가 없습니다.