플러그인 내보내기
장치 정보 및 런타임 진입점, 표시 이름, 캔버스 크기, 검색할 제품/공급업체 ID, 렌더 루프 등을 보고하는 백엔드 API와 통신하기 위해 여러 함수를 사용합니다.
”Name”과 “Publisher”
섹션 제목: “”Name”과 “Publisher””이 함수들은 SignalRGB에 표시될 장치의 이름과 게시자를 내보냅니다.
export function Name() { return "Device Product name as a String"; };export function Publisher() { return "This is You! as a String"; };”VendorId”와 “ProductId”
섹션 제목: “”VendorId”와 “ProductId””이 함수들은 시스템에서 장치를 검색하는 데 사용됩니다. 둘 다 “0x ” 형식의 16진수 값으로 인코딩됩니다. 장치 ID와 정확히 일치해야 합니다. SignalRGB에 플러그인이 표시되지 않는다면 공급업체 및 제품 ID가 일치하지 않는 것이 가장 일반적인 원인입니다. SignalRGB에서 장치를 감지하는 데 필요한 최소 요건은 일치하는 공급업체 및 제품 ID입니다.
export function VendorId() { return 0xABCD;}; //Device's USB Vendor Id in Hexexport function ProductId() { return 0xABCD;}; //Device's USB Product Id in Hex”Size”와 위치 설정
섹션 제목: “”Size”와 위치 설정”사용자 지정 전 캔버스에서의 장치 박스 기본 크기를 2D 정수 배열로 설정합니다. 크기는 LED의 너비와 높이를 그리드로 변환했을 때의 값을 수용할 수 있도록 설정해야 합니다. 플러그인에서 이 범위 밖의 색상을 가져올 수 없기 때문입니다.
export function Size() { return [X,Y]; };이 함수들은 사용자 지정 전 장치의 기본 위치를 설정합니다. DefaultPosition은 왼쪽 상단 모서리의 2D 좌표를 반환합니다. DefaultScale은 1.0-30.0 범위의 스케일 배수를 반환합니다.
export function DefaultPosition(){return [X,Y]};export function DefaultScale(){return 8.0};”Led Names”
섹션 제목: “”Led Names””이 함수는 장치의 모든 LED 이름이 담긴 2D 배열을 반환합니다. 키 입력 효과와 LED 페인팅 기능을 지원하려면 지원되는 키 이름 목록을 따라야 합니다.
var vLedNames = [ "Scroll Wheel", "Side Led 1","Side Led 2","Side Led 3","Side Led 4", "Side Led 5","logo", "Right Side Led", "Dpi 1","dpi 2","Dpi 3", "Battery indicator"];export function LedNames(){return vLedNames;};”Led Positions”
섹션 제목: “”Led Positions””이 함수는 장치의 픽셀 버퍼 내 개별 LED 위치의 행렬을 반환합니다. 모든 위치는 장치의 Size() 내보내기로 설정된 범위 내에 있어야 합니다.
var vLedPositions = [ [3,0], [0,1],[0,2],[0,3],[0,4],[0,5],[3,5],[5,5], [0,2],[0,1],[0,0], [3,1]];export function LedPositions(){return vLedPositions;};”ControllableParameters”
섹션 제목: “”ControllableParameters””이 함수는 장치 플러그인의 모든 설정을 포함합니다. 이 설정들은 함수가 배열 안에 반환하는 JS/JSON 객체로 저장됩니다. 자세한 내용은 사용자 컨트롤을 참조하십시오.
export function ControllableParameters(){ return [ {SETTING}, {SETTING} ];}”Validate”
섹션 제목: “”Validate””이 함수는 SignalRGB가 장치에 대해 열어 사용할 USB 엔드포인트를 결정하는 역할을 합니다. 모든 엔드포인트는 장치의 각 USB 엔드포인트 값에 해당하는 네 개의 매개변수와 함께 필터로 사용됩니다. 각 장치에 대해 여러 엔드포인트를 ‘열’ 수 있지만 한 번에 하나만 사용됩니다. 활성 엔드포인트를 변경하려면 device.set_endpoint()를 참조하십시오.
참고: 명령은 일반적으로 특정 엔드포인트로 전송되어야 합니다. 장치에서 특정 보고서 ID 또는 길이를 받도록 구성된 엔드포인트에 맞지 않는 값이 전송되면 오류가 발생합니다.
참고: 장치가 만들어진 시기와 장소에 따라 일관된 엔드포인트를 사용하지 않을 수 있습니다. 여러 엔드포인트를 검증하면 필요 시 자동으로 대체 엔드포인트를 사용할 수 있습니다.
| 사용 가능한 매개변수 |
|---|
| interface |
| usage |
| usage_page |
| collection |
export function Validate(endpoint){ return (endpoint.interface === 2 && endpoint.collection === 0x0003) || endpoint.interface === 1;
}”Type”
섹션 제목: “”Type””이 함수는 사용할 USB 프로토콜 유형을 설정합니다. 대부분의 장치는 HID 프로토콜을 사용하지만, AIO와 같은 일부 장치는 대신 Raw USB 제어 함수를 사용합니다.
참고: 이 함수가 SignalRGB에서 사용할 수 없는 경우 기본값은 HID 프로토콜입니다.
| 프로토콜 | 문자열 값 |
|---|---|
| HID | ”HID” |
| Lib/raw USB | ”RAWUSB" |
export function Type() { return "Hid"; }"ConflictingProcesses”
섹션 제목: “"ConflictingProcesses””이 함수는 충돌하는 exe 이름 목록을 내보냅니다. 이 중 하나가 실행 중이면 SignalRGB는 플러그인을 초기화하지 않습니다. 충돌하는 프로세스가 종료되거나 사용자가 오류 메시지를 건너뛰면 플러그인이 초기화됩니다.
참고: 이 이름들은 실행 중인 exe 이름과 정확히 일치해야 합니다.
export function ConflictingProcesses() { return ["NGenuity2.exe"];}”ImageUrl”
섹션 제목: “”ImageUrl””이 함수는 장치의 이미지 URL 문자열을 반환합니다. 표준 플러그인 이미지 크기는 1024x1024이며 실제 표시 영역은 920x920입니다.
export function ImageUrl(){ return "URL image string";}