계측기 중립 분산 인터페이스
Instrument Neutral Distributed Interface원저작자 | 엘우드 다우니, 자셈 무틀라크 |
---|---|
개발자 | INDI 개발팀 |
초기 릴리즈 | 2003년 4월 15일; | 전(
안정된 릴리스 | 1.8.9 / 2021년 2월 28일; [1] 전( |
기입처 | C, C++ |
운영 체제 | Linux, OS X, macOS, FreeBSD, OpenBSD |
면허증. | GNU LGPL v2.1+ |
웹 사이트 | www |
INDI(Instrument Neutral Distributed Interface)는 하드웨어 장치와 소프트웨어 프런트 엔드 간의 제어, 데이터 수집 및 교환을 가능하게 하는 DCS(분산 제어 시스템) 프로토콜로 천문학적 계측을 강조합니다.
서론
Elwood Downey는 플랫폼 및 클라이언트 독립 제어 프로토콜을 개발하기 위해 2003년에 INDI Protocol 이니셔티브를 시작했습니다.INDI는 XML(Extensible Markup Language)을 기반으로 모델링된 단순한 프로토콜로, 다양한 계측기의 대화형 및 자동 원격 제어를 위해 설명됩니다.이것은 작고 해석하기 쉬우며 스테이트리스입니다.INDI 패러다임에서 각 디바이스는 모든 명령 및 상태 기능을 설정 및 취득과 관련하여 제공합니다.각 속성은 하나 이상의 명명된 멤버의 벡터이며 현재 값 벡터인 목표 값 벡터를 가지고 있습니다. 다른 속성에 대해 하나의 조정된 관찰 단위를 달성하는 방법에 대한 정보를 제공합니다. 또한 그래픽 사용자에서의 대화식 조작에 대해 표시되는 방법에 대한 힌트를 제공합니다.인터페이스(GUI)를 선택합니다.클라이언트는 Introspection을 사용하여 런타임에 특정 디바이스의 속성을 학습합니다.
이것에 의해, 클라이언트와 디바이스의 실장 이력이 분리됩니다.디바이스는 클라이언트로부터의 명령어를 받아들일지 여부에 대한 모든 권한을 가집니다.INDI는 1종류의 시스템 상에서1 대 1에서 다른 장르의 시스템 간에 다 대 다에 이르는 중간 서버, 브로드캐스트 및 접속 토폴로지를 수용합니다.INDI 프로토콜은 Remote Telescope Markup Language(RTML)와 같은 다른 XML 요소 내에 중첩되어 자동 스케줄링 및 실행을 위한 제약 조건을 추가할 수 있습니다.
아키텍처
INDI의 주요 개념은 디바이스가 자신을 기술할 수 있다는 것입니다.이는 XML을 사용하여 표준 디바이스와 비표준 디바이스를 모두 나타낼 수 있는 범용 계층을 기술함으로써 실현됩니다.INDI 에서는, 모든 디바이스에 1개 또는 복수의 속성을 포함할 수 있습니다.속성에는 하나 이상의 요소가 포함될 수 있습니다.INDI 패러다임의 속성은 디바이스의 특정 기능을 나타냅니다.INDI 속성에는 다음 5가지 유형이 있습니다.
- 텍스트 속성
- 번호 속성
- 스위치 속성 – 버튼 또는 체크박스로 GUI에 표시됨
- 라이트 특성 – GUI에서 컬러 LED로 표시
- BLOB 속성– 바이너리
INDI는 완전한 디바이스 자동화를 가능하게 하는 강력한 스크립트 기능을 제공합니다.
INDI 라이브러리
INDI 라이브러리는 UNIX 계열 시스템을 위한 INDI 와이어 프로토콜의 구현입니다.그것은 망원경, 전하결합소자(CCD), 포커스, 필터, 비디오 캡처 소자를 포함한 다양한 천문 기구를 지원한다.INDI 라이브러리는 GNU Lesser General Public License(LGPL)에 따라 라이선스가 부여됩니다.
INDI 드라이버
INDI 드라이버는 디바이스에 직접 통신하는 프로그램입니다.디바이스 파라미터를 제어하고 이를 클라이언트에 정의하는 역할을 합니다.드라이버는 지원되는 디바이스 속성의 목록을 클라이언트에 전송하여 해당 속성을 구문 분석하여 최종 사용자에게 표시합니다.
INDI 클라이언트
클라이언트는 하드웨어 드라이버와 통신하는 소프트웨어 프런트엔드입니다.일반적으로 INDI 서버를 통해 INDI 하드웨어 드라이버와 통신하지만 드라이버와 직접 통신할 수 있습니다.클라이언트에는 다음과 같은 다양한 유형이 있습니다.
- KStars, XEPhem, AstroImager,[2] AstroTelescope [3]등의 범용 GUI 클라이언트.이러한 클라이언트는 동적 GUI를 생성하여 사용자에게 디바이스를 제어하는 제어판을 제공합니다.
- 디바이스와 클라이언트 간에 교환되는 메시지, 알람 및 데이터를 기록하는 로거 클라이언트.
- 장치를 안전하고 적절하게 작동하도록 도그 클라이언트를 감시합니다.
- 디바이스에서 복잡하고 조정된 작업을 수행하기 위한 자동화된 스크립트.
INDI 서버
INDI 서버는 드라이버와 클라이언트 사이에 있는 허브입니다.분산 네트워크 간에 제어 및 데이터를 위해 트래픽을 재루팅합니다.네트워크내의 각 디바이스 또는 클라이언트는 노드이며, 필요에 따라서 다른 노드와 통신할 수 있습니다.서버는 데이터의 브로드캐스트, 체인 및 마샬링을 지원합니다.
IANA 포트
Internet Assigned Numbers Authority(IANA)는 INDI를 Transmission Control Protocol(TCP) 및 UDP(User Datagram Protocol) 또는 TCP/UDP 포트 7624에 할당했습니다.TCP 및 UDP 포트 번호 목록을 참조하십시오.
「 」를 참조해 주세요.
레퍼런스
- ^ "Releases · indilib/indi". github.com. Retrieved 2021-04-12.
- ^ Astro Imager
- ^ Astro Telescope