@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 = 'toetsenbord-chatter-test';
|
|
7
|
+
const title = 'Toetsenbord Chatter Test';
|
|
8
|
+
const description = 'Detecteer mechanisch toetsenbord chatteren, dubbel typen en defecte schakelaarbounce door te controleren hoe snel dezelfde toets twee keer verschijnt.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Wat is toetsenbord chatter?',
|
|
13
|
+
answer: 'Toetsenbord chatter is een hardwarefout waarbij één fysieke druk wordt geregistreerd als meerdere drukken. Het komt vaak voor bij vuile, versleten, geoxideerde of slecht gedebouncete mechanische schakelaars.',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
question: 'Hoe werkt deze toetsenbord chatter test?',
|
|
17
|
+
answer: 'Druk dezelfde verdachte toets langzaam in, één tik per keer. Als het logboek herhaalde drukken met slechts enkele milliseconden ertussen toont, kan de schakelaar stuiteren en dubbele letters produceren.',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
question: 'Welke delta betekent dat mijn toetsenbord dubbel typt?',
|
|
21
|
+
answer: 'Een herhaalde druk onder 30 ms is sterk verdacht voor chatter. Herhalingen van 30 tot 50 ms verdienen aandacht. Normale opzettelijke herhaalde drukken zijn meestal boven 50 ms voor de meeste gebruikers.',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
question: 'Waarom toont de eerste druk geen delta?',
|
|
25
|
+
answer: 'Een delta heeft een eerdere druk van dezelfde toets nodig. De eerste druk legt de basislijn vast, en latere drukken tonen het tijdsverschil in milliseconden.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Kan software toetsenbord chatteren oplossen?',
|
|
29
|
+
answer: 'Debounce-software kan sommige symptomen verbergen, maar repareert de schakelaar niet. Schoonmaken, hot-swap schakelaars opnieuw plaatsen, de schakelaar vervangen of de toetsenbord-PCB repareren kan nodig zijn.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Open de tool en druk normaal op toetsen',
|
|
36
|
+
text: 'Er is geen startknop. Klik indien nodig in de tool en druk vervolgens op de toets die dubbel heeft getypt.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Tik de verdachte toets één voor één aan',
|
|
40
|
+
text: 'Druk op de toets die dubbel typt. Als één fysieke druk meerdere logregels met kleine delta\'s creëert, chattering de schakelaar waarschijnlijk.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Lees de kleurcode',
|
|
44
|
+
text: 'Groen betekent normaal boven 50 ms, geel betekent verdacht van 30 tot 50 ms en rood betekent chatter gedetecteerd onder 30 ms.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Exporteer het logboek indien nodig',
|
|
48
|
+
text: 'Gebruik de downloadknop om een CSV-logboek op te slaan dat kan helpen bij het vergelijken van toetsen of het documenteren van een intermitterende fout.',
|
|
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: 'nl',
|
|
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: 'Mechanische Toetsenbord Dubbel Typ Test',
|
|
98
|
+
level: 2,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'paragraph',
|
|
102
|
+
html: 'Deze toetsenbord chatter test helpt bij het diagnosticeren van een mechanisch toetsenbord dat twee letters typt uit één druk, schone loslatingen mist of herhaalde tekens produceert zonder dat u opzettelijk twee keer tikte. Gebruik het voordat u schakelaars schoonmaakt, firmware debounce-instellingen wijzigt, een garantieclaim opent of een hot-swap schakelaar vervangt.',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'diagnostic',
|
|
106
|
+
variant: 'info',
|
|
107
|
+
title: 'Hoe het resultaat te lezen',
|
|
108
|
+
badge: 'Delta drempelwaarden',
|
|
109
|
+
html: '<p><strong>Normaal</strong> betekent dat de herhaling boven 50 ms was en meestal opzettelijk is. <strong>Verdacht</strong> betekent 30-50 ms en moet opnieuw worden getest op dezelfde toets. <strong>Chatter gedetecteerd</strong> betekent onder 30 ms, wat zeer waarschijnlijk één fysieke druk is die in meerdere elektrische contacten stuitert.</p>',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
type: 'title',
|
|
113
|
+
text: 'Waarom Mechanische Schakelaars Chatteren',
|
|
114
|
+
level: 3,
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
type: 'paragraph',
|
|
118
|
+
html: 'Een mechanische schakelaar sluit niet als een perfect schoon digitaal signaal. De metalen contacten kunnen enkele milliseconden stuiteren voordat ze tot rust komen. Toetsenbordfirmware filtert die stuiter normaal met een debounce-venster. Chatteren gebeurt wanneer het contact vuil, versleten, geoxideerd, los, gebarsten of slecht afgesteld is, zodanig dat het toetsenbord extra drukken meldt nadat het debounce-filter ze had moeten afhandelen.',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'table',
|
|
122
|
+
headers: ['Symptoom', 'Waarschijnlijke oorzaak', 'Wat eerst te proberen'],
|
|
123
|
+
rows: [
|
|
124
|
+
['Eén toets typt dezelfde letter twee keer', 'Vuil of versleten schakelcontact', 'Verwijder de keycap, blaas stof weg en test opnieuw voordat u de schakelaar vervangt.'],
|
|
125
|
+
['Meerdere hot-swap toetsen chatteren na een build', 'Schakelpinnen niet goed geplaatst', 'Trek de schakelaar eruit en plaats hem opnieuw, controleer op gebogen pinnen of een losse socket.'],
|
|
126
|
+
['Gebeurt alleen na morsen of vochtigheid', 'Oxidatie of residu op contacten', 'Koppel het toetsenbord los en reinig volgens de richtlijnen van de fabrikant.'],
|
|
127
|
+
['Veel toetsen tonen kleine delta\'s', 'Firmware debounce te laag of scanprobleem', 'Vergelijk op een andere USB-poort en bekijk firmware debounce-instellingen indien beschikbaar.'],
|
|
128
|
+
],
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
type: 'title',
|
|
132
|
+
text: 'Testmethode Die Valse Positieven Vermindert',
|
|
133
|
+
level: 3,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'list',
|
|
137
|
+
items: [
|
|
138
|
+
'Test één verdachte toets tegelijk in plaats van volledige zinnen te typen.',
|
|
139
|
+
'Druk de toets één keer in, laat hem volledig los en wacht een moment voor de volgende druk.',
|
|
140
|
+
'Vergelijk de verdachte toets met een nabijgelegen toets die gezond aanvoelt.',
|
|
141
|
+
'Negeer de eerste rij voor een toets omdat er geen eerdere druk is om mee te vergelijken.',
|
|
142
|
+
'Als dezelfde toets herhaaldelijk rode rijen onder 30 ms toont van enkele tikken, behandel het dan als een hardwarefout.',
|
|
143
|
+
'Als er alleen gele rijen verschijnen, herhaal de test dan langzamer en controleer of uw tikritme het korte interval veroorzaakt.',
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: 'Chatter vs. Opzettelijk Snel Typen',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'comparative',
|
|
153
|
+
columns: 3,
|
|
154
|
+
items: [
|
|
155
|
+
{
|
|
156
|
+
title: 'Chatter',
|
|
157
|
+
description: 'Geclusterd op één toets, vaak onder 30 ms, en verschijnt wanneer u één druk bedoelde.',
|
|
158
|
+
points: ['Inspecteer de schakelaar of socket.', 'Vergelijk met een nabijgelegen gezonde toets.'],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
title: 'Snel typen',
|
|
162
|
+
description: 'Beïnvloedt veel toetsen, volgt uw ritme en neigt boven 50 ms te zitten tussen herhaalde drukken van dezelfde toets.',
|
|
163
|
+
points: ['Meestal normaal gebruik.', 'Her test met langzamere enkele tikken.'],
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
title: 'OS toetsherhaling',
|
|
167
|
+
description: 'Verschijnt bij het ingedrukt houden van een toets en herhaalt meestal op een regelmatig ritme ingesteld door uw besturingssysteem.',
|
|
168
|
+
points: ['Laat volledig los tussen tikken.', 'Controleer toetsenbordherhalingsinstellingen apart.'],
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
type: 'title',
|
|
174
|
+
text: 'Wat te Doen Wanneer een Toets Faalt',
|
|
175
|
+
level: 3,
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
type: 'list',
|
|
179
|
+
items: [
|
|
180
|
+
'Sla een CSV-logboek op voordat u iets verandert, zodat u voor- en na-resultaten kunt vergelijken.',
|
|
181
|
+
'Verwijder de keycap en inspecteer op vuil, vloeistofresten of een steel die niet soepel terugkeert.',
|
|
182
|
+
'Voor hot-swap toetsenborden, herplaats of vervang de schakelaar en test dezelfde toetspositie opnieuw.',
|
|
183
|
+
'Voor gesoldeerde toetsenborden, vergelijk firmware debounce-opties voordat u aanneemt dat de PCB gerepareerd moet worden.',
|
|
184
|
+
'Probeer een andere kabel en USB-poort als meerdere niet-gerelateerde toetsen onmogelijke delta\'s tonen.',
|
|
185
|
+
'Voor garantieondersteuning, vermeld de getroffen toets, herhaalde deltawaarden, toetsenbordmodel, firmwareversie en of de fout de schakelaar of de PCB-socket volgt.',
|
|
186
|
+
],
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'summary',
|
|
190
|
+
title: 'Snelle regel',
|
|
191
|
+
items: [
|
|
192
|
+
'Een enkele rode rij is een aanwijzing, geen vonnis.',
|
|
193
|
+
'Herhaalde rode rijen onder 30 ms op dezelfde fysieke toets zijn sterk bewijs van toetsenbord chatter.',
|
|
194
|
+
'Gebruik opzettelijke enkele tikken en vergelijk de verdachte schakelaar met een nabijgelegen gezonde toets voordat u hardware vervangt.',
|
|
195
|
+
],
|
|
196
|
+
},
|
|
197
|
+
],
|
|
198
|
+
ui: {
|
|
199
|
+
statusIdle: 'Druk op een toets',
|
|
200
|
+
statusListening: 'Toetsdelta\'s meten',
|
|
201
|
+
statusChatter: 'Chatter gedetecteerd',
|
|
202
|
+
totalPresses: 'Totaal drukken',
|
|
203
|
+
chatterEvents: 'Chatter gebeurtenissen',
|
|
204
|
+
worstDelta: 'Slechtste delta',
|
|
205
|
+
watchWindow: 'Rijen behouden',
|
|
206
|
+
keyColumn: 'Toets',
|
|
207
|
+
deltaColumn: 'Delta',
|
|
208
|
+
verdictColumn: 'Oordeel',
|
|
209
|
+
timeColumn: 'Tijd',
|
|
210
|
+
normal: 'Normaal',
|
|
211
|
+
suspect: 'Verdacht',
|
|
212
|
+
chatter: 'Chatter',
|
|
213
|
+
waiting: 'Wachten',
|
|
214
|
+
clear: 'Logboek wissen',
|
|
215
|
+
exportLog: 'CSV exporteren',
|
|
216
|
+
hint: 'Het logboek bewaart de meest recente 80 rijen zodat lange sessies snel blijven. Ingedrukt-toets herhaling wordt genegeerd; rode rijen komen van afzonderlijke drukken die te dicht op elkaar plaatsvonden.',
|
|
217
|
+
captureNotice: 'Geen startknop. Tik een verdachte toets één keer aan en bekijk de delta ten opzichte van de vorige druk.',
|
|
218
|
+
keyboardAriaLabel: 'Recente toetsactiviteit',
|
|
219
|
+
logAriaLabel: 'Toetsenbord chatter gebeurtenislogboek',
|
|
220
|
+
escapeKey: 'Esc',
|
|
221
|
+
backspaceKey: 'Back',
|
|
222
|
+
tabKey: 'Tab',
|
|
223
|
+
enterKey: 'Enter',
|
|
224
|
+
capsLockKey: 'Caps',
|
|
225
|
+
shiftKey: 'Shift',
|
|
226
|
+
controlKey: 'Ctrl',
|
|
227
|
+
metaKey: 'Meta',
|
|
228
|
+
altKey: 'Alt',
|
|
229
|
+
spaceKey: 'Spatie',
|
|
230
|
+
csvHeader: 'toets,code,delta_ms,ernst,tijd',
|
|
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-klawiatury';
|
|
7
|
+
const title = 'Test Chatteru Klawiatury';
|
|
8
|
+
const description = 'Wykryj chatterowanie klawiatury mechanicznej, podwójne pisanie i wadliwe odbijanie przełączników, sprawdzając jak szybko ten sam klawisz pojawia się dwukrotnie.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Czym jest chatter klawiatury?',
|
|
13
|
+
answer: 'Chatter klawiatury to usterka sprzętowa, w której jedno fizyczne naciśnięcie jest rejestrowane jako wiele naciśnięć. Jest to powszechne w brudnych, zużytych, utlenionych lub źle debounce\'owanych przełącznikach mechanicznych.',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
question: 'Jak działa ten test chatteru klawiatury?',
|
|
17
|
+
answer: 'Naciskaj ten sam podejrzany klawisz powoli, jedno stuknięcie naraz. Jeśli dziennik pokazuje powtarzające się naciśnięcia w odstępie zaledwie kilku milisekund, przełącznik może odbijać i produkować podwójne litery.',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
question: 'Jaka delta oznacza, że moja klawiatura podwójnie pisze?',
|
|
21
|
+
answer: 'Powtórzone naciśnięcie poniżej 30 ms jest silnie podejrzane o chatter. Powtórzenia od 30 do 50 ms zasługują na uwagę. Normalne celowe powtórzenia są zwykle powyżej 50 ms dla większości użytkowników.',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
question: 'Dlaczego pierwsze naciśnięcie nie pokazuje delty?',
|
|
25
|
+
answer: 'Delta wymaga poprzedniego naciśnięcia tego samego klawisza. Pierwsze naciśnięcie ustala linię bazową, a późniejsze naciśnięcia pokazują odstęp czasu w milisekundach.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Czy oprogramowanie może naprawić chatter klawiatury?',
|
|
29
|
+
answer: 'Oprogramowanie debounce może ukryć niektóre objawy, ale nie naprawia przełącznika. Czyszczenie, ponowne osadzenie przełączników hot-swap, wymiana przełącznika lub naprawa PCB klawiatury może być konieczna.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Otwórz narzędzie i naciskaj klawisze normalnie',
|
|
36
|
+
text: 'Nie ma przycisku startu. Kliknij w narzędzie, jeśli to konieczne, a następnie naciśnij klawisz, który pisał podwójnie.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Stukaj podejrzany klawisz pojedynczo',
|
|
40
|
+
text: 'Naciśnij klawisz, który podwójnie pisze. Jeśli jedno fizyczne naciśnięcie tworzy kilka wierszy dziennika z małymi deltami, przełącznik prawdopodobnie chatteruje.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Odczytaj kod kolorów',
|
|
44
|
+
text: 'Zielony oznacza normalny powyżej 50 ms, żółty oznacza podejrzany od 30 do 50 ms, a czerwony oznacza chatter wykryty poniżej 30 ms.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Eksportuj dziennik, jeśli to konieczne',
|
|
48
|
+
text: 'Użyj przycisku pobierania, aby zapisać dziennik CSV, który może pomóc porównać klawisze lub udokumentować przerywaną usterkę.',
|
|
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: 'pl',
|
|
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 Podwójnego Pisania Klawiatury Mechanicznej',
|
|
98
|
+
level: 2,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'paragraph',
|
|
102
|
+
html: 'Ten test chatteru klawiatury pomaga zdiagnozować klawiaturę mechaniczną, która pisze dwie litery z jednego naciśnięcia, pomija czyste zwolnienia lub produkuje powtarzające się znaki bez celowego dwukrotnego stuknięcia. Użyj go przed czyszczeniem przełączników, zmianą ustawień debounce firmware, otwarciem roszczenia gwarancyjnego lub wymianą przełącznika hot-swap.',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'diagnostic',
|
|
106
|
+
variant: 'info',
|
|
107
|
+
title: 'Jak odczytać wynik',
|
|
108
|
+
badge: 'Progi delta',
|
|
109
|
+
html: '<p><strong>Normalny</strong> oznacza, że powtórzenie było powyżej 50 ms i zwykle jest celowe. <strong>Podejrzany</strong> oznacza 30-50 ms i powinien być ponownie przetestowany na tym samym klawiszu. <strong>Chatter wykryty</strong> oznacza poniżej 30 ms, co bardzo prawdopodobnie jest jednym fizycznym naciśnięciem odbijającym w wiele styków elektrycznych.</p>',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
type: 'title',
|
|
113
|
+
text: 'Dlaczego Przełączniki Mechaniczne Chatterują',
|
|
114
|
+
level: 3,
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
type: 'paragraph',
|
|
118
|
+
html: 'Przełącznik mechaniczny nie zamyka się jako idealnie czysty sygnał cyfrowy. Styki metalowe mogą odbijać przez kilka milisekund przed ustabilizowaniem się. Firmware klawiatury normalnie filtruje to odbicie za pomocą okna debounce. Chatterowanie występuje, gdy styk jest brudny, zużyty, utleniony, luźny, pęknięty lub źle dostrojony na tyle, że klawiatura zgłasza dodatkowe naciśnięcia po tym, jak filtr debounce powinien był je obsłużyć.',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'table',
|
|
122
|
+
headers: ['Objaw', 'Prawdopodobna przyczyna', 'Co wypróbować najpierw'],
|
|
123
|
+
rows: [
|
|
124
|
+
['Jeden klawisz pisze tę samą literę dwa razy', 'Brudny lub zużyty styk przełącznika', 'Zdejmij nasadkę, wydmuchaj kurz i przetestuj ponownie przed wymianą przełącznika.'],
|
|
125
|
+
['Kilka klawiszy hot-swap chatteruje po montażu', 'Kołki przełącznika nie są czysto osadzone', 'Wyciągnij i ponownie osadź przełącznik, sprawdzając zagięte kołki lub luźne gniazdo.'],
|
|
126
|
+
['Występuje tylko po rozlaniu lub wilgoci', 'Utlenienie lub pozostałości na stykach', 'Odłącz klawiaturę i wyczyść zgodnie z instrukcjami producenta.'],
|
|
127
|
+
['Wiele klawiszy pokazuje małe delty', 'Debounce firmware zbyt niski lub problem skanowania', 'Porównaj na innym porcie USB i przejrzyj ustawienia debounce firmware, jeśli dostępne.'],
|
|
128
|
+
],
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
type: 'title',
|
|
132
|
+
text: 'Metoda Testowania, Która Zmniejsza Fałszywe Pozytywy',
|
|
133
|
+
level: 3,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'list',
|
|
137
|
+
items: [
|
|
138
|
+
'Testuj jeden podejrzany klawisz naraz zamiast pisać pełne zdania.',
|
|
139
|
+
'Naciśnij klawisz raz, całkowicie go zwolnij i poczekaj chwilę przed następnym naciśnięciem.',
|
|
140
|
+
'Porównaj podejrzany klawisz z pobliskim klawiszem, który wydaje się zdrowy.',
|
|
141
|
+
'Zignoruj pierwszy wiersz dla klawisza, ponieważ nie ma poprzedniego naciśnięcia do porównania.',
|
|
142
|
+
'Jeśli ten sam klawisz wielokrotnie pokazuje czerwone wiersze poniżej 30 ms z pojedynczych stuknięć, traktuj to jako usterkę sprzętową.',
|
|
143
|
+
'Jeśli pojawiają się tylko żółte wiersze, powtórz test wolniej i sprawdź, czy twój rytm stukania powoduje krótki interwał.',
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: 'Chatter vs. Celowe Szybkie Pisanie',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'comparative',
|
|
153
|
+
columns: 3,
|
|
154
|
+
items: [
|
|
155
|
+
{
|
|
156
|
+
title: 'Chatter',
|
|
157
|
+
description: 'Skupiony na jednym klawiszu, często poniżej 30 ms, i pojawia się, gdy zamierzałeś jedno naciśnięcie.',
|
|
158
|
+
points: ['Sprawdź przełącznik lub gniazdo.', 'Porównaj z pobliskim zdrowym klawiszem.'],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
title: 'Szybkie pisanie',
|
|
162
|
+
description: 'Wpływa na wiele klawiszy, podąża za twoim rytmem i zwykle wynosi powyżej 50 ms między powtarzanymi naciśnięciami tego samego klawisza.',
|
|
163
|
+
points: ['Zazwyczaj normalne użytkowanie.', 'Przetestuj ponownie z wolniejszymi pojedynczymi stuknięciami.'],
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
title: 'Powtarzanie klawisza systemu',
|
|
167
|
+
description: 'Pojawia się przy przytrzymaniu klawisza i zwykle powtarza się w regularnym rytmie ustawionym przez system operacyjny.',
|
|
168
|
+
points: ['Zwolnij całkowicie między stuknięciami.', 'Sprawdź ustawienia powtarzania klawiatury oddzielnie.'],
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
type: 'title',
|
|
174
|
+
text: 'Co Zrobić, Gdy Klawisz Nie Przechodzi Testu',
|
|
175
|
+
level: 3,
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
type: 'list',
|
|
179
|
+
items: [
|
|
180
|
+
'Zapisz dziennik CSV przed zmianą czegokolwiek, aby móc porównać wyniki przed i po.',
|
|
181
|
+
'Zdejmij nasadkę klawisza i sprawdź, czy nie ma brudu, pozostałości płynu lub trzonka, który nie wraca płynnie.',
|
|
182
|
+
'W przypadku klawiatur hot-swap, ponownie osadź lub wymień przełącznik i przetestuj tę samą pozycję ponownie.',
|
|
183
|
+
'W przypadku klawiatur lutowanych, porównaj opcje debounce firmware przed założeniem, że PCB wymaga naprawy.',
|
|
184
|
+
'Wypróbuj inny kabel i port USB, jeśli wiele niepowiązanych klawiszy pokazuje niemożliwe delty.',
|
|
185
|
+
'Dla wsparcia gwarancyjnego, podaj dotknięty klawisz, powtarzane wartości delta, model klawiatury, wersję firmware i czy usterka podąża za przełącznikiem czy gniazdem PCB.',
|
|
186
|
+
],
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'summary',
|
|
190
|
+
title: 'Szybka zasada',
|
|
191
|
+
items: [
|
|
192
|
+
'Pojedynczy czerwony wiersz to wskazówka, nie werdykt.',
|
|
193
|
+
'Powtarzane czerwone wiersze poniżej 30 ms na tym samym fizycznym klawiszu są silnym dowodem chatteru klawiatury.',
|
|
194
|
+
'Używaj celowych pojedynczych stuknięć i porównaj podejrzany przełącznik z pobliskim zdrowym klawiszem przed wymianą sprzętu.',
|
|
195
|
+
],
|
|
196
|
+
},
|
|
197
|
+
],
|
|
198
|
+
ui: {
|
|
199
|
+
statusIdle: 'Naciśnij dowolny klawisz',
|
|
200
|
+
statusListening: 'Pomiar delt klawiszy',
|
|
201
|
+
statusChatter: 'Chatter wykryty',
|
|
202
|
+
totalPresses: 'Łącznie naciśnięć',
|
|
203
|
+
chatterEvents: 'Zdarzenia chatteru',
|
|
204
|
+
worstDelta: 'Najgorsza delta',
|
|
205
|
+
watchWindow: 'Zachowane wiersze',
|
|
206
|
+
keyColumn: 'Klawisz',
|
|
207
|
+
deltaColumn: 'Delta',
|
|
208
|
+
verdictColumn: 'Werdykt',
|
|
209
|
+
timeColumn: 'Czas',
|
|
210
|
+
normal: 'Normalny',
|
|
211
|
+
suspect: 'Podejrzany',
|
|
212
|
+
chatter: 'Chatter',
|
|
213
|
+
waiting: 'Oczekiwanie',
|
|
214
|
+
clear: 'Wyczyść dziennik',
|
|
215
|
+
exportLog: 'Eksportuj CSV',
|
|
216
|
+
hint: 'Dziennik przechowuje 80 najnowszych wierszy, aby długie sesje pozostały szybkie. Powtarzanie przytrzymanego klawisza jest ignorowane; czerwone wiersze pochodzą z oddzielnych naciśnięć, które wystąpiły zbyt blisko siebie.',
|
|
217
|
+
captureNotice: 'Brak przycisku startu. Stuknij podejrzany klawisz raz i obserwuj deltę od jego poprzedniego naciśnięcia.',
|
|
218
|
+
keyboardAriaLabel: 'Ostatnia aktywność klawiszy',
|
|
219
|
+
logAriaLabel: 'Dziennik zdarzeń chatteru klawiatury',
|
|
220
|
+
escapeKey: 'Esc',
|
|
221
|
+
backspaceKey: 'Back',
|
|
222
|
+
tabKey: 'Tab',
|
|
223
|
+
enterKey: 'Enter',
|
|
224
|
+
capsLockKey: 'Caps',
|
|
225
|
+
shiftKey: 'Shift',
|
|
226
|
+
controlKey: 'Ctrl',
|
|
227
|
+
metaKey: 'Meta',
|
|
228
|
+
altKey: 'Alt',
|
|
229
|
+
spaceKey: 'Spacja',
|
|
230
|
+
csvHeader: 'klawisz,kod,delta_ms,dotkliwość,czas',
|
|
231
|
+
},
|
|
232
|
+
};
|