Skip to content

[하드웨어][5월 정기배포] develop <= develop-hw#3069

Open
Tnks2U wants to merge 6 commits into
developfrom
develop-hw
Open

[하드웨어][5월 정기배포] develop <= develop-hw#3069
Tnks2U wants to merge 6 commits into
developfrom
develop-hw

Conversation

@Tnks2U
Copy link
Copy Markdown
Collaborator

@Tnks2U Tnks2U commented May 21, 2026

@Tnks2U Tnks2U requested review from chanlee, kimorkim and prisml May 21, 2026 05:06
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

eslint

⚠️ [eslint] <space-before-blocks> reported by reviewdog 🐶
Missing space before opening brace.

if(this.isplaying){
const arr = this.makeContStepPacket(-1, 0);
const packet = Buffer.from(arr);
this.requestLocalData(packet);
await new Promise(resolve => setTimeout(resolve, 50)); // 50ms 대기
}


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace resolve·=>·setTimeout(resolve,·50));· with (resolve)·=>·setTimeout(resolve,·50));

await new Promise(resolve => setTimeout(resolve, 50)); // 50ms 대기


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ;


⚠️ [eslint] <semi> reported by reviewdog 🐶
Missing semicolon.


⚠️ [eslint] <curly> reported by reviewdog 🐶
Expected { after 'if' condition.


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 147. Maximum allowed is 100.

console.error('패킷 길이 0 → 20바이트 버림',Buffer.from(this.dataReceiveQueue.slice(0, 20)).toString('hex').match(/.{1,2}/g).join(' '));


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace '패킷·길이·0·→·20바이트·버림',Buffer.from(this.dataReceiveQueue.slice(0,·20)).toString('hex').match(/.{1,2}/g).join('·') with ⏎························'패킷·길이·0·→·20바이트·버림',⏎························Buffer.from(this.dataReceiveQueue.slice(0,·20))⏎····························.toString('hex')⏎····························.match(/.{1,2}/g)⏎····························.join('·')⏎····················

console.error('패킷 길이 0 → 20바이트 버림',Buffer.from(this.dataReceiveQueue.slice(0, 20)).toString('hex').match(/.{1,2}/g).join(' '));


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.

console.error('패킷 길이 0 → 20바이트 버림',Buffer.from(this.dataReceiveQueue.slice(0, 20)).toString('hex').match(/.{1,2}/g).join(' '));


⚠️ [eslint] <curly> reported by reviewdog 🐶
Expected { after 'if' condition.

if (this.dataReceiveQueue.length < dataPacketSize) break;


⚠️ [eslint] <curly> reported by reviewdog 🐶
Expected { after 'if' condition.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ;


⚠️ [eslint] <semi> reported by reviewdog 🐶
Missing semicolon.

if (!data) return
const bufferData = Buffer.from(data);


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.

const bufferData = Buffer.from(data);


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 202. Maximum allowed is 100.

console.log(`Rx[${opcode.toString(16).padStart(2, '0')}]: ${Buffer.from(bufferData).toString('hex').match(/.{1,2}/g).join(' ')} /${bufferData.length} = ${(bufferData[7] << 8) | bufferData[8]}`);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Rx[${opcode.toString(16).padStart(2,·'0')}]:·${Buffer.from(bufferData).toString('hex').match(/.{1,2}/g).join('·')}·/${bufferData.length}·=·${(bufferData[7]·<<·8)·|·bufferData[8]} with ⏎············Rx[${opcode.toString(16).padStart(2,·'0')}]:·${Buffer.from(bufferData)⏎················.toString('hex')⏎················.match(/.{1,2}/g)⏎················.join('·')}·/${bufferData.length}·=·${(bufferData[7]·<<·8)·|·bufferData[8]}⏎········

console.log(`Rx[${opcode.toString(16).padStart(2, '0')}]: ${Buffer.from(bufferData).toString('hex').match(/.{1,2}/g).join(' ')} /${bufferData.length} = ${(bufferData[7] << 8) | bufferData[8]}`);


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.

console.log(`Rx[${opcode.toString(16).padStart(2, '0')}]: ${Buffer.from(bufferData).toString('hex').match(/.{1,2}/g).join(' ')} /${bufferData.length} = ${(bufferData[7] << 8) | bufferData[8]}`);


⚠️ [eslint] <keyword-spacing> reported by reviewdog 🐶
Expected space(s) after "if".

if(sensor.TILT_X != xx || sensor.TILT_Y != yy || sensor.TILT_Z != zz){


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace (sensor.TILT_X·!=·xx·||·sensor.TILT_Y·!=·yy·||·sensor.TILT_Z·!=·zz) with ·(sensor.TILT_X·!=·xx·||·sensor.TILT_Y·!=·yy·||·sensor.TILT_Z·!=·zz)·

if(sensor.TILT_X != xx || sensor.TILT_Y != yy || sensor.TILT_Z != zz){


⚠️ [eslint] <space-before-blocks> reported by reviewdog 🐶
Missing space before opening brace.

if(sensor.TILT_X != xx || sensor.TILT_Y != yy || sensor.TILT_Z != zz){
Entry.engine.fireEvent('pp_when_tilted');
}


⚠️ [eslint] <keyword-spacing> reported by reviewdog 🐶
Expected space(s) after "if".


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace (sensor.BUTTON·!=·bufferData[11]) with ·(sensor.BUTTON·!=·bufferData[11])·


⚠️ [eslint] <space-before-blocks> reported by reviewdog 🐶
Missing space before opening brace.

if(sensor.BUTTON != bufferData[11]){
Entry.engine.fireEvent('pp_when_button_pressed');
}


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 144. Maximum allowed is 100.

Entry.toast.alert(Lang.template.pingpong_lite_cube_connection_lost,Lang.template.pingpong_lite_cube_reconnect_notice,false);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Lang.template.pingpong_lite_cube_connection_lost,Lang.template.pingpong_lite_cube_reconnect_notice,false with ⏎························Lang.template.pingpong_lite_cube_connection_lost,⏎························Lang.template.pingpong_lite_cube_reconnect_notice,⏎························false⏎····················

Entry.toast.alert(Lang.template.pingpong_lite_cube_connection_lost,Lang.template.pingpong_lite_cube_reconnect_notice,false);


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 146. Maximum allowed is 100.

Entry.toast.success(Lang.template.pingpong_lite_cube_connection_first,Lang.template.pingpong_lite_cube_first_connected,false);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Lang.template.pingpong_lite_cube_connection_first,Lang.template.pingpong_lite_cube_first_connected,false with ⏎························Lang.template.pingpong_lite_cube_connection_first,⏎························Lang.template.pingpong_lite_cube_first_connected,⏎························false⏎····················

Entry.toast.success(Lang.template.pingpong_lite_cube_connection_first,Lang.template.pingpong_lite_cube_first_connected,false);


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 138. Maximum allowed is 100.

Entry.toast.success(Lang.template.pingpong_lite_cube_connection_success,Lang.template.pingpong_lite_cube_all_connected,false);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Lang.template.pingpong_lite_cube_connection_success,Lang.template.pingpong_lite_cube_all_connected,false with ⏎················Lang.template.pingpong_lite_cube_connection_success,⏎················Lang.template.pingpong_lite_cube_all_connected,⏎················false⏎············

Entry.toast.success(Lang.template.pingpong_lite_cube_connection_success,Lang.template.pingpong_lite_cube_all_connected,false);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ==this.cubeCount- with ·==·this.cubeCount·-·

if (bufferData[9]==this.cubeCount-1) {


⚠️ [eslint] <space-infix-ops> reported by reviewdog 🐶
Operator '==' must be spaced.

if (bufferData[9]==this.cubeCount-1) {


⚠️ [eslint] <space-infix-ops> reported by reviewdog 🐶
Operator '-' must be spaced.

if (bufferData[9]==this.cubeCount-1) {


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 142. Maximum allowed is 100.

Entry.toast.success(Lang.template.pingpong_lite_cube_connection_success,Lang.template.pingpong_lite_cube_all_connected,false);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Lang.template.pingpong_lite_cube_connection_success,Lang.template.pingpong_lite_cube_all_connected,false with ⏎····················Lang.template.pingpong_lite_cube_connection_success,⏎····················Lang.template.pingpong_lite_cube_all_connected,⏎····················false⏎················

Entry.toast.success(Lang.template.pingpong_lite_cube_connection_success,Lang.template.pingpong_lite_cube_all_connected,false);


⚠️ [eslint] <brace-style> reported by reviewdog 🐶
Statement inside of curly braces should be on next line.

setTimeout(() => {this.requestLocalData(this.makePackets('getSensorData'));}, 3000);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace this.requestLocalData(this.makePackets('getSensorData')); with ⏎····················this.requestLocalData(this.makePackets('getSensorData'));⏎················

setTimeout(() => {this.requestLocalData(this.makePackets('getSensorData'));}, 3000);


⚠️ [eslint] <brace-style> reported by reviewdog 🐶
Closing curly brace should be on the same line as opening curly brace or on the line after the previous block.

setTimeout(() => {this.requestLocalData(this.makePackets('getSensorData'));}, 3000);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete

// 하드웨어 기기에 전달할 데이터


⚠️ [eslint] <curly> reported by reviewdog 🐶
Expected { after 'if' condition.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ;


⚠️ [eslint] <semi> reported by reviewdog 🐶
Missing semicolon.

if (!data) return
const bufferData = Buffer.from(data);


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.

const bufferData = Buffer.from(data);


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 147. Maximum allowed is 100.

console.log(`Tx[${opcode.toString(16).padStart(2, '0')}]: ${bufferData.toString('hex').match(/.{1,2}/g).join(' ')} /${bufferData.length}`);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace Tx[${opcode.toString(16).padStart(2,·'0')}]:·${bufferData.toString('hex').match(/.{1,2}/g).join('·')}·/${bufferData.length} with ⏎············Tx[${opcode.toString(16).padStart(2,·'0')}]:·${bufferData⏎················.toString('hex')⏎················.match(/.{1,2}/g)⏎················.join('·')}·/${bufferData.length}⏎········

console.log(`Tx[${opcode.toString(16).padStart(2, '0')}]: ${bufferData.toString('hex').match(/.{1,2}/g).join(' ')} /${bufferData.length}`);


⚠️ [eslint] <object-curly-spacing> reported by reviewdog 🐶
A space is required after '{'.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace x:0,·y:0, with ·x:·0,·y:·0·


⚠️ [eslint] <object-curly-spacing> reported by reviewdog 🐶
A space is required before '}'.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete


⚠️ [eslint] <prefer-const> reported by reviewdog 🐶
'duration' is never reassigned. Use 'const' instead.

let duration = Math.round((60 / this.tempo) * beats * 100);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace = with ·=·


⚠️ [eslint] <space-infix-ops> reported by reviewdog 🐶
Operator '=' must be spaced.


⚠️ [eslint] <prefer-const> reported by reviewdog 🐶
'options' is never reassigned. Use 'const' instead.


⚠️ [eslint] <prefer-const> reported by reviewdog 🐶
'usedCubeIds' is never reassigned. Use 'const' instead.


⚠️ [eslint] <prefer-const> reported by reviewdog 🐶
'dummyPacket' is never reassigned. Use 'const' instead.

let dummyPacket = packets[0].slice();


⚠️ [eslint] <brace-style> reported by reviewdog 🐶
Statement inside of curly braces should be on next line.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace return·hex·-·256; with ⏎············return·hex·-·256;⏎········


⚠️ [eslint] <brace-style> reported by reviewdog 🐶
Closing curly brace should be on the same line as opening curly brace or on the line after the previous block.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ·


⚠️ [eslint] <space-before-blocks> reported by reviewdog 🐶
Missing space before opening brace.

setLanguage(){
const lang = {
ko: {
template: {
pingpong_lite_cube_connection_first: "큐브 연결 준비됨",
pingpong_lite_cube_first_connected: "첫 번째 큐브가 연결되었습니다",
pingpong_lite_cube_connection_lost: "연결 끊어짐",
pingpong_lite_cube_reconnect_notice: "큐브의 연결이 끊어졌습니다.\n연결을 재시도합니다",
pingpong_lite_cube_connection_success: "연결 완료",
pingpong_lite_cube_all_connected: "모든 큐브가 연결되었습니다",
...(this.cubeCount === 1 ?{
pingpong_lite_g1_when_button_pressed: '%1 큐브 버튼을 눌렀을 때',
pingpong_lite_g1_when_tilted: '%1 큐브를 %2 방향으로 기울였을 때',
pingpong_lite_g1_is_button_pressed: '큐브 버튼이 눌렸는가?',
pingpong_lite_g1_is_tilted: '큐브가 %1 방향으로 기울어졌는가?',
pingpong_lite_g1_get_tilt_value: '%1 방향 큐브 기울기',
pingpong_lite_g1_get_sensor_value: '%1 센서값',
pingpong_lite_g1_motor_rotate: '모터를 %1 방향으로 %2 도 회전하기 %3',
pingpong_lite_g1_start_motor_rotate: '모터의 속도를 %1으로 계속 회전하기 %2',
pingpong_lite_g1_stop_motor_rotate: '모터 멈추기 %1',
pingpong_lite_g1_is_top_shape: '큐브 윗면에 %1 모양이 있는가?',
pingpong_lite_g1_rotate_servo_mortor: '서보모터를 %1도로 설정하기 %2',
pingpong_lite_g1_set_dot_pixel: '도트 X:%1 Y:%2 %3 %4',
pingpong_lite_g1_set_dot_string: '도트에 문자열 %1 %2초동안 출력 %3',
pingpong_lite_g1_set_dot_clear: '도트 화면 지우기 %1',
pingpong_lite_g1_playNoteForBeats: '%1 음을 %2 박자로 연주하기 %3',
pingpong_lite_art_set_steering_direction: '조향 바퀴를 %1 방향으로 설정',
pingpong_lite_art_move_by_distance: '%1으로%2cm 이동하기',
pingpong_lite_g1_restForBeats: '%1 박자 쉬기 %2',
pingpong_lite_g1_setTempo: '악보 빠르기를 %1 으로 정하기 %2',
pingpong_lite_g1_getTempo: '악보 빠르기',
}:{
[`pingpong_lite_g${this.cubeCount}_when_button_pressed`]: '%1 %2 큐브 버튼을 눌렀을 때',
[`pingpong_lite_g${this.cubeCount}_when_tilted`]: '%1 %2 큐브를 %3로 기울였을 때',
[`pingpong_lite_g${this.cubeCount}_is_button_pressed`]: '%1 큐브 버튼이 눌렸는가?',
[`pingpong_lite_g${this.cubeCount}_is_tilted`]: '%1 큐브가 %2로 기울어졌는가?',
[`pingpong_lite_g${this.cubeCount}_get_tilt_value`]: '%1 큐브의 %2 방향 기울기',
[`pingpong_lite_g${this.cubeCount}_get_sensor_value`]: '%1 큐브의 %2 센서값',
[`pingpong_lite_g${this.cubeCount}_motor_rotate`]: '%1 모터를 %2 방향으로 %3 도 회전하기 %4',
[`pingpong_lite_g${this.cubeCount}_start_motor_rotate`]: '%1 모터의 속도를 %2으로 계속 회전하기 %3',
[`pingpong_lite_g${this.cubeCount}_stop_motor_rotate`]: '%1 모터 멈추기 %2',
[`pingpong_lite_g${this.cubeCount}_is_top_shape`]: '%1 큐브의 윗면에 %2 모양이 있는가?',
[`pingpong_lite_g${this.cubeCount}_rotate_servo_mortor`]: '%1 번째 큐브의 서보모터 %2도로 설정하기 %3',
[`pingpong_lite_g${this.cubeCount}_set_dot_pixel`]: '%1 번째 큐브의 도트 X:%2 Y:%3 %4 %5',
[`pingpong_lite_g${this.cubeCount}_set_dot_string`]: '%1 번째 큐브에 도트 문자열 %2 %3초동안 보여주기 %4',
[`pingpong_lite_g${this.cubeCount}_set_dot_clear`]: '%1 번째 큐브의 화면 지우기 %2',
[`pingpong_lite_g${this.cubeCount}_playNoteForBeats`]: '%1 큐브의 %2 음을 %3 박자로 연주하기 %4',
[`pingpong_lite_g${this.cubeCount}_restForBeats`]: '%1 박자 쉬기 %2',
[`pingpong_lite_g${this.cubeCount}_setTempo`]: '악보 빠르기를 %1 으로 정하기 %2',
[`pingpong_lite_g${this.cubeCount}_getTempo`]: '악보 빠르기',
...(() => {
switch (this.cubeCount) {
case 2: return {
pingpong_lite_g2_multi_motor_rotate: '모터1: %1 방향 %2 도, 모터2: %3 방향 %4 도 회전하기 %5',
pingpong_lite_g2_multi_start_motor_rotate: '모터1 속도를 %1, 모터2 속도를 %2으로 계속 회전하기 %3',
pingpong_lite_g2_multi_playChordForBeats: '큐브1: %1, 큐브2: %2, %3박자로 연주하기 %4',
};
case 3: return {
pingpong_lite_g3_multi_motor_rotate: '모터1: %1 방향 %2 도, 모터2: %3 방향 %4 도, 모터3: %5방향 %6도 회전하기 %7',
pingpong_lite_g3_multi_start_motor_rotate: '모터1 속도를 %1, 모터2 속도를 %2, 모터3 속도를 %3으로 계속 회전하기 %4',
pingpong_lite_g3_multi_playChordForBeats: '큐브1: %1, 큐브2: %2, 큐브3: %3, %4박자로 연주하기 %5',
};
case 4: return {
pingpong_lite_g4_multi_motor_rotate: '모터1: %1 방향 %2 도, 모터2: %3 방향 %4 도, 모터3: %5방향 %6도, 모터4: %7 방향 %8 도 회전하기 %9',
pingpong_lite_g4_multi_start_motor_rotate: '모터1 속도를 %1, 모터2 속도를 %2, 모터3 속도를 %3, 모터4 속도를 %4으로 계속 회전하기 %5',
pingpong_lite_g4_multi_playChordForBeats: '큐브1: %1, 큐브2: %2, 큐브3: %3, 큐브4: %4, %5박자로 연주하기 %6',
};
default: return {};
}
})(),
}),
},
Blocks: {
pingpong_right: '오른쪽',
pingpong_left: '왼쪽',
pingpong_direction :[
['앞쪽','front'],
['뒤쪽','back']
],
pingpong_rotate_cw: '시계',
pingpong_rotate_ccw: '반시계',
pingpong_sensor_proximity: '근접',
pingpong_sensor_ain: '아날로그',
pingpong_dot_on: '켜기',
pingpong_dot_off: '끄기',
pingpong_opts_cube_tiltDir: [
['동그라미', 'F_CIRCLE'],
['세모', 'B_TRIANGLE'],
['네모', 'L_RECTANGLE'],
['별', 'R_STAR'],
],
pingpong_opts_cube_dir6: [
['네모', 'DF_RECTANGLE'],
['별', 'DB_STAR'],
['세모', 'DL_TRIANGLE'],
['동그라미', 'DR_CIRCLE'],
['하트', 'DU_HEART'],
['빈칸', 'DD_NONE'],
],
pingpong_opts_music_notes: [
['라 (A3)', 45],
['라# (A3#)', 46],
['시 (B3)', 47],
['도 (C4)', 48],
['도# (C4#)', 49],
['레 (D4)', 50],
['레# (D4#)', 51],
['미 (E4)', 52],
['파 (F4)', 53],
['파# (F4#)', 54],
['솔 (G4)', 55],
['솔# (G4#)', 56],
['라 (A4)', 57],
['라# (A4#)', 58],
['시 (B4)', 59],
['도 (C5)', 60],
['도# (C5#)', 61],
['레 (D5)', 62],
['레# (D5#)', 63],
['미 (E5)', 64],
['파 (F5)', 65],
['파# (F5#)', 66],
['솔 (G5)', 67],
['솔# (G5#)', 68],
['라 (A5)', 69],
['라# (A5#)', 70],
['시 (B5)', 71],
['도 (C6)', 72],
],
pingpong_opts_mono :[
['왼쪽 45°' ,45],
['왼쪽 40°' ,50],
['왼쪽 35°' ,55],
['왼쪽 30°' ,60],
['왼쪽 25°' ,65],
['왼쪽 20°' ,70],
['왼쪽 15°' ,75],
['왼쪽 10°' ,80],
['왼쪽 5°' ,85],
['정면' ,90],
['오른쪽 5°' ,95],
['오른쪽 10°' ,100],
['오른쪽 15°' ,105],
['오른쪽 20°' ,110],
['오른쪽 25°' ,115],
['오른쪽 30°' ,120],
['오른쪽 35°' ,125],
['오른쪽 40°' ,130],
['오른쪽 45°' ,135],
],
pingpong_lite_g2_cube_id: [
['1번', 0],
['2번', 1],
],
pingpong_lite_g2_cube_all: [
['1번', 0],
['2번', 1],
['모든', -1],
],
pingpong_lite_g3_cube_id: [
['1번', 0],
['2번', 1],
['3번', 2],
],
pingpong_lite_g3_cube_all: [
['1번', 0],
['2번', 1],
['3번', 2],
['모든', -1],
],
pingpong_lite_g4_cube_id: [
['1번', 0],
['2번', 1],
['3번', 2],
['4번', 3],
],
pingpong_lite_g4_cube_all: [
['1번', 0],
['2번', 1],
['3번', 2],
['4번', 3],
['모든', -1],
],
},
},
en: {
template: {
pingpong_lite_cube_connection_first: "Cube connection ready",
pingpong_lite_cube_first_connected: "First cube connected",
pingpong_lite_cube_connection_lost: "Connection lost",
pingpong_lite_cube_reconnect_notice: "Cube connection lost.\nRetrying connection",
pingpong_lite_cube_connection_success: "Connection successful",
pingpong_lite_cube_all_connected: "All cubes connected",
...(this.cubeCount === 1 ? {
pingpong_lite_g1_when_button_pressed: 'When %1 cube button is pressed',
pingpong_lite_g1_when_tilted: 'When %1 cube is tilted to %2',
pingpong_lite_g1_is_button_pressed: 'Is the cube button pressed?',
pingpong_lite_g1_is_tilted: 'Is the cube tilted to %1?',
pingpong_lite_g1_get_tilt_value: 'Cube tilt value (%1)',
pingpong_lite_g1_get_sensor_value: '%1 sensor value',
pingpong_lite_g1_motor_rotate: 'Rotate motor %2 degrees to %1 direction %3',
pingpong_lite_g1_start_motor_rotate: 'Rotate motor continuously at speed %1 %2',
pingpong_lite_g1_stop_motor_rotate: 'Stop motor %1',
pingpong_lite_g1_is_top_shape: 'Is there a %1 shape on top of the cube?',
pingpong_lite_g1_rotate_servo_mortor: 'Set servo motor to %1 degrees %2',
pingpong_lite_g1_set_dot_pixel: 'Dot X:%1 Y:%2 %3 %4',
pingpong_lite_g1_set_dot_string: 'Display "%1" on dot for %2 seconds %3',
pingpong_lite_g1_set_dot_clear: 'Clear dot display %1',
pingpong_lite_g1_playNoteForBeats: 'Play note %1 for %2 beats %3',
pingpong_lite_art_set_steering_direction: 'Set steering wheel to %1 direction',
pingpong_lite_art_move_by_distance: 'Move %2 cm to %1',
pingpong_lite_g1_restForBeats: 'Rest for %1 beats %2',
pingpong_lite_g1_setTempo: 'Set tempo to %1 %2',
pingpong_lite_g1_getTempo: 'Tempo',
} : {
[`pingpong_lite_g${this.cubeCount}_when_button_pressed`]: 'When %1 %2 cube button is pressed',
[`pingpong_lite_g${this.cubeCount}_when_tilted`]: 'When %1 %2 cube is tilted to %3',
[`pingpong_lite_g${this.cubeCount}_is_button_pressed`]: 'Is %1 cube button pressed?',
[`pingpong_lite_g${this.cubeCount}_is_tilted`]: 'Is %1 cube tilted to %2?',
[`pingpong_lite_g${this.cubeCount}_get_tilt_value`]: '%1 cube tilt value (%2)',
[`pingpong_lite_g${this.cubeCount}_get_sensor_value`]: '%1 cube %2 sensor value',
[`pingpong_lite_g${this.cubeCount}_motor_rotate`]: 'Rotate %1 motor %3 degrees to %2 direction %4',
[`pingpong_lite_g${this.cubeCount}_start_motor_rotate`]: 'Rotate %1 motor continuously at speed %2 %3',
[`pingpong_lite_g${this.cubeCount}_stop_motor_rotate`]: 'Stop %1 motor %2',
[`pingpong_lite_g${this.cubeCount}_is_top_shape`]: 'Is there a %2 shape on top of %1 cube?',
[`pingpong_lite_g${this.cubeCount}_rotate_servo_mortor`]: 'Set servo motor of cube %1 to %2 degrees %3',
[`pingpong_lite_g${this.cubeCount}_set_dot_pixel`]: 'Cube %1 dot X:%2 Y:%3 %4 %5',
[`pingpong_lite_g${this.cubeCount}_set_dot_string`]: 'Display "%2" on cube %1 for %3 seconds %4',
[`pingpong_lite_g${this.cubeCount}_set_dot_clear`]: 'Clear display of cube %1 %2',
[`pingpong_lite_g${this.cubeCount}_playNoteForBeats`]: 'Play note %2 on cube %1 for %3 beats %4',
[`pingpong_lite_g${this.cubeCount}_restForBeats`]: 'Rest for %1 beats %2',
[`pingpong_lite_g${this.cubeCount}_setTempo`]: 'Set tempo to %1 %2',
[`pingpong_lite_g${this.cubeCount}_getTempo`]: 'Tempo',
...(() => {
switch (this.cubeCount) {
case 2: return {
pingpong_lite_g2_multi_motor_rotate: 'Motor1: rotate %2 degrees %1, Motor2: rotate %4 degrees %3 %5',
pingpong_lite_g2_multi_start_motor_rotate: 'Motor1 speed %1, Motor2 speed %2 continuous rotation %3',
pingpong_lite_g2_multi_playChordForBeats: 'Cube1: %1, Cube2: %2, play for %3 beats %4',
};
case 3: return {
pingpong_lite_g3_multi_motor_rotate: 'Motor1: rotate %2 degrees %1, Motor2: rotate %4 degrees %3, Motor3: rotate %6 degrees %5 %7',
pingpong_lite_g3_multi_start_motor_rotate: 'Motor1 speed %1, Motor2 speed %2, Motor3 speed %3 continuous rotation %4',
pingpong_lite_g3_multi_playChordForBeats: 'Cube1: %1, Cube2: %2, Cube3: %3, play for %4 beats %5',
};
case 4: return {
pingpong_lite_g4_multi_motor_rotate: 'Motor1: rotate %2 degrees %1, Motor2: rotate %4 degrees %3, Motor3: rotate %6 degrees %5, Motor4: rotate %8 degrees %7 %9',
pingpong_lite_g4_multi_start_motor_rotate: 'Motor1 speed %1, Motor2 speed %2, Motor3 speed %3, Motor4 speed %4 continuous rotation %5',
pingpong_lite_g4_multi_playChordForBeats: 'Cube1: %1, Cube2: %2, Cube3: %3, Cube4: %4, play for %5 beats %6',
};
default: return {};
}
})(),
}),
},
Blocks: {
pingpong_right: 'Right',
pingpong_left: 'Left',
pingpong_direction: [
['Forward', 'front'],
['Backward', 'back']
],
pingpong_rotate_cw: 'Clockwise',
pingpong_rotate_ccw: 'Counterclockwise',
pingpong_sensor_proximity: 'Proximity',
pingpong_sensor_ain: 'Analog',
pingpong_dot_on: 'On',
pingpong_dot_off: 'Off',
pingpong_opts_cube_tiltDir: [
['Circle', 'F_CIRCLE'],
['Triangle', 'B_TRIANGLE'],
['Square', 'L_RECTANGLE'],
['Star', 'R_STAR'],
],
pingpong_opts_cube_dir6: [
['Square', 'DF_RECTANGLE'],
['Star', 'DB_STAR'],
['Triangle', 'DL_TRIANGLE'],
['Circle', 'DR_CIRCLE'],
['Heart', 'DU_HEART'],
['None', 'DD_NONE'],
],
pingpong_opts_music_notes: [
['A (A3)', 45],
['A# (A3#)', 46],
['B (B3)', 47],
['C (C4)', 48],
['C# (C4#)', 49],
['D (D4)', 50],
['D# (D4#)', 51],
['E (E4)', 52],
['F (F4)', 53],
['F# (F4#)', 54],
['G (G4)', 55],
['G# (G4#)', 56],
['A (A4)', 57],
['A# (A4#)', 58],
['B (B4)', 59],
['C (C5)', 60],
['C# (C5#)', 61],
['D (D5)', 62],
['D# (D5#)', 63],
['E (E5)', 64],
['F (F5)', 65],
['F# (F5#)', 66],
['G (G5)', 67],
['G# (G5#)', 68],
['A (A5)', 69],
['A# (A5#)', 70],
['B (B5)', 71],
['C (C6)', 72],
],
pingpong_opts_mono: [
['Left 45°', 45],
['Left 40°', 50],
['Left 35°', 55],
['Left 30°', 60],
['Left 25°', 65],
['Left 20°', 70],
['Left 15°', 75],
['Left 10°', 80],
['Left 5°', 85],
['Center', 90],
['Right 5°', 95],
['Right 10°', 100],
['Right 15°', 105],
['Right 20°', 110],
['Right 25°', 115],
['Right 30°', 120],
['Right 35°', 125],
['Right 40°', 130],
['Right 45°', 135],
],
},
}
};
return lang;
}


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "큐브·연결·준비됨" with '큐브·연결·준비됨'

pingpong_lite_cube_connection_first: "큐브 연결 준비됨",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "첫·번째·큐브가·연결되었습니다" with '첫·번째·큐브가·연결되었습니다'

pingpong_lite_cube_first_connected: "첫 번째 큐브가 연결되었습니다",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "연결·끊어짐" with '연결·끊어짐'

pingpong_lite_cube_connection_lost: "연결 끊어짐",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·"큐브의·연결이·끊어졌습니다.\n연결을·재시도합니다" with ⏎························'큐브의·연결이·끊어졌습니다.\n연결을·재시도합니다'

pingpong_lite_cube_reconnect_notice: "큐브의 연결이 끊어졌습니다.\n연결을 재시도합니다",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "연결·완료" with '연결·완료'

pingpong_lite_cube_connection_success: "연결 완료",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "모든·큐브가·연결되었습니다" with '모든·큐브가·연결되었습니다'

pingpong_lite_cube_all_connected: "모든 큐브가 연결되었습니다",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·? with ⏎························?·


⚠️ [eslint] <space-infix-ops> reported by reviewdog 🐶
Operator '?' must be spaced.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_g1_when_button_pressed: '%1 큐브 버튼을 눌렀을 때',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_g1_when_tilted: '%1 큐브를 %2 방향으로 기울였을 때',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_g1_is_button_pressed: '큐브 버튼이 눌렸는가?',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_g1_is_tilted: '큐브가 %1 방향으로 기울어졌는가?',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_g1_get_tilt_value: '%1 방향 큐브 기울기',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_g1_get_sensor_value: '%1 센서값',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_g1_motor_rotate: '모터를 %1 방향으로 %2 도 회전하기 %3',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace pingpong_lite_g1_start_motor_rotate: with ······pingpong_lite_g1_start_motor_rotate:⏎·································

pingpong_lite_g1_start_motor_rotate: '모터의 속도를 %1으로 계속 회전하기 %2',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_g1_stop_motor_rotate: '모터 멈추기 %1',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ······························

pingpong_lite_g1_is_top_shape: '큐브 윗면에 %1 모양이 있는가?',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ······························

pingpong_lite_g1_rotate_servo_mortor: '서보모터를 %1도로 설정하기 %2',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_g1_set_dot_pixel: '도트 X:%1 Y:%2 %3 %4',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ······························

pingpong_lite_g1_set_dot_string: '도트에 문자열 %1 %2초동안 출력 %3',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ······························

pingpong_lite_g1_set_dot_clear: '도트 화면 지우기 %1',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_g1_playNoteForBeats: '%1 음을 %2 박자로 연주하기 %3',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························pingpong_lite_art_set_steering_direction: with ······························pingpong_lite_art_set_steering_direction:⏎·································

pingpong_lite_art_set_steering_direction: '조향 바퀴를 %1 방향으로 설정',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_art_move_by_distance: '%1으로%2cm 이동하기',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_g1_restForBeats: '%1 박자 쉬기 %2',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ······························

pingpong_lite_g1_setTempo: '악보 빠르기를 %1 으로 정하기 %2',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_g1_getTempo: '악보 빠르기',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace }: with ······}⏎························:·


⚠️ [eslint] <space-infix-ops> reported by reviewdog 🐶
Operator ':' must be spaced.


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 103. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_when_button_pressed`]: '%1 %2 큐브 버튼을 눌렀을 때',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_when_button_pressed]: with ······························[pingpong_lite_g${this.cubeCount}_when_button_pressed]:⏎·································

[`pingpong_lite_g${this.cubeCount}_when_button_pressed`]: '%1 %2 큐브 버튼을 눌렀을 때',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_when_tilted]: with ······························[pingpong_lite_g${this.cubeCount}_when_tilted]:⏎·································

[`pingpong_lite_g${this.cubeCount}_when_tilted`]: '%1 %2 큐브를 %3로 기울였을 때',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_is_button_pressed]: with ······························[pingpong_lite_g${this.cubeCount}_is_button_pressed]:⏎·································

[`pingpong_lite_g${this.cubeCount}_is_button_pressed`]: '%1 큐브 버튼이 눌렸는가?',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace [pingpong_lite_g${this.cubeCount}_is_tilted]: with ······[pingpong_lite_g${this.cubeCount}_is_tilted]:⏎·································

[`pingpong_lite_g${this.cubeCount}_is_tilted`]: '%1 큐브가 %2로 기울어졌는가?',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_get_tilt_value]: with ······························[pingpong_lite_g${this.cubeCount}_get_tilt_value]:⏎·································

[`pingpong_lite_g${this.cubeCount}_get_tilt_value`]: '%1 큐브의 %2 방향 기울기',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_get_sensor_value]: with ······························[pingpong_lite_g${this.cubeCount}_get_sensor_value]:⏎·································

[`pingpong_lite_g${this.cubeCount}_get_sensor_value`]: '%1 큐브의 %2 센서값',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 105. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_motor_rotate`]: '%1 모터를 %2 방향으로 %3 도 회전하기 %4',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_motor_rotate]: with ······························[pingpong_lite_g${this.cubeCount}_motor_rotate]:⏎·································

[`pingpong_lite_g${this.cubeCount}_motor_rotate`]: '%1 모터를 %2 방향으로 %3 도 회전하기 %4',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 110. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_start_motor_rotate`]: '%1 모터의 속도를 %2으로 계속 회전하기 %3',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_start_motor_rotate]: with ······························[pingpong_lite_g${this.cubeCount}_start_motor_rotate]:⏎·································

[`pingpong_lite_g${this.cubeCount}_start_motor_rotate`]: '%1 모터의 속도를 %2으로 계속 회전하기 %3',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_stop_motor_rotate]: with ······························[pingpong_lite_g${this.cubeCount}_stop_motor_rotate]:⏎·································

[`pingpong_lite_g${this.cubeCount}_stop_motor_rotate`]: '%1 모터 멈추기 %2',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_is_top_shape]: with ······························[pingpong_lite_g${this.cubeCount}_is_top_shape]:⏎·································

[`pingpong_lite_g${this.cubeCount}_is_top_shape`]: '%1 큐브의 윗면에 %2 모양이 있는가?',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 112. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_rotate_servo_mortor`]: '%1 번째 큐브의 서보모터 %2도로 설정하기 %3',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_rotate_servo_mortor]: with ······························[pingpong_lite_g${this.cubeCount}_rotate_servo_mortor]:⏎·································

[`pingpong_lite_g${this.cubeCount}_rotate_servo_mortor`]: '%1 번째 큐브의 서보모터 %2도로 설정하기 %3',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 107. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_set_dot_pixel`]: '%1 번째 큐브의 도트 X:%2 Y:%3 %4 %5',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_set_dot_pixel]: with ······························[pingpong_lite_g${this.cubeCount}_set_dot_pixel]:⏎·································

[`pingpong_lite_g${this.cubeCount}_set_dot_pixel`]: '%1 번째 큐브의 도트 X:%2 Y:%3 %4 %5',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 113. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_set_dot_string`]: '%1 번째 큐브에 도트 문자열 %2 %3초동안 보여주기 %4',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_set_dot_string]: with ······························[pingpong_lite_g${this.cubeCount}_set_dot_string]:⏎·································

[`pingpong_lite_g${this.cubeCount}_set_dot_string`]: '%1 번째 큐브에 도트 문자열 %2 %3초동안 보여주기 %4',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_set_dot_clear]: with ······························[pingpong_lite_g${this.cubeCount}_set_dot_clear]:⏎·································

