PDComm.OpcUa.License
클래스
OPC UA 네이티브 라이브러리의 PDComm 라이선스를 설치하고 확인합니다.
public static class LicenseClient.Discover와 Client.Connect에는 opcua-client 모듈 라이선스가, Server.Create에는 opcua-server 모듈 라이선스가 필요합니다. 라이선스가 없으면 OpcUaException.LicenseRequired가 설정된 OpcUaException을 던지며, 이미 있는 클라이언트와 서버는 계속 동작합니다.
라이브러리는 여기서 설치한 텍스트를 PDCOMM_LICENSE(텍스트)와 PDCOMM_LICENSE_FILE(경로) 환경 변수, 애플리케이션 또는 네이티브 라이브러리 옆과 사용자 및 시스템 구성 디렉터리의 pdcomm.license 파일과 합쳐서 사용합니다. 설치는 OPC UA 라이브러리에만 적용됩니다. 모든 멤버는 스레드에 안전합니다.
License.Install(File.ReadAllText("pdcomm.license"));
Console.WriteLine(License.Status().GetProperty("modules").GetProperty("opcua-client").GetProperty("state"));멤버
HostId
메서드
호스트에 묶인 라이선스(SECS/GEM 런타임 라이선스)가 지정하는 이 머신의 호스트 ID를 가져옵니다.
public static string HostId()반환값
호스트 ID PDH1-XXXX-XXXX-XXXX-XXXX입니다.
참고
OpcUaException예외: 머신 ID를 읽을 수 없습니다.TypeInitializationException예외: 네이티브 라이브러리가 없거나 OPC UA ABI 0.2를 구현하지 않습니다(내부 예외가 어느 쪽인지 알려 줍니다).
Install
메서드
라이선스 텍스트를 설치하고, 이 메서드로 이전에 설치한 텍스트를 교체합니다.
public static void Install(string text)매개변수
| 이름 | 설명 |
|---|---|
text | -----BEGIN PDCOMM LICENSE----- 블록이 하나 이상 들어 있는 텍스트입니다. 블록 밖의 텍스트는 무시합니다. 빈 문자열을 넘기면 설치한 텍스트를 제거합니다. |
참고
ArgumentNullException예외:text가null입니다.OpcUaException예외: 서명이 검증되는 블록이 텍스트에 없거나 텍스트가 1 MiB보다 큽니다. 이전 텍스트는 그대로 설치되어 있습니다.TypeInitializationException예외: 네이티브 라이브러리가 없거나 OPC UA ABI 0.2를 구현하지 않습니다(내부 예외가 어느 쪽인지 알려 줍니다).
Status
메서드
OPC UA 라이브러리의 라이선스 상태를 가져옵니다.
public static JsonElement Status()반환값
host_id, build_date, 찾은 sources, verification이 붙은 모든 라이선스 블록 licenses, 그리고 모듈 ID마다 state(licensed, evaluation, missing, expired, not-yet-valid, updates-expired, program-mismatch, host-mismatch 중 하나), granted, days_left를 대응시키는 modules가 들어 있는 JSON 객체입니다.
참고
OpcUaException예외: 라이브러리가 상태를 보고하지 못했습니다.TypeInitializationException예외: 네이티브 라이브러리가 없거나 OPC UA ABI 0.2를 구현하지 않습니다(내부 예외가 어느 쪽인지 알려 줍니다).