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

PDComm.Modbus.License

클래스

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

public static class License

connect 명령에는 modbus 모듈 라이선스가 필요하고, 구성에서 Modbus/TCP Security를 켜면 modbus-security도 필요합니다. 라이선스가 없으면 Endpoint.Call이 ModbusCommandException.LicenseRequired가 설정된 ModbusCommandException을 던집니다. 이미 열린 연결은 계속 동작하고, 다른 명령은 모두 라이선스 없이 동작합니다.

라이브러리는 여기서 설치한 텍스트를 PDCOMM_LICENSE(텍스트)와 PDCOMM_LICENSE_FILE(경로) 환경 변수, 애플리케이션 또는 네이티브 라이브러리 옆과 사용자 및 시스템 구성 디렉터리의 pdcomm.license 파일과 합쳐서 사용합니다. 설치는 Modbus 라이브러리의 모든 엔드포인트에만 적용됩니다. 이 메서드들은 임시 엔드포인트에서 license_install, license_status, host_id 명령을 실행하며 스레드에 안전합니다.

License.Install(File.ReadAllText("pdcomm.license"));
Console.WriteLine(License.Status().GetProperty("modules").GetProperty("modbus").GetProperty("state"));

멤버

HostId

메서드

호스트에 묶인 라이선스(SECS/GEM 런타임 라이선스)가 지정하는 이 머신의 호스트 ID를 가져옵니다.

public static string HostId()

반환값

호스트 ID PDH1-XXXX-XXXX-XXXX-XXXX입니다.

참고

  • ModbusCommandException 예외: 머신 ID를 읽을 수 없습니다(ModbusCommandException.Code는 host_id_unavailable).
  • DllNotFoundException 예외: 네이티브 라이브러리를 찾거나 로드할 수 없습니다.

Install

메서드

라이선스 텍스트를 설치하고, 이전에 설치한 텍스트를 교체합니다.

public static int Install(string text)

매개변수

이름설명
text-----BEGIN PDCOMM LICENSE----- 블록이 하나 이상 들어 있는 텍스트입니다. 블록 밖의 텍스트는 무시합니다. 빈 문자열을 넘기면 설치한 텍스트를 제거합니다.

반환값

서명이 검증된 라이선스 블록 수입니다.

참고

  • ArgumentNullException 예외: text가 null입니다.
  • ModbusCommandException 예외: 서명이 검증되는 블록이 텍스트에 없습니다(ModbusCommandException.Code는 license_invalid). 이전 텍스트는 그대로 설치되어 있습니다.
  • DllNotFoundException 예외: 네이티브 라이브러리를 찾거나 로드할 수 없습니다.

Status

메서드

Modbus 라이브러리의 라이선스 상태를 가져옵니다.

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 객체입니다.

참고

  • DllNotFoundException 예외: 네이티브 라이브러리를 찾거나 로드할 수 없습니다.
  • ModbusCommandException 예외: 라이브러리가 라이선스를 지원하지 않습니다(라이선스 도입 이전 버전입니다).