[`pingpong_lite_g${this.cubeCount}_set_dot_clear`]: '%1 번째 큐브의 화면 지우기 %2',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 109. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_playNoteForBeats`]: '%1 큐브의 %2 음을 %3 박자로 연주하기 %4',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_playNoteForBeats]: with ······························[pingpong_lite_g${this.cubeCount}_playNoteForBeats]:⏎·································

[`pingpong_lite_g${this.cubeCount}_playNoteForBeats`]: '%1 큐브의 %2 음을 %3 박자로 연주하기 %4',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

[`pingpong_lite_g${this.cubeCount}_restForBeats`]: '%1 박자 쉬기 %2',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace [pingpong_lite_g${this.cubeCount}_setTempo]: with ······[pingpong_lite_g${this.cubeCount}_setTempo]:⏎·································

[`pingpong_lite_g${this.cubeCount}_setTempo`]: '악보 빠르기를 %1 으로 정하기 %2',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

[`pingpong_lite_g${this.cubeCount}_getTempo`]: '악보 빠르기',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ······························


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace case·2: with ······case·2:⏎·········································


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 120. Maximum allowed is 100.

pingpong_lite_g2_multi_motor_rotate: '모터1: %1 방향 %2 도, 모터2: %3 방향 %4 도 회전하기 %5',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········································pingpong_lite_g2_multi_motor_rotate: with ··············································pingpong_lite_g2_multi_motor_rotate:⏎·················································

pingpong_lite_g2_multi_motor_rotate: '모터1: %1 방향 %2 도, 모터2: %3 방향 %4 도 회전하기 %5',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 121. Maximum allowed is 100.

pingpong_lite_g2_multi_start_motor_rotate: '모터1 속도를 %1, 모터2 속도를 %2으로 계속 회전하기 %3',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace pingpong_lite_g2_multi_start_motor_rotate: with ······pingpong_lite_g2_multi_start_motor_rotate:⏎·················································

pingpong_lite_g2_multi_start_motor_rotate: '모터1 속도를 %1, 모터2 속도를 %2으로 계속 회전하기 %3',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 116. Maximum allowed is 100.

pingpong_lite_g2_multi_playChordForBeats: '큐브1: %1, 큐브2: %2, %3박자로 연주하기 %4',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········································pingpong_lite_g2_multi_playChordForBeats: with ··············································pingpong_lite_g2_multi_playChordForBeats:⏎·················································

pingpong_lite_g2_multi_playChordForBeats: '큐브1: %1, 큐브2: %2, %3박자로 연주하기 %4',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ································case·3: with ······································case·3:⏎·········································


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 135. Maximum allowed is 100.

pingpong_lite_g3_multi_motor_rotate: '모터1: %1 방향 %2 도, 모터2: %3 방향 %4 도, 모터3: %5방향 %6도 회전하기 %7',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········································pingpong_lite_g3_multi_motor_rotate: with ··············································pingpong_lite_g3_multi_motor_rotate:⏎·················································

pingpong_lite_g3_multi_motor_rotate: '모터1: %1 방향 %2 도, 모터2: %3 방향 %4 도, 모터3: %5방향 %6도 회전하기 %7',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 133. Maximum allowed is 100.

pingpong_lite_g3_multi_start_motor_rotate: '모터1 속도를 %1, 모터2 속도를 %2, 모터3 속도를 %3으로 계속 회전하기 %4',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace pingpong_lite_g3_multi_start_motor_rotate: with ······pingpong_lite_g3_multi_start_motor_rotate:⏎·················································

pingpong_lite_g3_multi_start_motor_rotate: '모터1 속도를 %1, 모터2 속도를 %2, 모터3 속도를 %3으로 계속 회전하기 %4',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 125. Maximum allowed is 100.

pingpong_lite_g3_multi_playChordForBeats: '큐브1: %1, 큐브2: %2, 큐브3: %3, %4박자로 연주하기 %5',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········································pingpong_lite_g3_multi_playChordForBeats: with ··············································pingpong_lite_g3_multi_playChordForBeats:⏎·················································

pingpong_lite_g3_multi_playChordForBeats: '큐브1: %1, 큐브2: %2, 큐브3: %3, %4박자로 연주하기 %5',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ································case·4: with ······································case·4:⏎·········································


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 152. Maximum allowed is 100.

pingpong_lite_g4_multi_motor_rotate: '모터1: %1 방향 %2 도, 모터2: %3 방향 %4 도, 모터3: %5방향 %6도, 모터4: %7 방향 %8 도 회전하기 %9',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ········································pingpong_lite_g4_multi_motor_rotate: with ··············································pingpong_lite_g4_multi_motor_rotate:⏎·················································

pingpong_lite_g4_multi_motor_rotate: '모터1: %1 방향 %2 도, 모터2: %3 방향 %4 도, 모터3: %5방향 %6도, 모터4: %7 방향 %8 도 회전하기 %9',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 145. Maximum allowed is 100.

pingpong_lite_g4_multi_start_motor_rotate: '모터1 속도를 %1, 모터2 속도를 %2, 모터3 속도를 %3, 모터4 속도를 %4으로 계속 회전하기 %5',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace pingpong_lite_g4_multi_start_motor_rotate: with ······pingpong_lite_g4_multi_start_motor_rotate:⏎·················································

pingpong_lite_g4_multi_start_motor_rotate: '모터1 속도를 %1, 모터2 속도를 %2, 모터3 속도를 %3, 모터4 속도를 %4으로 계속 회전하기 %5',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 134. Maximum allowed is 100.

pingpong_lite_g4_multi_playChordForBeats: '큐브1: %1, 큐브2: %2, 큐브3: %3, 큐브4: %4, %5박자로 연주하기 %6',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace pingpong_lite_g4_multi_playChordForBeats: with ······pingpong_lite_g4_multi_playChordForBeats:⏎·················································

pingpong_lite_g4_multi_playChordForBeats: '큐브1: %1, 큐브2: %2, 큐브3: %3, 큐브4: %4, %5박자로 연주하기 %6',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ································default: with ······································default:⏎·········································


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ······························


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·: with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ·


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace 'back'] with ·'back'],


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·: with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ····, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·····, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ··, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·, with


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Cube·connection·ready" with 'Cube·connection·ready'

pingpong_lite_cube_connection_first: "Cube connection ready",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "First·cube·connected" with 'First·cube·connected'

pingpong_lite_cube_first_connected: "First cube connected",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Connection·lost" with 'Connection·lost'

pingpong_lite_cube_connection_lost: "Connection lost",


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 102. Maximum allowed is 100.

pingpong_lite_cube_reconnect_notice: "Cube connection lost.\nRetrying connection",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·"Cube·connection·lost.\nRetrying·connection" with ⏎························'Cube·connection·lost.\nRetrying·connection'

pingpong_lite_cube_reconnect_notice: "Cube connection lost.\nRetrying connection",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "Connection·successful" with 'Connection·successful'

pingpong_lite_cube_connection_success: "Connection successful",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace "All·cubes·connected" with 'All·cubes·connected'

pingpong_lite_cube_all_connected: "All cubes connected",


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ⏎·······················


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························pingpong_lite_g1_when_button_pressed: with ······························pingpong_lite_g1_when_button_pressed:⏎·································

pingpong_lite_g1_when_button_pressed: 'When %1 cube button is pressed',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_g1_when_tilted: 'When %1 cube is tilted to %2',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ······························

pingpong_lite_g1_is_button_pressed: 'Is the cube button pressed?',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ······························

pingpong_lite_g1_is_tilted: 'Is the cube tilted to %1?',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_g1_get_tilt_value: 'Cube tilt value (%1)',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ······························

pingpong_lite_g1_get_sensor_value: '%1 sensor value',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace pingpong_lite_g1_motor_rotate: with ······pingpong_lite_g1_motor_rotate:⏎·································

pingpong_lite_g1_motor_rotate: 'Rotate motor %2 degrees to %1 direction %3',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 104. Maximum allowed is 100.

pingpong_lite_g1_start_motor_rotate: 'Rotate motor continuously at speed %1 %2',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace pingpong_lite_g1_start_motor_rotate: with ······pingpong_lite_g1_start_motor_rotate:⏎·································

pingpong_lite_g1_start_motor_rotate: 'Rotate motor continuously at speed %1 %2',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ······························

pingpong_lite_g1_stop_motor_rotate: 'Stop motor %1',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace pingpong_lite_g1_is_top_shape: with ······pingpong_lite_g1_is_top_shape:⏎·································

pingpong_lite_g1_is_top_shape: 'Is there a %1 shape on top of the cube?',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace pingpong_lite_g1_rotate_servo_mortor: with ······pingpong_lite_g1_rotate_servo_mortor:⏎·································

pingpong_lite_g1_rotate_servo_mortor: 'Set servo motor to %1 degrees %2',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_g1_set_dot_pixel: 'Dot X:%1 Y:%2 %3 %4',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace pingpong_lite_g1_set_dot_string: with ······pingpong_lite_g1_set_dot_string:⏎·································

pingpong_lite_g1_set_dot_string: 'Display "%1" on dot for %2 seconds %3',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_g1_set_dot_clear: 'Clear dot display %1',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ······························

pingpong_lite_g1_playNoteForBeats: 'Play note %1 for %2 beats %3',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 103. Maximum allowed is 100.

pingpong_lite_art_set_steering_direction: 'Set steering wheel to %1 direction',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························pingpong_lite_art_set_steering_direction: with ······························pingpong_lite_art_set_steering_direction:⏎·································

pingpong_lite_art_set_steering_direction: 'Set steering wheel to %1 direction',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_art_move_by_distance: 'Move %2 cm to %1',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_g1_restForBeats: 'Rest for %1 beats %2',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

pingpong_lite_g1_setTempo: 'Set tempo to %1 %2',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace } with ······}⏎·······················


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 118. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_when_button_pressed`]: 'When %1 %2 cube button is pressed',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_when_button_pressed]: with ······························[pingpong_lite_g${this.cubeCount}_when_button_pressed]:⏎·································

