@jjlmoya/utils-hardware 1.24.0 → 1.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -1
- package/src/category/index.ts +4 -1
- package/src/entries.ts +10 -1
- package/src/index.ts +3 -0
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/keyboardChatterTest/bibliography.astro +15 -0
- package/src/tool/keyboardChatterTest/bibliography.ts +20 -0
- package/src/tool/keyboardChatterTest/component.astro +353 -0
- package/src/tool/keyboardChatterTest/entry.ts +30 -0
- package/src/tool/keyboardChatterTest/i18n/de.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/en.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/es.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/fr.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/id.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/it.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/ja.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/ko.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/nl.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/pl.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/pt.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/ru.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/sv.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/tr.ts +232 -0
- package/src/tool/keyboardChatterTest/i18n/zh.ts +232 -0
- package/src/tool/keyboardChatterTest/index.ts +12 -0
- package/src/tool/keyboardChatterTest/keyboard-chatter-test.css +512 -0
- package/src/tool/keyboardChatterTest/logic.ts +23 -0
- package/src/tool/keyboardChatterTest/seo.astro +16 -0
- package/src/tool/keyboardChatterTest/ui.ts +34 -0
- package/src/tool/webBluetoothBleScanner/bibliography.astro +14 -0
- package/src/tool/webBluetoothBleScanner/bibliography.ts +16 -0
- package/src/tool/webBluetoothBleScanner/component.astro +339 -0
- package/src/tool/webBluetoothBleScanner/entry.ts +29 -0
- package/src/tool/webBluetoothBleScanner/i18n/de.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/en.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/es.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/fr.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/id.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/it.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/ja.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/ko.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/nl.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/pl.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/pt.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/ru.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/sv.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/tr.ts +233 -0
- package/src/tool/webBluetoothBleScanner/i18n/zh.ts +233 -0
- package/src/tool/webBluetoothBleScanner/index.ts +11 -0
- package/src/tool/webBluetoothBleScanner/logic.ts +79 -0
- package/src/tool/webBluetoothBleScanner/seo.astro +15 -0
- package/src/tool/webBluetoothBleScanner/ui.ts +41 -0
- package/src/tool/webBluetoothBleScanner/web-bluetooth-ble-scanner.css +406 -0
- package/src/tool/webUsbSerialMonitor/bibliography.astro +15 -0
- package/src/tool/webUsbSerialMonitor/bibliography.ts +18 -0
- package/src/tool/webUsbSerialMonitor/component.astro +356 -0
- package/src/tool/webUsbSerialMonitor/entry.ts +30 -0
- package/src/tool/webUsbSerialMonitor/i18n/de.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/en.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/es.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/fr.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/id.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/it.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/ja.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/ko.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/nl.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/pl.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/pt.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/ru.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/sv.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/tr.ts +241 -0
- package/src/tool/webUsbSerialMonitor/i18n/zh.ts +241 -0
- package/src/tool/webUsbSerialMonitor/index.ts +12 -0
- package/src/tool/webUsbSerialMonitor/logic.ts +44 -0
- package/src/tool/webUsbSerialMonitor/seo.astro +16 -0
- package/src/tool/webUsbSerialMonitor/ui.ts +51 -0
- package/src/tool/webUsbSerialMonitor/web-usb-serial-monitor.css +415 -0
- package/src/tools.ts +4 -1
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { KeyboardChatterTestUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'tes-chatter-keyboard';
|
|
7
|
+
const title = 'Tes Chatter Keyboard';
|
|
8
|
+
const description = 'Deteksi chattering keyboard mekanis, pengetikan ganda, dan pantulan sakelar yang rusak dengan memeriksa seberapa cepat tombol yang sama muncul dua kali.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Apa itu chatter keyboard?',
|
|
13
|
+
answer: 'Chatter keyboard adalah kerusakan perangkat keras di mana satu tekanan fisik terdaftar sebagai beberapa tekanan. Ini umum terjadi pada sakelar mekanis yang kotor, aus, teroksidasi, atau dengan debounce yang buruk.',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
question: 'Bagaimana cara kerja tes chatter keyboard ini?',
|
|
17
|
+
answer: 'Tekan tombol yang mencurigakan secara perlahan, satu ketukan setiap kali. Jika log menunjukkan tekanan berulang hanya terpisah beberapa milidetik, sakelar mungkin memantul dan menghasilkan huruf ganda.',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
question: 'Delta berapa yang berarti keyboard saya mengetik ganda?',
|
|
21
|
+
answer: 'Tekanan berulang di bawah 30 ms sangat mencurigakan untuk chatter. Pengulangan dari 30 hingga 50 ms perlu diperhatikan. Pengulangan yang disengaja normal biasanya di atas 50 ms untuk kebanyakan pengguna.',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
question: 'Mengapa tekanan pertama tidak menunjukkan delta?',
|
|
25
|
+
answer: 'Delta memerlukan tekanan sebelumnya dari tombol yang sama. Tekanan pertama menetapkan garis dasar, dan tekanan berikutnya menunjukkan selang waktu dalam milidetik.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Bisakah perangkat lunak memperbaiki chattering keyboard?',
|
|
29
|
+
answer: 'Perangkat lunak debounce dapat menyembunyikan beberapa gejala, tetapi tidak memperbaiki sakelar. Membersihkan, memasang kembali sakelar hot-swap, mengganti sakelar, atau memperbaiki PCB keyboard mungkin diperlukan.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Buka alat dan tekan tombol secara normal',
|
|
36
|
+
text: 'Tidak ada tombol mulai. Klik ke dalam alat jika perlu, lalu tekan tombol yang telah mengetik ganda.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Ketuk tombol yang mencurigakan satu per satu',
|
|
40
|
+
text: 'Tekan tombol yang mengetik ganda. Jika satu tekanan fisik menciptakan beberapa baris log dengan delta kecil, sakelar kemungkinan sedang chattering.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Baca kode warna',
|
|
44
|
+
text: 'Hijau berarti normal di atas 50 ms, kuning berarti mencurigakan dari 30 hingga 50 ms, dan merah berarti chatter terdeteksi di bawah 30 ms.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Ekspor log jika diperlukan',
|
|
48
|
+
text: 'Gunakan tombol unduh untuk menyimpan log CSV yang dapat membantu membandingkan tombol atau mendokumentasikan kerusakan intermiten.',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowTo> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step, i) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
position: i + 1,
|
|
70
|
+
name: step.name,
|
|
71
|
+
text: step.text,
|
|
72
|
+
})),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
76
|
+
'@context': 'https://schema.org',
|
|
77
|
+
'@type': 'SoftwareApplication',
|
|
78
|
+
name: title,
|
|
79
|
+
description,
|
|
80
|
+
applicationCategory: 'UtilityApplication',
|
|
81
|
+
operatingSystem: 'All',
|
|
82
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
|
|
83
|
+
inLanguage: 'id',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<KeyboardChatterTestUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faq: faqData,
|
|
91
|
+
bibliography,
|
|
92
|
+
howTo: howToData,
|
|
93
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
94
|
+
seo: [
|
|
95
|
+
{
|
|
96
|
+
type: 'title',
|
|
97
|
+
text: 'Tes Pengetikan Ganda Keyboard Mekanis',
|
|
98
|
+
level: 2,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'paragraph',
|
|
102
|
+
html: 'Tes chatter keyboard ini membantu mendiagnosis keyboard mekanis yang mengetik dua huruf dari satu tekanan, melewatkan pelepasan bersih, atau menghasilkan karakter berulang tanpa Anda sengaja mengetuk dua kali. Gunakan sebelum membersihkan sakelar, mengubah pengaturan debounce firmware, membuka klaim garansi, atau mengganti sakelar hot-swap.',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'diagnostic',
|
|
106
|
+
variant: 'info',
|
|
107
|
+
title: 'Cara membaca hasilnya',
|
|
108
|
+
badge: 'Ambang delta',
|
|
109
|
+
html: '<p><strong>Normal</strong> berarti pengulangan di atas 50 ms dan biasanya disengaja. <strong>Mencurigakan</strong> berarti 30-50 ms dan harus diuji ulang pada tombol yang sama. <strong>Chatter terdeteksi</strong> berarti di bawah 30 ms, yang sangat mungkin satu tekanan fisik memantul menjadi beberapa kontak listrik.</p>',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
type: 'title',
|
|
113
|
+
text: 'Mengapa Sakelar Mekanis Berchatter',
|
|
114
|
+
level: 3,
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
type: 'paragraph',
|
|
118
|
+
html: 'Sakelar mekanis tidak menutup sebagai sinyal digital yang bersih sempurna. Kontak logam dapat memantul selama beberapa milidetik sebelum menetap. Firmware keyboard biasanya menyaring pantulan itu dengan jendela debounce. Chattering terjadi ketika kontak begitu kotor, aus, teroksidasi, longgar, retak, atau tidak disetel dengan baik sehingga keyboard melaporkan tekanan ekstra setelah filter debounce seharusnya menanganinya.',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'table',
|
|
122
|
+
headers: ['Gejala', 'Penyebab kemungkinan', 'Yang dicoba terlebih dahulu'],
|
|
123
|
+
rows: [
|
|
124
|
+
['Satu tombol mengetik huruf yang sama dua kali', 'Kontak sakelar kotor atau aus', 'Lepaskan keycap, tiup debu, dan uji lagi sebelum mengganti sakelar.'],
|
|
125
|
+
['Beberapa tombol hot-swap berchatter setelah perakitan', 'Pin sakelar tidak terpasang dengan bersih', 'Tarik dan pasang kembali sakelar, periksa pin bengkok atau soket longgar.'],
|
|
126
|
+
['Hanya terjadi setelah tumpahan atau kelembaban', 'Oksidasi atau residu pada kontak', 'Lepaskan keyboard dan bersihkan sesuai panduan produsen.'],
|
|
127
|
+
['Banyak tombol menunjukkan delta kecil', 'Debounce firmware terlalu rendah atau masalah pemindaian', 'Bandingkan di port USB lain dan tinjau pengaturan debounce firmware jika tersedia.'],
|
|
128
|
+
],
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
type: 'title',
|
|
132
|
+
text: 'Metode Pengujian yang Mengurangi Positif Palsu',
|
|
133
|
+
level: 3,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'list',
|
|
137
|
+
items: [
|
|
138
|
+
'Uji satu tombol mencurigakan pada satu waktu alih-alih mengetik kalimat penuh.',
|
|
139
|
+
'Tekan tombol sekali, lepaskan sepenuhnya, dan tunggu sebentar sebelum tekanan berikutnya.',
|
|
140
|
+
'Bandingkan tombol mencurigakan dengan tombol terdekat yang terasa sehat.',
|
|
141
|
+
'Abaikan baris pertama untuk tombol karena tidak memiliki tekanan sebelumnya untuk dibandingkan.',
|
|
142
|
+
'Jika tombol yang sama berulang kali menunjukkan baris merah di bawah 30 ms dari ketukan tunggal, perlakukan sebagai kerusakan perangkat keras.',
|
|
143
|
+
'Jika hanya baris kuning yang muncul, ulangi tes lebih lambat dan periksa apakah ritme ketukan Anda menyebabkan interval pendek.',
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: 'Chatter vs. Pengetikan Cepat yang Disengaja',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'comparative',
|
|
153
|
+
columns: 3,
|
|
154
|
+
items: [
|
|
155
|
+
{
|
|
156
|
+
title: 'Chatter',
|
|
157
|
+
description: 'Mengelompok pada satu tombol, sering di bawah 30 ms, dan muncul ketika Anda bermaksud satu tekanan.',
|
|
158
|
+
points: ['Periksa sakelar atau soket.', 'Bandingkan dengan tombol sehat terdekat.'],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
title: 'Pengetikan cepat',
|
|
162
|
+
description: 'Mempengaruhi banyak tombol, mengikuti ritme Anda, dan cenderung berada di atas 50 ms antara tekanan berulang dari tombol yang sama.',
|
|
163
|
+
points: ['Biasanya penggunaan normal.', 'Uji ulang dengan ketukan tunggal yang lebih lambat.'],
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
title: 'Pengulangan tombol OS',
|
|
167
|
+
description: 'Muncul saat menahan tombol dan biasanya berulang pada ritme teratur yang diatur oleh sistem operasi Anda.',
|
|
168
|
+
points: ['Lepaskan sepenuhnya di antara ketukan.', 'Periksa pengaturan pengulangan keyboard secara terpisah.'],
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
type: 'title',
|
|
174
|
+
text: 'Apa yang Dilakukan Ketika Tombol Gagal',
|
|
175
|
+
level: 3,
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
type: 'list',
|
|
179
|
+
items: [
|
|
180
|
+
'Simpan log CSV sebelum mengubah apa pun sehingga Anda dapat membandingkan hasil sebelum dan sesudah.',
|
|
181
|
+
'Lepaskan keycap dan periksa kotoran, residu cairan, atau batang yang tidak kembali dengan mulus.',
|
|
182
|
+
'Untuk keyboard hot-swap, pasang kembali atau ganti sakelar dan uji posisi yang sama lagi.',
|
|
183
|
+
'Untuk keyboard yang disolder, bandingkan opsi debounce firmware sebelum mengasumsikan PCB perlu diperbaiki.',
|
|
184
|
+
'Coba kabel dan port USB lain jika beberapa tombol yang tidak terkait menunjukkan delta yang tidak mungkin.',
|
|
185
|
+
'Untuk dukungan garansi, sertakan tombol yang terpengaruh, nilai delta berulang, model keyboard, versi firmware, dan apakah kerusakan mengikuti sakelar atau soket PCB.',
|
|
186
|
+
],
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'summary',
|
|
190
|
+
title: 'Aturan cepat',
|
|
191
|
+
items: [
|
|
192
|
+
'Satu baris merah adalah petunjuk, bukan vonis.',
|
|
193
|
+
'Baris merah berulang di bawah 30 ms pada tombol fisik yang sama adalah bukti kuat dari chatter keyboard.',
|
|
194
|
+
'Gunakan ketukan tunggal yang disengaja dan bandingkan sakelar mencurigakan dengan tombol sehat terdekat sebelum mengganti perangkat keras.',
|
|
195
|
+
],
|
|
196
|
+
},
|
|
197
|
+
],
|
|
198
|
+
ui: {
|
|
199
|
+
statusIdle: 'Tekan tombol apa saja',
|
|
200
|
+
statusListening: 'Mengukur delta tombol',
|
|
201
|
+
statusChatter: 'Chatter terdeteksi',
|
|
202
|
+
totalPresses: 'Total tekanan',
|
|
203
|
+
chatterEvents: 'Kejadian chatter',
|
|
204
|
+
worstDelta: 'Delta terburuk',
|
|
205
|
+
watchWindow: 'Baris disimpan',
|
|
206
|
+
keyColumn: 'Tombol',
|
|
207
|
+
deltaColumn: 'Delta',
|
|
208
|
+
verdictColumn: 'Vonis',
|
|
209
|
+
timeColumn: 'Waktu',
|
|
210
|
+
normal: 'Normal',
|
|
211
|
+
suspect: 'Mencurigakan',
|
|
212
|
+
chatter: 'Chatter',
|
|
213
|
+
waiting: 'Menunggu',
|
|
214
|
+
clear: 'Hapus log',
|
|
215
|
+
exportLog: 'Ekspor CSV',
|
|
216
|
+
hint: 'Log menyimpan 80 baris terbaru agar sesi panjang tetap cepat. Pengulangan tombol tahan diabaikan; baris merah berasal dari tekanan terpisah yang terjadi terlalu berdekatan.',
|
|
217
|
+
captureNotice: 'Tidak ada tombol mulai. Ketuk tombol mencurigakan sekali dan lihat delta dari tekanan sebelumnya.',
|
|
218
|
+
keyboardAriaLabel: 'Aktivitas tombol terbaru',
|
|
219
|
+
logAriaLabel: 'Log kejadian chatter keyboard',
|
|
220
|
+
escapeKey: 'Esc',
|
|
221
|
+
backspaceKey: 'Hapus',
|
|
222
|
+
tabKey: 'Tab',
|
|
223
|
+
enterKey: 'Enter',
|
|
224
|
+
capsLockKey: 'Caps',
|
|
225
|
+
shiftKey: 'Shift',
|
|
226
|
+
controlKey: 'Ctrl',
|
|
227
|
+
metaKey: 'Meta',
|
|
228
|
+
altKey: 'Alt',
|
|
229
|
+
spaceKey: 'Spasi',
|
|
230
|
+
csvHeader: 'tombol,kode,delta_ms,keparahan,waktu',
|
|
231
|
+
},
|
|
232
|
+
};
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { KeyboardChatterTestUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'test-chatter-tastiera';
|
|
7
|
+
const title = 'Test Chatter Tastiera';
|
|
8
|
+
const description = 'Rileva il chattering delle tastiere meccaniche, la doppia digitazione e il rimbalzo difettoso degli switch verificando quanto velocemente lo stesso tasto appare due volte.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Cos\'è il chatter della tastiera?',
|
|
13
|
+
answer: 'Il chatter della tastiera è un difetto hardware in cui una pressione fisica viene registrata come più pressioni. È comune su switch meccanici sporchi, usurati, ossidati o con debounce inadeguato.',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
question: 'Come funziona questo test di chatter della tastiera?',
|
|
17
|
+
answer: 'Premi lo stesso tasto sospetto lentamente, un tocco alla volta. Se il registro mostra pressioni ripetute a pochi millisecondi di distanza, lo switch potrebbe rimbalzare e produrre doppie lettere.',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
question: 'Quale delta indica che la mia tastiera sta facendo doppia digitazione?',
|
|
21
|
+
answer: 'Una pressione ripetuta sotto i 30 ms è fortemente sospetta per chatter. Ripetizioni da 30 a 50 ms meritano attenzione. Le ripetizioni intenzionali normali sono solitamente sopra i 50 ms per la maggior parte degli utenti.',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
question: 'Perché la prima pressione non mostra un delta?',
|
|
25
|
+
answer: 'Un delta richiede una pressione precedente dello stesso tasto. La prima pressione stabilisce la linea di base, e le pressioni successive mostrano l\'intervallo di tempo in millisecondi.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Il software può risolvere il chattering della tastiera?',
|
|
29
|
+
answer: 'Il software di debounce può nascondere alcuni sintomi, ma non ripara lo switch. Potrebbe essere necessario pulire, reinserire gli switch hot-swap, sostituire lo switch o riparare il PCB della tastiera.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Apri lo strumento e premi i tasti normalmente',
|
|
36
|
+
text: 'Non c\'è un pulsante di avvio. Clicca nello strumento se necessario, quindi premi il tasto che ha digitato doppio.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Tocca il tasto sospetto un colpo alla volta',
|
|
40
|
+
text: 'Premi il tasto che digita doppio. Se una pressione fisica crea diverse righe di registro con delta minuscoli, lo switch sta probabilmente facendo chatter.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Leggi il codice colore',
|
|
44
|
+
text: 'Verde significa normale sopra 50 ms, giallo significa sospetto da 30 a 50 ms e rosso significa chatter rilevato sotto 30 ms.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Esporta il registro se necessario',
|
|
48
|
+
text: 'Usa il pulsante di download per salvare un registro CSV che può aiutare a confrontare i tasti o documentare un guasto intermittente.',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowTo> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step, i) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
position: i + 1,
|
|
70
|
+
name: step.name,
|
|
71
|
+
text: step.text,
|
|
72
|
+
})),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
76
|
+
'@context': 'https://schema.org',
|
|
77
|
+
'@type': 'SoftwareApplication',
|
|
78
|
+
name: title,
|
|
79
|
+
description,
|
|
80
|
+
applicationCategory: 'UtilityApplication',
|
|
81
|
+
operatingSystem: 'All',
|
|
82
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
|
|
83
|
+
inLanguage: 'it',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<KeyboardChatterTestUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faq: faqData,
|
|
91
|
+
bibliography,
|
|
92
|
+
howTo: howToData,
|
|
93
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
94
|
+
seo: [
|
|
95
|
+
{
|
|
96
|
+
type: 'title',
|
|
97
|
+
text: 'Test Doppia Digitazione Tastiera Meccanica',
|
|
98
|
+
level: 2,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'paragraph',
|
|
102
|
+
html: 'Questo test di chatter della tastiera aiuta a diagnosticare una tastiera meccanica che digita due lettere da una pressione, perde rilasci puliti o produce caratteri ripetuti senza che tu abbia intenzionalmente premuto due volte. Usalo prima di pulire gli switch, modificare le impostazioni di debounce del firmware, aprire un reclamo in garanzia o sostituire uno switch hot-swap.',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'diagnostic',
|
|
106
|
+
variant: 'info',
|
|
107
|
+
title: 'Come leggere il risultato',
|
|
108
|
+
badge: 'Soglie delta',
|
|
109
|
+
html: '<p><strong>Normale</strong> significa che la ripetizione era sopra 50 ms ed è solitamente intenzionale. <strong>Sospetto</strong> significa 30-50 ms e dovrebbe essere ritestato sullo stesso tasto. <strong>Chatter rilevato</strong> significa sotto 30 ms, che è molto probabilmente una pressione fisica che rimbalza in più contatti elettrici.</p>',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
type: 'title',
|
|
113
|
+
text: 'Perché gli Switch Meccanici Fanno Chatter',
|
|
114
|
+
level: 3,
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
type: 'paragraph',
|
|
118
|
+
html: 'Uno switch meccanico non si chiude come un segnale digitale perfettamente pulito. I contatti metallici possono rimbalzare per alcuni millisecondi prima di assestarsi. Il firmware della tastiera normalmente filtra quel rimbalzo con una finestra di debounce. Il chattering si verifica quando il contatto è sporco, usurato, ossidato, allentato, incrinato o mal regolato al punto che la tastiera segnala pressioni extra dopo che il filtro di debounce avrebbe dovuto gestirle.',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'table',
|
|
122
|
+
headers: ['Sintomo', 'Causa probabile', 'Cosa provare prima'],
|
|
123
|
+
rows: [
|
|
124
|
+
['Un tasto digita la stessa lettera due volte', 'Contatto dello switch sporco o usurato', 'Rimuovi il keycap, soffia via la polvere e testa di nuovo prima di sostituire lo switch.'],
|
|
125
|
+
['Diversi tasti hot-swap fanno chatter dopo un assemblaggio', 'Pin dello switch non inseriti correttamente', 'Estrai e reinserisci lo switch, controllando pin piegati o un socket allentato.'],
|
|
126
|
+
['Si verifica solo dopo fuoriuscite o umidità', 'Ossidazione o residui sui contatti', 'Scollega la tastiera e pulisci secondo le istruzioni del produttore.'],
|
|
127
|
+
['Molti tasti mostrano delta minuscoli', 'Debounce del firmware troppo basso o problema di scansione', 'Confronta su un\'altra porta USB e rivedi le impostazioni di debounce del firmware se disponibili.'],
|
|
128
|
+
],
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
type: 'title',
|
|
132
|
+
text: 'Metodo di Test che Riduce i Falsi Positivi',
|
|
133
|
+
level: 3,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'list',
|
|
137
|
+
items: [
|
|
138
|
+
'Testa un tasto sospetto alla volta invece di digitare frasi complete.',
|
|
139
|
+
'Premi il tasto una volta, rilascialo completamente e attendi un momento prima della pressione successiva.',
|
|
140
|
+
'Confronta il tasto sospetto con un tasto vicino che sembra sano.',
|
|
141
|
+
'Ignora la prima riga per un tasto perché non ha una pressione precedente con cui confrontarsi.',
|
|
142
|
+
'Se lo stesso tasto mostra ripetutamente righe rosse sotto 30 ms da tocchi singoli, trattalo come un guasto hardware.',
|
|
143
|
+
'Se compaiono solo righe gialle, ripeti il test più lentamente e controlla se il tuo ritmo di battitura sta causando l\'intervallo breve.',
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: 'Chatter vs. Digitazione Veloce Intenzionale',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'comparative',
|
|
153
|
+
columns: 3,
|
|
154
|
+
items: [
|
|
155
|
+
{
|
|
156
|
+
title: 'Chatter',
|
|
157
|
+
description: 'Concentrato su un tasto, spesso sotto 30 ms, e appare quando intendevi una sola pressione.',
|
|
158
|
+
points: ['Ispeziona lo switch o il socket.', 'Confronta con un tasto sano vicino.'],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
title: 'Digitazione veloce',
|
|
162
|
+
description: 'Colpisce molti tasti, segue il tuo ritmo e tende a stare sopra 50 ms tra pressioni ripetute dello stesso tasto.',
|
|
163
|
+
points: ['Solitamente uso normale.', 'Ritesta con tocchi singoli più lenti.'],
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
title: 'Ripetizione tasto del sistema',
|
|
167
|
+
description: 'Appare quando si tiene premuto un tasto e di solito si ripete a un ritmo regolare impostato dal sistema operativo.',
|
|
168
|
+
points: ['Rilascia completamente tra i tocchi.', 'Controlla le impostazioni di ripetizione tastiera separatamente.'],
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
type: 'title',
|
|
174
|
+
text: 'Cosa Fare Quando un Tasto Fallisce',
|
|
175
|
+
level: 3,
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
type: 'list',
|
|
179
|
+
items: [
|
|
180
|
+
'Salva un registro CSV prima di cambiare qualsiasi cosa così puoi confrontare i risultati prima e dopo.',
|
|
181
|
+
'Rimuovi il keycap e ispeziona sporcizia, residui di liquido o uno stelo che non ritorna in modo fluido.',
|
|
182
|
+
'Per tastiere hot-swap, reinserisci o sostituisci lo switch e testa di nuovo la stessa posizione.',
|
|
183
|
+
'Per tastiere saldate, confronta le opzioni di debounce del firmware prima di presumere che il PCB abbia bisogno di riparazione.',
|
|
184
|
+
'Prova un altro cavo e porta USB se più tasti non correlati mostrano delta impossibili.',
|
|
185
|
+
'Per il supporto in garanzia, includi il tasto interessato, i valori delta ripetuti, il modello della tastiera, la versione del firmware e se il guasto segue lo switch o il socket PCB.',
|
|
186
|
+
],
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'summary',
|
|
190
|
+
title: 'Regola rapida',
|
|
191
|
+
items: [
|
|
192
|
+
'Una singola riga rossa è un indizio, non un verdetto.',
|
|
193
|
+
'Righe rosse ripetute sotto 30 ms sullo stesso tasto fisico sono una forte evidenza di chatter della tastiera.',
|
|
194
|
+
'Usa tocchi singoli deliberati e confronta lo switch sospetto con un tasto sano vicino prima di sostituire l\'hardware.',
|
|
195
|
+
],
|
|
196
|
+
},
|
|
197
|
+
],
|
|
198
|
+
ui: {
|
|
199
|
+
statusIdle: 'Premi un tasto qualsiasi',
|
|
200
|
+
statusListening: 'Misurazione delta tasti',
|
|
201
|
+
statusChatter: 'Chatter rilevato',
|
|
202
|
+
totalPresses: 'Pressioni totali',
|
|
203
|
+
chatterEvents: 'Eventi di chatter',
|
|
204
|
+
worstDelta: 'Delta peggiore',
|
|
205
|
+
watchWindow: 'Righe mantenute',
|
|
206
|
+
keyColumn: 'Tasto',
|
|
207
|
+
deltaColumn: 'Delta',
|
|
208
|
+
verdictColumn: 'Verdetto',
|
|
209
|
+
timeColumn: 'Tempo',
|
|
210
|
+
normal: 'Normale',
|
|
211
|
+
suspect: 'Sospetto',
|
|
212
|
+
chatter: 'Chatter',
|
|
213
|
+
waiting: 'In attesa',
|
|
214
|
+
clear: 'Cancella registro',
|
|
215
|
+
exportLog: 'Esporta CSV',
|
|
216
|
+
hint: 'Il registro mantiene le 80 righe più recenti in modo che le sessioni lunghe rimangano veloci. La ripetizione del tasto tenuto premuto viene ignorata; le righe rosse provengono da pressioni separate avvenute troppo vicine.',
|
|
217
|
+
captureNotice: 'Nessun pulsante di avvio. Tocca un tasto sospetto una volta e osserva il delta dalla sua pressione precedente.',
|
|
218
|
+
keyboardAriaLabel: 'Attività recente dei tasti',
|
|
219
|
+
logAriaLabel: 'Registro eventi chatter tastiera',
|
|
220
|
+
escapeKey: 'Esc',
|
|
221
|
+
backspaceKey: 'Canc',
|
|
222
|
+
tabKey: 'Tab',
|
|
223
|
+
enterKey: 'Invio',
|
|
224
|
+
capsLockKey: 'Bloc Maiusc',
|
|
225
|
+
shiftKey: 'Maiusc',
|
|
226
|
+
controlKey: 'Ctrl',
|
|
227
|
+
metaKey: 'Meta',
|
|
228
|
+
altKey: 'Alt',
|
|
229
|
+
spaceKey: 'Spazio',
|
|
230
|
+
csvHeader: 'tasto,codice,delta_ms,gravità,ora',
|
|
231
|
+
},
|
|
232
|
+
};
|