PDComm.Modbus.License
클래스
Modbus 네이티브 라이브러리의 PDComm 라이선스를 설치하고 확인합니다.
public static class Licenseconnect 명령에는 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예외: 라이브러리가 라이선스를 지원하지 않습니다(라이선스 도입 이전 버전입니다).