[`pingpong_lite_g${this.cubeCount}_when_button_pressed`]: 'When %1 %2 cube button is pressed',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 108. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_when_tilted`]: 'When %1 %2 cube is tilted to %3',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_when_tilted]: with ······························[pingpong_lite_g${this.cubeCount}_when_tilted]:⏎·································

[`pingpong_lite_g${this.cubeCount}_when_tilted`]: 'When %1 %2 cube is tilted to %3',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 109. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_is_button_pressed`]: 'Is %1 cube button pressed?',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_is_button_pressed]: with ······························[pingpong_lite_g${this.cubeCount}_is_button_pressed]:⏎·································

[`pingpong_lite_g${this.cubeCount}_is_button_pressed`]: 'Is %1 cube button pressed?',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_is_tilted]: with ······························[pingpong_lite_g${this.cubeCount}_is_tilted]:⏎·································

[`pingpong_lite_g${this.cubeCount}_is_tilted`]: 'Is %1 cube tilted to %2?',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 103. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_get_tilt_value`]: '%1 cube tilt value (%2)',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace [pingpong_lite_g${this.cubeCount}_get_tilt_value]: with ······[pingpong_lite_g${this.cubeCount}_get_tilt_value]:⏎·································

[`pingpong_lite_g${this.cubeCount}_get_tilt_value`]: '%1 cube tilt value (%2)',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 105. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_get_sensor_value`]: '%1 cube %2 sensor value',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_get_sensor_value]: with ······························[pingpong_lite_g${this.cubeCount}_get_sensor_value]:⏎·································

