유틸리티
장치 유틸리티
섹션 제목: “장치 유틸리티”device.color()
섹션 제목: “device.color()”이 함수는 캔버스에서 색상 데이터를 가져오는 방법입니다. 캔버스의 장치 픽셀 버퍼 내의 X, Y 위치를 받아 해당 픽셀의 색상을 [R, G, B] 배열로 반환합니다.
| 매개변수 | 유형 | 설명 | 예시 |
|---|---|---|---|
| X | Int | 장치 픽셀 버퍼 내의 X 좌표를 나타내는 정수 값 | 5 |
| Y | Int | 장치 픽셀 버퍼 내의 Y 좌표를 나타내는 정수 값 | 3 |
- 참고: 전송된 X, Y 좌표는 Size() 내보내기로 설정된 픽셀 버퍼 내에 있어야 합니다.
| 반환값 | 유형 | 설명 | 예시 |
|---|---|---|---|
| ColorArray | 1D 배열 | 0-255(16진수 00-FF) 범위의 [R, G, B] 값을 포함하는 길이 3 배열 | [128,158,255] |
아래는 일반적인 상황에서 이 함수를 사용하는 간략화된 예시입니다.
for(var iIdx = 0; iIdx < vLedPositions.length; iIdx++) //For each Led on the device { var iPxX = vLedPositions[iIdx][0]; //Get the X and Y values from the [X,Y] array var iPxY = vLedPositions[iIdx][1]; var col; // create a variable to contain the [R.G.B] array data if(shutdown){ // Check for some settings that can override the Device.color() call col = hexToRgb(shutdownColor) }else if (LightingMode == "Forced") { col = hexToRgb(forcedColor) }else{ col = device.color(iPxX, iPxY); //Calling Device.color with the X and Y values } //Saving the Color data in order into a larger Array of all the LED's data RGBdata[iIdx*3] = col[0]; // Red Channel RGBdata[iIdx*3+1] = col[1]; //Green Channel RGBdata[iIdx*3+2] = col[2]; //Blue Channel TotalLedCount += 1; }device.getBrightness()
섹션 제목: “device.getBrightness()”SignalRGB에서 장치의 현재 밝기 수준을 반환합니다. 이 값은 device.color() 또는 유사 함수가 반환하는 색상에 이미 적용되어 있습니다.
| 반환값 | 유형 | 설명 | 예시 |
|---|---|---|---|
| Brightness | int | 0-100 범위의 현재 밝기 | 42 |
device.getMotherboardName()
섹션 제목: “device.getMotherboardName()”현재 시스템 마더보드의 WMI 이름을 반환합니다.
| 반환값 | 유형 | 설명 | 예시 |
|---|---|---|---|
| MotherboardName | string | 시스템 마더보드 이름 | B550 Aorus Elite |
device.pause()
섹션 제목: “device.pause()”이 함수는 주어진 시간 동안 장치 스레드를 일시 중지하려고 합니다. 운영 체제가 스레드 슬립을 처리하는 방식 때문에 이 일시 중지가 정확하게 보장되지는 않습니다.
| 매개변수 | 유형 | 설명 | 예시 |
|---|---|---|---|
| Duration | Int | 요청된 일시 중지 시간(밀리초) | 1 |
- 참고: Windows의 최소 슬립 시간은 1-2ms이며, 슬립이 길어질수록 정확도가 떨어지므로 정확한 타이밍에는 사용하지 마십시오.
packet[89] = CalculateCrc(packet); device.send_report(packet, 91); device.pause(1); // We need a pause here (between packets), otherwise the ornata can't keep up.device.set_endpoint()
섹션 제목: “device.set_endpoint()”이 함수는 모든 읽기 및 쓰기 명령의 활성 엔드포인트를 변경합니다. 이것은 다른 명령을 위한 여러 개의 열린 엔드포인트가 있는 장치에 유용합니다. 일반적인 예로는 RGB 데이터 엔드포인트와 DPI 설정과 같은 시스템 명령 엔드포인트가 있는 Logitech 장치가 있습니다.
| 매개변수 | 유형 | 설명 | 예시 |
|---|---|---|---|
| interface | HEX | 열 엔드포인트의 인터페이스를 나타내는 0x 16진수 값 | 0x0002 |
| usage | HEX | 열 엔드포인트의 usage를 나타내는 0x 16진수 값 | 0x0006 |
| usage_page | HEX | 열 엔드포인트의 usage_page를 나타내는 0x 16진수 값 | 0x0080 |
| collection | HEX | 열 엔드포인트의 collection을 나타내는 0x 16진수 값 | 0x0001 |
function Apply(){ var packet = [];
packet[0] = 0x11; packet[1] = 0xFF; packet[2] = 0x0C; packet[3] = 0x5E;
device.set_endpoint(1, 0x0602, 0xff43); // System Interface device.write(packet, 20);}device.log()
섹션 제목: “device.log()”이 함수는 플러그인 버전의 console.log입니다. 문자열, 숫자, 객체 또는 배열을 받아 디버깅 및 사용자 정보를 위해 장치의 콘솔에 기록합니다. DPI 변경, 오류 등을 나열하거나 개발 중 패킷 레이아웃이나 읽기 명령의 입력을 확인하는 데 특히 유용합니다.
- 참고: 이 함수는 가능한 곳에서는 JavaScript 변수를 문자열로 변환하려고 합니다. parseInt(), toString(), 또는 JSON.stringify를 사용한 JavaScript 템플릿 리터럴 로깅으로 변환 및 형식에 대한 더 많은 제어를 할 수 있습니다.
| 매개변수 | 유형 | 설명 | 예시 | 기본값 |
|---|---|---|---|---|
| Item | Javascript Value | 기록할 문자열, 숫자, 배열 또는 다른 JavaScript 값 | ||
| Options | JavaScript Object | 설정 매개변수를 포함하는 Javascript 객체 | {hex: True} | {} |
| 옵션 | 설명 | 유형 | 기본값 |
|---|---|---|---|
| Hex | 정수를 10진수 또는 16진수 형식으로 출력할지 설정 | Boolean | False |
| toFile | 출력된 항목을 디버그 로그에 표시할지, 아니면 장치 콘솔에만 표시할지 설정 | Boolean | False |
let ImportantData = "i have really important info here"; device.log(ImportantData, {toFile: true})알림은 장치에 문제가 있는 경우 사용자에게 시각적으로 표시하는 데 사용할 수 있습니다. 장치가 제대로 설정되지 않은 것과 같이 심각한 문제에만 드물게 사용해야 합니다.
device.notify()
섹션 제목: “device.notify()”사용자에 대한 새 알림을 생성합니다. 반환값을 사용하여 사용자가 알려진 문제를 해결했을 때 알림을 선택적으로 제거할 수 있습니다.
| 알림 우선순위 | 설명 | 값 |
|---|---|---|
| Info | 일반 알림 | 0 |
| Important | 중요 (강조 표시) 알림 | 1 |
| 매개변수 | 유형 | 설명 | 예시 |
|---|---|---|---|
| Title | String | 알림 제목 | Firmware Incompatible |
| Description | String | 알림 설명 | Firmware Version must be >= 2.0.0 |
| Priority | Int | 알림 우선순위 | 0 | 1 |
| 반환값 | 유형 | 설명 |
|---|---|---|
| AlertId | String | 생성된 알림의 Id 문자열 |
let Alertid = device.notify("Really Important Issue", "Please Fix", 1);device.denotify()
섹션 제목: “device.denotify()”지정된 알림이 있으면 제거합니다.
| 매개변수 | 유형 | 설명 |
|---|---|---|
| AlertId | String | device.notify에서 반환된 AlertId |
let Alertid = device.notify("Really Important Issue", "Please Fix", 1); // Do stuff and recheck if the alerted issue is fixed device.denotify(AlertId);메시지
섹션 제목: “메시지”장치 메시지는 중요하지만 심각하지 않은 정보를 사용자에게 전달하는 방법을 제공합니다. 이 메시지는 장치 페이지에만 나타납니다.

device.addMessage()
섹션 제목: “device.addMessage()”지정된 MessageId로 새 장치 메시지를 추가합니다.
| 매개변수 | 유형 | 설명 | 예시 |
|---|---|---|---|
| messageId | string | 장치 메시지에 연결된 MessageId | ”mymessage” |
| message | string | 표시될 메시지 텍스트 | ”The message” |
| tooltip | string | 마우스를 올릴 때 표시되는 추가 텍스트 | ”Some more info” |
device.addMessage("message1", "Hey Dude you should know this", "Here's some extra info about it too");device.removeMessage()
섹션 제목: “device.removeMessage()”지정된 MessageId로 생성된 메시지가 있으면 제거합니다.
| 매개변수 | 유형 | 설명 |
|---|---|---|
| messageId | string | 제거할 MessageId |
device.addMessage("message1", "Hey Dude you should know this", "Here's some extra info about it too");
// message is no longer relevant device.removeMessage("message1");