콘텐츠로 이동
무료 평가 시작

PDComm.OpcUa.License

클래스

OPC UA 네이티브 라이브러리의 PDComm 라이선스를 설치하고 확인합니다.

public static class License

Client.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를 구현하지 않습니다(내부 예외가 어느 쪽인지 알려 줍니다).