[`pingpong_lite_g${this.cubeCount}_get_sensor_value`]: '%1 cube %2 sensor value',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 123. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_motor_rotate`]: 'Rotate %1 motor %3 degrees to %2 direction %4',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_motor_rotate]: with ······························[pingpong_lite_g${this.cubeCount}_motor_rotate]:⏎·································

[`pingpong_lite_g${this.cubeCount}_motor_rotate`]: 'Rotate %1 motor %3 degrees to %2 direction %4',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 127. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_start_motor_rotate`]: 'Rotate %1 motor continuously at speed %2 %3',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_start_motor_rotate]: with ······························[pingpong_lite_g${this.cubeCount}_start_motor_rotate]:⏎·································

[`pingpong_lite_g${this.cubeCount}_start_motor_rotate`]: 'Rotate %1 motor continuously at speed %2 %3',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_stop_motor_rotate]: with ······························[pingpong_lite_g${this.cubeCount}_stop_motor_rotate]:⏎·································

[`pingpong_lite_g${this.cubeCount}_stop_motor_rotate`]: 'Stop %1 motor %2',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 116. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_is_top_shape`]: 'Is there a %2 shape on top of %1 cube?',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_is_top_shape]: with ······························[pingpong_lite_g${this.cubeCount}_is_top_shape]:⏎·································

[`pingpong_lite_g${this.cubeCount}_is_top_shape`]: 'Is there a %2 shape on top of %1 cube?',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 128. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_rotate_servo_mortor`]: 'Set servo motor of cube %1 to %2 degrees %3',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_rotate_servo_mortor]: with ······························[pingpong_lite_g${this.cubeCount}_rotate_servo_mortor]:⏎·································

