tasmota-webserial-esptool 7.0.1 → 7.2.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.
@@ -1,130 +0,0 @@
1
- # Read Flash Partition Feature
2
-
3
- ## Übersicht
4
-
5
- Die Read Flash Partition Funktionalität wurde erfolgreich aus esptool.js in WebSerial_ESPTool implementiert. Diese Funktion ermöglicht es, Flash-Speicher direkt vom ESP-Chip zu lesen und als Binärdatei herunterzuladen.
6
-
7
- ## Implementierte Änderungen
8
-
9
- ### 1. Backend (TypeScript)
10
-
11
- #### `src/const.ts`
12
- - Hinzugefügt: `ESP_READ_FLASH = 0xd2` Konstante
13
- - Hinzugefügt: `FLASH_READ_TIMEOUT = 100` Konstante
14
-
15
- #### `src/esp_loader.ts`
16
- - Neue Methode `readFlash()` in der `EspStubLoader` Klasse implementiert
17
- - Die Methode unterstützt:
18
- - Lesen von Flash-Speicher ab einer bestimmten Adresse
19
- - Angabe der zu lesenden Größe in Bytes
20
- - Optional: Callback-Funktion für Fortschrittsanzeige
21
- - Rückgabe der Daten als `Uint8Array`
22
-
23
- ### 2. Frontend (HTML/JavaScript/CSS)
24
-
25
- #### `index.html`
26
- - Neue UI-Sektion "Read Flash" hinzugefügt mit:
27
- - Eingabefeld für Adresse (hexadezimal)
28
- - Eingabefeld für Größe (dezimal in Bytes)
29
- - "Read Flash" Button
30
- - Fortschrittsbalken
31
-
32
- #### `js/script.js`
33
- - Neue Funktion `clickReadFlash()` implementiert
34
- - Automatischer Download der gelesenen Daten als `.bin` Datei
35
- - Fortschrittsanzeige während des Lesevorgangs
36
- - Fehlerbehandlung und Logging
37
-
38
- #### `css/style.css`
39
- - Styling für die neue "Read Flash" Sektion
40
- - Responsive Layout-Anpassungen
41
-
42
- ## Verwendung
43
-
44
- ### Über die Web-Oberfläche
45
-
46
- #### Flash direkt lesen
47
-
48
- 1. Verbinden Sie sich mit einem ESP-Gerät über den "Connect" Button
49
- 2. Scrollen Sie zur "Read Flash" Sektion
50
- 3. Geben Sie die Startadresse ein (z.B. `0` für den Anfang des Flash-Speichers)
51
- 4. Geben Sie die Größe in Bytes ein (z.B. `4096` für 4KB)
52
- 5. Klicken Sie auf "Read Flash"
53
- 6. Die Daten werden automatisch als `.bin` Datei heruntergeladen
54
-
55
- #### Partitionstabelle lesen
56
-
57
- 1. Verbinden Sie sich mit einem ESP-Gerät über den "Connect" Button
58
- 2. Scrollen Sie zur "Partition Table" Sektion
59
- 3. Klicken Sie auf "Read Partition Table"
60
- 4. Die Partitionstabelle wird gelesen und angezeigt
61
- 5. Klicken Sie auf "Download" neben einer Partition, um diese herunterzuladen
62
-
63
- ### Programmatisch
64
-
65
- ```typescript
66
- // Beispiel: 4KB vom Offset 0x0 lesen
67
- const data = await espStubLoader.readFlash(
68
- 0x0, // Adresse
69
- 4096, // Größe in Bytes
70
- (packet, progress, totalSize) => {
71
- // Optional: Fortschritts-Callback
72
- console.log(`Progress: ${progress}/${totalSize} bytes`);
73
- }
74
- );
75
-
76
- // data ist ein Uint8Array mit den gelesenen Daten
77
- ```
78
-
79
- ## Technische Details
80
-
81
- ### Protokoll
82
-
83
- Die Implementierung folgt dem ESP Serial Protocol:
84
- 1. Sende `ESP_READ_FLASH` Kommando mit Parametern (Adresse, Größe, Block-Größe, Anzahl Blöcke)
85
- 2. Warte auf Bestätigung
86
- 3. Empfange Datenpakete über SLIP-Protokoll
87
- 4. Sende Acknowledgment nach jedem Paket
88
- 5. Wiederhole bis alle Daten empfangen wurden
89
-
90
- ### Kompatibilität
91
-
92
- Die Funktion ist nur im Stub-Modus verfügbar (nach `runStub()`), da der ROM-Bootloader diesen Befehl nicht unterstützt.
93
-
94
- Unterstützte Chips:
95
- - ESP32
96
- - ESP32-S2
97
- - ESP32-S3
98
- - ESP32-C2
99
- - ESP32-C3
100
- - ESP32-C5
101
- - ESP32-C6
102
- - ESP32-C61
103
- - ESP32-H2
104
- - ESP32-P4
105
- - ESP8266
106
-
107
- ## Beispiel-Anwendungsfälle
108
-
109
- 1. **Backup erstellen**: Kompletten Flash-Speicher sichern
110
- 2. **Partition lesen**: Spezifische Partitionen extrahieren (z.B. NVS, OTA)
111
- 3. **Debugging**: Flash-Inhalt zur Fehleranalyse untersuchen
112
- 4. **Firmware-Extraktion**: Installierte Firmware vom Gerät lesen
113
- 5. **Partitionstabelle analysieren**: Übersicht über alle Partitionen erhalten
114
- 6. **Einzelne Partitionen sichern**: Nur bestimmte Partitionen herunterladen
115
-
116
- ## Bekannte Einschränkungen
117
-
118
- - Die Funktion erfordert, dass der Stub-Loader läuft
119
- - Große Lesevorgänge können einige Zeit in Anspruch nehmen
120
- - Die maximale Größe ist durch den verfügbaren Flash-Speicher des Chips begrenzt
121
-
122
- ## Build-Prozess
123
-
124
- Nach Änderungen am TypeScript-Code:
125
-
126
- ```bash
127
- npm run prepublishOnly
128
- ```
129
-
130
- Dies kompiliert den TypeScript-Code und erstellt die Distributionsdateien in `dist/`.
package/rollup.config.js DELETED
@@ -1,27 +0,0 @@
1
- import { nodeResolve } from "@rollup/plugin-node-resolve";
2
- import json from "@rollup/plugin-json";
3
- import terser from "@rollup/plugin-terser";
4
-
5
- const config = {
6
- input: "dist/index.js",
7
- output: {
8
- dir: "dist/web",
9
- format: "module",
10
- },
11
- // preserveEntrySignatures: false,
12
- plugins: [nodeResolve(), json()],
13
- };
14
-
15
- if (process.env.NODE_ENV === "production") {
16
- config.plugins.push(
17
- terser({
18
- ecma: 2019,
19
- toplevel: true,
20
- output: {
21
- comments: false,
22
- },
23
- }),
24
- );
25
- }
26
-
27
- export default config;
package/tsconfig.json DELETED
@@ -1,20 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "lib": ["es2019", "dom"],
4
- "target": "es2019",
5
- "module": "es2020",
6
- "moduleResolution": "node",
7
- "resolveJsonModule": true,
8
- "outDir": "dist",
9
- "declaration": true,
10
- "experimentalDecorators": true,
11
- "noFallthroughCasesInSwitch": true,
12
- "noImplicitReturns": true,
13
- "noUnusedLocals": true,
14
- "forceConsistentCasingInFileNames": true,
15
- "strict": true,
16
- "importHelpers": true,
17
- "skipLibCheck": false
18
- },
19
- "include": ["src/*"]
20
- }