[`pingpong_lite_g${this.cubeCount}_rotate_servo_mortor`]: 'Set servo motor of cube %1 to %2 degrees %3',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 106. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_set_dot_pixel`]: 'Cube %1 dot X:%2 Y:%3 %4 %5',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_set_dot_pixel]: with ······························[pingpong_lite_g${this.cubeCount}_set_dot_pixel]:⏎·································

[`pingpong_lite_g${this.cubeCount}_set_dot_pixel`]: 'Cube %1 dot X:%2 Y:%3 %4 %5',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 121. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_set_dot_string`]: 'Display "%2" on cube %1 for %3 seconds %4',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_set_dot_string]: with ······························[pingpong_lite_g${this.cubeCount}_set_dot_string]:⏎·································

[`pingpong_lite_g${this.cubeCount}_set_dot_string`]: 'Display "%2" on cube %1 for %3 seconds %4',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 106. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_set_dot_clear`]: 'Clear display of cube %1 %2',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_set_dot_clear]: with ······························[pingpong_lite_g${this.cubeCount}_set_dot_clear]:⏎·································

[`pingpong_lite_g${this.cubeCount}_set_dot_clear`]: 'Clear display of cube %1 %2',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 121. Maximum allowed is 100.

[`pingpong_lite_g${this.cubeCount}_playNoteForBeats`]: 'Play note %2 on cube %1 for %3 beats %4',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_playNoteForBeats]: with ······························[pingpong_lite_g${this.cubeCount}_playNoteForBeats]:⏎·································

[`pingpong_lite_g${this.cubeCount}_playNoteForBeats`]: 'Play note %2 on cube %1 for %3 beats %4',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························[pingpong_lite_g${this.cubeCount}_restForBeats]: with ······························[pingpong_lite_g${this.cubeCount}_restForBeats]:⏎·································

[`pingpong_lite_g${this.cubeCount}_restForBeats`]: 'Rest for %1 beats %2',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ························ with ······························

[`pingpong_lite_g${this.cubeCount}_setTempo`]: 'Set tempo to %1 %2',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······

[`pingpong_lite_g${this.cubeCount}_getTempo`]: 'Tempo',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ···························· with ··································


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace case·2: with ······case·2:⏎·········································


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 137. Maximum allowed is 100.

pingpong_lite_g2_multi_motor_rotate: 'Motor1: rotate %2 degrees %1, Motor2: rotate %4 degrees %3 %5',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ····································pingpong_lite_g2_multi_motor_rotate: with ··············································pingpong_lite_g2_multi_motor_rotate:⏎·················································

pingpong_lite_g2_multi_motor_rotate: 'Motor1: rotate %2 degrees %1, Motor2: rotate %4 degrees %3 %5',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 137. Maximum allowed is 100.

pingpong_lite_g2_multi_start_motor_rotate: 'Motor1 speed %1, Motor2 speed %2 continuous rotation %3',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace pingpong_lite_g2_multi_start_motor_rotate: with ··········pingpong_lite_g2_multi_start_motor_rotate:⏎·················································

pingpong_lite_g2_multi_start_motor_rotate: 'Motor1 speed %1, Motor2 speed %2 continuous rotation %3',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 123. Maximum allowed is 100.

pingpong_lite_g2_multi_playChordForBeats: 'Cube1: %1, Cube2: %2, play for %3 beats %4',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ····································pingpong_lite_g2_multi_playChordForBeats: with ··············································pingpong_lite_g2_multi_playChordForBeats:⏎·················································

pingpong_lite_g2_multi_playChordForBeats: 'Cube1: %1, Cube2: %2, play for %3 beats %4',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ································case·3: with ······································case·3:⏎·········································


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 167. Maximum allowed is 100.

pingpong_lite_g3_multi_motor_rotate: 'Motor1: rotate %2 degrees %1, Motor2: rotate %4 degrees %3, Motor3: rotate %6 degrees %5 %7',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ····································pingpong_lite_g3_multi_motor_rotate: with ··············································pingpong_lite_g3_multi_motor_rotate:⏎·················································

pingpong_lite_g3_multi_motor_rotate: 'Motor1: rotate %2 degrees %1, Motor2: rotate %4 degrees %3, Motor3: rotate %6 degrees %5 %7',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 154. Maximum allowed is 100.

pingpong_lite_g3_multi_start_motor_rotate: 'Motor1 speed %1, Motor2 speed %2, Motor3 speed %3 continuous rotation %4',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ····································pingpong_lite_g3_multi_start_motor_rotate: with ··············································pingpong_lite_g3_multi_start_motor_rotate:⏎·················································

pingpong_lite_g3_multi_start_motor_rotate: 'Motor1 speed %1, Motor2 speed %2, Motor3 speed %3 continuous rotation %4',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 134. Maximum allowed is 100.

pingpong_lite_g3_multi_playChordForBeats: 'Cube1: %1, Cube2: %2, Cube3: %3, play for %4 beats %5',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace pingpong_lite_g3_multi_playChordForBeats: with ··········pingpong_lite_g3_multi_playChordForBeats:⏎·················································

pingpong_lite_g3_multi_playChordForBeats: 'Cube1: %1, Cube2: %2, Cube3: %3, play for %4 beats %5',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ··········


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ································case·4: with ······································case·4:⏎·········································


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 197. Maximum allowed is 100.

pingpong_lite_g4_multi_motor_rotate: 'Motor1: rotate %2 degrees %1, Motor2: rotate %4 degrees %3, Motor3: rotate %6 degrees %5, Motor4: rotate %8 degrees %7 %9',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ····································pingpong_lite_g4_multi_motor_rotate: with ··············································pingpong_lite_g4_multi_motor_rotate:⏎·················································

pingpong_lite_g4_multi_motor_rotate: 'Motor1: rotate %2 degrees %1, Motor2: rotate %4 degrees %3, Motor3: rotate %6 degrees %5, Motor4: rotate %8 degrees %7 %9',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 171. Maximum allowed is 100.

pingpong_lite_g4_multi_start_motor_rotate: 'Motor1 speed %1, Motor2 speed %2, Motor3 speed %3, Motor4 speed %4 continuous rotation %5',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace pingpong_lite_g4_multi_start_motor_rotate: with ··········pingpong_lite_g4_multi_start_motor_rotate:⏎·················································

pingpong_lite_g4_multi_start_motor_rotate: 'Motor1 speed %1, Motor2 speed %2, Motor3 speed %3, Motor4 speed %4 continuous rotation %5',


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 145. Maximum allowed is 100.

pingpong_lite_g4_multi_playChordForBeats: 'Cube1: %1, Cube2: %2, Cube3: %3, Cube4: %4, play for %5 beats %6',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace pingpong_lite_g4_multi_playChordForBeats: with ··········pingpong_lite_g4_multi_playChordForBeats:⏎·················································

pingpong_lite_g4_multi_playChordForBeats: 'Cube1: %1, Cube2: %2, Cube3: %3, Cube4: %4, play for %5 beats %6',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ································ with ··········································


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ································default: with ······································default:⏎·········································


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ······


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ,


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ,


⚠️ [eslint] <eol-last> reported by reviewdog 🐶
Newline required at end of file but not found.

module.exports = PingpongConnectLite;


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert

module.exports = PingpongConnectLite;


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ·


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace (pd[cubeId]?.BUTTON·==·1)⏎························?·script.callReturn()⏎······················· with pd[cubeId]?.BUTTON·==·1·?·script.callReturn()

return (pd[cubeId]?.BUTTON == 1)
? script.callReturn()
: this.die();


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace speed, with ·speed,·

const [arr, waitTime] = self.makeSingleStepPacket(cubeId,speed,degree);


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 121. Maximum allowed is 100.

def: { params: [null, { type: 'angle' }], type: `pingpong_lite_g${self.cubeCount}_rotate_servo_mortor` },


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·params:·[null,·{·type:·'angle'·}],·type:·pingpong_lite_g${self.cubeCount}_rotate_servo_mortor`` with ⏎····················params:·[null,·{·type:·'angle'·}],⏎····················type:·pingpong_lite_g${self.cubeCount}_rotate_servo_mortor`,⏎···············`

def: { params: [null, { type: 'angle' }], type: `pingpong_lite_g${self.cubeCount}_rotate_servo_mortor` },


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ⏎····························self.OPCODE.LEDMATRIX,⏎····························0xe1,⏎····························cubeId,⏎····························opt⏎························ with self.OPCODE.LEDMATRIX,·0xe1,·cubeId,·opt

const packet = self.makePacket(
self.OPCODE.LEDMATRIX,
0xe1,
cubeId,
opt
);


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 103. Maximum allowed is 100.

def: { params: [null, null], type: `pingpong_lite_g${self.cubeCount}_set_dot_string` },


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·params:·[null,·null],·type:·pingpong_lite_g${self.cubeCount}_set_dot_string`` with ⏎····················params:·[null,·null],⏎····················type:·pingpong_lite_g${self.cubeCount}_set_dot_string`,⏎···············`

def: { params: [null, null], type: `pingpong_lite_g${self.cubeCount}_set_dot_string` },


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ⏎····························self.OPCODE.LEDMATRIX,⏎····························0xe3,⏎····························cubeId,⏎····························opt⏎························ with self.OPCODE.LEDMATRIX,·0xe3,·cubeId,·opt

const packet = self.makePacket(
self.OPCODE.LEDMATRIX,
0xe3,
cubeId,
opt
);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ⏎····························self.OPCODE.LEDMATRIX,⏎····························0xe3,⏎····························cubeId,⏎····························opt⏎························ with self.OPCODE.LEDMATRIX,·0xe3,·cubeId,·opt

const packet = self.makePacket(
self.OPCODE.LEDMATRIX,
0xe3,
cubeId,
opt
);


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.


⚠️ [eslint] <prefer-const> reported by reviewdog 🐶
'tempo' is never reassigned. Use 'const' instead.

let tempo = script.getNumberValue('TEMPO', script);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace speed1, with ·speed1,·

const [arr1, delay1] = self.makeSingleStepPacket(0,speed1,degree1);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace speed2, with ·speed2,·

const [arr2, delay2] = self.makeSingleStepPacket(1,speed2,degree2);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace speed3, with ·speed3,·

const [arr3, delay3] = self.makeSingleStepPacket(2,speed3,degree3);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace speed4, with ·speed4,·

const [arr4, delay4] = self.makeSingleStepPacket(3,speed4,degree4);


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 124. Maximum allowed is 100.

const packet = self.makeAggregatePacket(self.OPCODE.AGGREGATE_STEPS,0,[arr1, arr2, arr3, arr4],opt);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace self.OPCODE.AGGREGATE_STEPS,0,[arr1,·arr2,·arr3,·arr4],opt with ⏎····························self.OPCODE.AGGREGATE_STEPS,⏎····························0,⏎····························[arr1,·arr2,·arr3,·arr4],⏎····························opt⏎························

const packet = self.makeAggregatePacket(self.OPCODE.AGGREGATE_STEPS,0,[arr1, arr2, arr3, arr4],opt);


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 124. Maximum allowed is 100.

const packet = self.makeAggregatePacket(self.OPCODE.AGGREGATE_STEPS,0,[arr1, arr2, arr3, arr4],opt);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace self.OPCODE.AGGREGATE_STEPS,0,[arr1,·arr2,·arr3,·arr4],opt with ⏎····························self.OPCODE.AGGREGATE_STEPS,⏎····························0,⏎····························[arr1,·arr2,·arr3,·arr4],⏎····························opt⏎························

const packet = self.makeAggregatePacket(self.OPCODE.AGGREGATE_STEPS,0,[arr1, arr2, arr3, arr4],opt);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace NOTE1, with ·NOTE1,·

const arr1 = self.makeMusicNotePacket(0,NOTE1,durationSec);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace NOTE2, with ·NOTE2,·

const arr2 = self.makeMusicNotePacket(1,NOTE2,durationSec);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace NOTE3, with ·NOTE3,·

const arr3 = self.makeMusicNotePacket(2,NOTE3,durationSec);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace NOTE4, with ·NOTE4,·

const arr4 = self.makeMusicNotePacket(3,NOTE4,durationSec);


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 120. Maximum allowed is 100.

const packet = self.makeAggregatePacket(self.OPCODE.MUSIC,0xa2,[arr1, arr2, arr3, arr4],[0, 0]);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace self.OPCODE.MUSIC,0xa2,[arr1,·arr2,·arr3,·arr4],[0,·0] with ⏎····························self.OPCODE.MUSIC,⏎····························0xa2,⏎····························[arr1,·arr2,·arr3,·arr4],⏎····························[0,·0]⏎························

const packet = self.makeAggregatePacket(self.OPCODE.MUSIC,0xa2,[arr1, arr2, arr3, arr4],[0, 0]);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace speed1, with ·speed1,·

const [arr1, delay1] = self.makeSingleStepPacket(0,speed1,degree1);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace speed2, with ·speed2,·

const [arr2, delay2] = self.makeSingleStepPacket(1,speed2,degree2);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace speed3, with ·speed3,·

const [arr3, delay3] = self.makeSingleStepPacket(2,speed3,degree3);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace speed4, with ·speed4,·

const [arr4, delay4] = self.makeSingleStepPacket(3,speed4,degree4);


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 124. Maximum allowed is 100.

const packet = self.makeAggregatePacket(self.OPCODE.AGGREGATE_STEPS,0,[arr1, arr2, arr3, arr4],opt);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace self.OPCODE.AGGREGATE_STEPS,0,[arr1,·arr2,·arr3,·arr4],opt with ⏎····························self.OPCODE.AGGREGATE_STEPS,⏎····························0,⏎····························[arr1,·arr2,·arr3,·arr4],⏎····························opt⏎························

const packet = self.makeAggregatePacket(self.OPCODE.AGGREGATE_STEPS,0,[arr1, arr2, arr3, arr4],opt);


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 124. Maximum allowed is 100.

const packet = self.makeAggregatePacket(self.OPCODE.AGGREGATE_STEPS,0,[arr1, arr2, arr3, arr4],opt);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace self.OPCODE.AGGREGATE_STEPS,0,[arr1,·arr2,·arr3,·arr4],opt with ⏎····························self.OPCODE.AGGREGATE_STEPS,⏎····························0,⏎····························[arr1,·arr2,·arr3,·arr4],⏎····························opt⏎························

const packet = self.makeAggregatePacket(self.OPCODE.AGGREGATE_STEPS,0,[arr1, arr2, arr3, arr4],opt);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace NOTE1, with ·NOTE1,·

const arr1 = self.makeMusicNotePacket(0,NOTE1,durationSec);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace NOTE2, with ·NOTE2,·

const arr2 = self.makeMusicNotePacket(1,NOTE2,durationSec);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace NOTE3, with ·NOTE3,·

const arr3 = self.makeMusicNotePacket(2,NOTE3,durationSec);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace NOTE4, with ·NOTE4,·

const arr4 = self.makeMusicNotePacket(3,NOTE4,durationSec);


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 120. Maximum allowed is 100.

const packet = self.makeAggregatePacket(self.OPCODE.MUSIC,0xa2,[arr1, arr2, arr3, arr4],[0, 0]);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace self.OPCODE.MUSIC,0xa2,[arr1,·arr2,·arr3,·arr4],[0,·0] with ⏎····························self.OPCODE.MUSIC,⏎····························0xa2,⏎····························[arr1,·arr2,·arr3,·arr4],⏎····························[0,·0]⏎························

const packet = self.makeAggregatePacket(self.OPCODE.MUSIC,0xa2,[arr1, arr2, arr3, arr4],[0, 0]);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace speed1, with ·speed1,·

const [arr1, delay1] = self.makeSingleStepPacket(0,speed1,degree1);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace speed2, with ·speed2,·

const [arr2, delay2] = self.makeSingleStepPacket(1,speed2,degree2);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace speed3, with ·speed3,·

const [arr3, delay3] = self.makeSingleStepPacket(2,speed3,degree3);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace speed4, with ·speed4,·

const [arr4, delay4] = self.makeSingleStepPacket(3,speed4,degree4);


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 124. Maximum allowed is 100.

const packet = self.makeAggregatePacket(self.OPCODE.AGGREGATE_STEPS,0,[arr1, arr2, arr3, arr4],opt);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace self.OPCODE.AGGREGATE_STEPS,0,[arr1,·arr2,·arr3,·arr4],opt with ⏎····························self.OPCODE.AGGREGATE_STEPS,⏎····························0,⏎····························[arr1,·arr2,·arr3,·arr4],⏎····························opt⏎························

const packet = self.makeAggregatePacket(self.OPCODE.AGGREGATE_STEPS,0,[arr1, arr2, arr3, arr4],opt);


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 124. Maximum allowed is 100.

const packet = self.makeAggregatePacket(self.OPCODE.AGGREGATE_STEPS,0,[arr1, arr2, arr3, arr4],opt);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace self.OPCODE.AGGREGATE_STEPS,0,[arr1,·arr2,·arr3,·arr4],opt with ⏎····························self.OPCODE.AGGREGATE_STEPS,⏎····························0,⏎····························[arr1,·arr2,·arr3,·arr4],⏎····························opt⏎························

const packet = self.makeAggregatePacket(self.OPCODE.AGGREGATE_STEPS,0,[arr1, arr2, arr3, arr4],opt);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace NOTE1, with ·NOTE1,·

const arr1 = self.makeMusicNotePacket(0,NOTE1,durationSec);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace NOTE2, with ·NOTE2,·

const arr2 = self.makeMusicNotePacket(1,NOTE2,durationSec);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace NOTE3, with ·NOTE3,·

const arr3 = self.makeMusicNotePacket(2,NOTE3,durationSec);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace NOTE4, with ·NOTE4,·

const arr4 = self.makeMusicNotePacket(3,NOTE4,durationSec);


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 120. Maximum allowed is 100.

const packet = self.makeAggregatePacket(self.OPCODE.MUSIC,0xa2,[arr1, arr2, arr3, arr4],[0, 0]);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace self.OPCODE.MUSIC,0xa2,[arr1,·arr2,·arr3,·arr4],[0,·0] with ⏎····························self.OPCODE.MUSIC,⏎····························0xa2,⏎····························[arr1,·arr2,·arr3,·arr4],⏎····························[0,·0]⏎························

const packet = self.makeAggregatePacket(self.OPCODE.MUSIC,0xa2,[arr1, arr2, arr3, arr4],[0, 0]);


⚠️ [eslint] <brace-style> reported by reviewdog 🐶
Statement inside of curly braces should be on next line.

getBlocks() {return getBlocks(this);}


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace return·getBlocks(this); with ⏎················return·getBlocks(this);⏎············

getBlocks() {return getBlocks(this);}


⚠️ [eslint] <brace-style> reported by reviewdog 🐶
Closing curly brace should be on the same line as opening curly brace or on the line after the previous block.

getBlocks() {return getBlocks(this);}


⚠️ [eslint] <eol-last> reported by reviewdog 🐶
Newline required at end of file but not found.

module.exports = [Entry.PingpongG2Lite, Entry.PingpongG3Lite, Entry.PingpongG4Lite];


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert

module.exports = [Entry.PingpongG2Lite, Entry.PingpongG3Lite, Entry.PingpongG4Lite];


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ·


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ·


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace (pd[cubeId]?.BUTTON·==·1)⏎····························?·script.callReturn()⏎··························· with pd[cubeId]?.BUTTON·==·1·?·script.callReturn()

return (pd[cubeId]?.BUTTON == 1)
? script.callReturn()
: this.die();


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace cubeId,speed,degree with ⏎································cubeId,⏎································speed,⏎································degree⏎····························

const [arr, waitTime] = self.makeSingleStepPacket(cubeId,speed,degree);


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 103. Maximum allowed is 100.

def: { params: [{ type: 'angle' }], type: 'pingpong_lite_g1_rotate_servo_mortor' },


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ·params:·[{·type:·'angle'·}],·type:·'pingpong_lite_g1_rotate_servo_mortor' with ⏎························params:·[{·type:·'angle'·}],⏎························type:·'pingpong_lite_g1_rotate_servo_mortor',⏎···················

def: { params: [{ type: 'angle' }], type: 'pingpong_lite_g1_rotate_servo_mortor' },


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 102. Maximum allowed is 100.

const waitTime = period * str.length * 8 * 10 + 400; // add wait for 400ms


⚠️ [eslint] <no-undef> reported by reviewdog 🐶
'Buffer' is not defined.


⚠️ [eslint] <prefer-const> reported by reviewdog 🐶
'tempo' is never reassigned. Use 'const' instead.

let tempo = script.getNumberValue('TEMPO', script);


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ,

{ type: 'Indicator', img: 'block_icon/hardware_icon.svg', size: 12, },


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace , with ·


⚠️ [eslint] <object-curly-spacing> reported by reviewdog 🐶
A space is required before '}'.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete ,

{ type: 'Indicator', img: 'block_icon/hardware_icon.svg', size: 12, },


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ⏎································Math.round(clampedDegree·*·stepRatio),⏎································maxStep⏎···························· with Math.round(clampedDegree·*·stepRatio),·maxStep

const step = Math.min(
Math.round(clampedDegree * stepRatio),
maxStep
);


⚠️ [eslint] <padded-blocks> reported by reviewdog 🐶
Block must not be padded by blank lines.


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Delete


⚠️ [eslint] <max-len> reported by reviewdog 🐶
This line has a length of 104. Maximum allowed is 100.

Entry.PingpongPracticalartsLite = new (class PingpongPracticalartsLite extends PingpongConnectLite {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ⏎·······

Entry.PingpongPracticalartsLite = new (class PingpongPracticalartsLite extends PingpongConnectLite {


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············super(1, with ················super(1,·

super(1,'PingpongPracticalartsLite');


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace ············ with ················

this.imageName = 'PingpongPracticalartsLite.png';


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····

'pingpong_lite_art_set_steering_direction',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····

'pingpong_lite_art_move_by_distance',


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace getBlocks()·{return·Entry.PingpongG1Lite.getBlocks(); with ····getBlocks()·{⏎················return·Entry.PingpongG1Lite.getBlocks();⏎············

getBlocks() {return Entry.PingpongG1Lite.getBlocks();}


⚠️ [eslint] <brace-style> reported by reviewdog 🐶
Statement inside of curly braces should be on next line.

getBlocks() {return Entry.PingpongG1Lite.getBlocks();}


⚠️ [eslint] <brace-style> reported by reviewdog 🐶
Closing curly brace should be on the same line as opening curly brace or on the line after the previous block.

getBlocks() {return Entry.PingpongG1Lite.getBlocks();}


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ····


⚠️ [eslint] <eol-last> reported by reviewdog 🐶
Newline required at end of file but not found.

module.exports = [Entry.PingpongG1Lite, Entry.PingpongPracticalartsLite];


🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert

module.exports = [Entry.PingpongG1Lite, Entry.PingpongPracticalartsLite];


this.customPrompt = {
title: '그룹 번호 입력',
description: '연결할 기기의 그룹 번호를 입력해 주세요.\n 별도로 지정하지 않았다면 00을 입력합니다.',
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ⏎···············

Suggested change
description: '연결할 기기의 그룹 번호를 입력해 주세요.\n 별도로 지정하지 않았다면 00을 입력합니다.',
description:
'연결할 기기의 그룹 번호를 입력해 주세요.\n 별도로 지정하지 않았다면 00을 입력합니다.',

positiveButtonText: '설정',
};

this.sensor_data=[];
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace = with ·=·

Suggested change
this.sensor_data=[];
this.sensor_data = [];

positiveButtonText: '설정',
};

this.sensor_data=[];
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [eslint] <space-infix-ops> reported by reviewdog 🐶
Operator '=' must be spaced.

Suggested change
this.sensor_data=[];
this.sensor_data = [];

BUTTON: 0,
PROXIMITY: 0,
AIN: 0,
})
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ;

Suggested change
})
});

BUTTON: 0,
PROXIMITY: 0,
AIN: 0,
})
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [eslint] <semi> reported by reviewdog 🐶
Missing semicolon.

Suggested change
})
});

const [packet, waitTime = this.delayTime] = myfunc();

if (packet && packet.length > 0) {
this.requestLocalData(packet)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Insert ;

Suggested change
this.requestLocalData(packet)
this.requestLocalData(packet);

const [packet, waitTime = this.delayTime] = myfunc();

if (packet && packet.length > 0) {
this.requestLocalData(packet)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [eslint] <semi> reported by reviewdog 🐶
Missing semicolon.

Suggested change
this.requestLocalData(packet)
this.requestLocalData(packet);

this.isplaying = true;
}

await new Promise(resolve => setTimeout(resolve, waitTime)); // waitTime 동안 대기
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace resolve·=>·setTimeout(resolve,·waitTime));· with (resolve)·=>·setTimeout(resolve,·waitTime));

Suggested change
await new Promise(resolve => setTimeout(resolve, waitTime)); // waitTime 동안 대기
await new Promise((resolve) => setTimeout(resolve, waitTime)); // waitTime 동안 대기

}

// 기기 정지
if(this.isplaying){
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [eslint] <keyword-spacing> reported by reviewdog 🐶
Expected space(s) after "if".

Suggested change
if(this.isplaying){
if (this.isplaying){

}

// 기기 정지
if(this.isplaying){
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [eslint] <prettier/prettier> reported by reviewdog 🐶
Replace (this.isplaying) with ·(this.isplaying)·

Suggested change
if(this.isplaying){
if (this.isplaying) {

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants