driverge-mcp 0.0.1 → 0.1.0-beta.1
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/README.md +106 -13
- package/dist/codegen/esp32.js +7 -7
- package/dist/codegen/esp32.js.map +1 -1
- package/dist/codegen/portable-cpp.js +8 -9
- package/dist/codegen/portable-cpp.js.map +1 -1
- package/dist/codegen/portable.js +17 -16
- package/dist/codegen/portable.js.map +1 -1
- package/dist/codegen/stm32.js +14 -10
- package/dist/codegen/stm32.js.map +1 -1
- package/dist/mcp/register.js +24 -1
- package/dist/mcp/register.js.map +1 -1
- package/dist/pdf/command.d.ts +21 -0
- package/dist/pdf/command.js +105 -10
- package/dist/pdf/command.js.map +1 -1
- package/dist/pdf/extract.js +27 -1
- package/dist/pdf/extract.js.map +1 -1
- package/dist/pdf/part.js +2 -0
- package/dist/pdf/part.js.map +1 -1
- package/dist/pdf/register-table.d.ts +4 -0
- package/dist/pdf/register-table.js +4 -2
- package/dist/pdf/register-table.js.map +1 -1
- package/dist/pdf/ti-command-byte.d.ts +7 -0
- package/dist/pdf/ti-command-byte.js +165 -0
- package/dist/pdf/ti-command-byte.js.map +1 -0
- package/dist/schema/assemble.js +7 -0
- package/dist/schema/assemble.js.map +1 -1
- package/dist/schema/validate.js +8 -1
- package/dist/schema/validate.js.map +1 -1
- package/dist/server.js +5 -0
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,13 +7,17 @@
|
|
|
7
7
|
<a href="https://www.npmjs.com/package/driverge-mcp"><img alt="npm" src="https://img.shields.io/npm/v/driverge-mcp"></a>
|
|
8
8
|
<a href="https://github.com/MehmetTopuz/driverge-mcp/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/MehmetTopuz/driverge-mcp/actions/workflows/ci.yml/badge.svg"></a>
|
|
9
9
|
<a href="LICENSE"><img alt="license" src="https://img.shields.io/badge/license-MIT-blue"></a>
|
|
10
|
-
<img alt="status" src="https://img.shields.io/badge/status-
|
|
10
|
+
<img alt="status" src="https://img.shields.io/badge/status-closed%20beta-orange">
|
|
11
11
|
<img alt="mcp" src="https://img.shields.io/badge/MCP-server-black">
|
|
12
12
|
</p>
|
|
13
13
|
|
|
14
|
-
>
|
|
15
|
-
> is
|
|
16
|
-
>
|
|
14
|
+
> 🧪 **Closed beta** — [`driverge-mcp`](https://www.npmjs.com/package/driverge-mcp)
|
|
15
|
+
> is published to npm under the `beta` dist-tag; install the beta channel with
|
|
16
|
+
> **`npx -y driverge-mcp@beta`**. It is **not yet hardware-verified through the
|
|
17
|
+
> release gate** — generated drivers are reviewed *drafts*, not certified
|
|
18
|
+
> firmware. APIs and the JSON schema may still change before the stable **v0.1.0**.
|
|
19
|
+
> See **[Maturity & status](#maturity--status)**, and **[BETA.md](BETA.md)** if
|
|
20
|
+
> you're testing.
|
|
17
21
|
|
|
18
22
|
---
|
|
19
23
|
|
|
@@ -101,14 +105,16 @@ Every target specializes the same portable **[thin-HAL](https://en.wikipedia.org
|
|
|
101
105
|
seam — the driver core is identical across platforms; only the seam implementation
|
|
102
106
|
changes.
|
|
103
107
|
|
|
104
|
-
| Target | Bus binding | Buses | Language |
|
|
108
|
+
| Target | Bus binding | Buses | Language | Maturity |
|
|
105
109
|
|---|---|---|---|---|
|
|
106
|
-
| **Portable (thin-HAL)** | user-implemented `hal_*` seam | I²C, SPI, UART, CAN | C / C++ |
|
|
107
|
-
| **ESP32** | ESP-IDF (`i2c_master_*`, `spi_master`, `uart`, TWAI) | I²C, SPI, UART, CAN | C / C++ |
|
|
108
|
-
| **STM32** | CubeHAL (`HAL_I2C_*`, `HAL_SPI_*` + GPIO CS, `HAL_UART_*`) | I²C, SPI, UART | C / C++ |
|
|
109
|
-
| **Arduino** | `Wire` / `SPI` | — | C++ |
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
| **Portable (thin-HAL)** | user-implemented `hal_*` seam | I²C, SPI, UART, CAN | C / C++ | **Beta** |
|
|
111
|
+
| **ESP32** | ESP-IDF (`i2c_master_*`, `spi_master`, `uart`, TWAI) | I²C, SPI, UART, CAN | C / C++ | **Experimental** |
|
|
112
|
+
| **STM32** | CubeHAL (`HAL_I2C_*`, `HAL_SPI_*` + GPIO CS, `HAL_UART_*`) | I²C, SPI, UART | C / C++ | **Experimental** |
|
|
113
|
+
| **Arduino** | `Wire` / `SPI` | — | C++ | not implemented |
|
|
114
|
+
|
|
115
|
+
"Maturity" here is *codegen* maturity vs. *hardware-verified* maturity — see
|
|
116
|
+
[Maturity & status](#maturity--status) for exactly what has and hasn't run on
|
|
117
|
+
silicon. STM32 CAN is planned (the bxCAN/FDCAN family split needs its own pass); asking
|
|
112
118
|
a target for a bus it doesn't support fails fast with a clear
|
|
113
119
|
`UnsupportedBusError` rather than emitting a wrong seam. Pass
|
|
114
120
|
`language: "cpp"` to `generate_driver` for a class-based C++ driver
|
|
@@ -141,6 +147,47 @@ explicitly instead of guessing, and the generated skeleton tells the host AI
|
|
|
141
147
|
what to complete. The full, always-current matrix lives in the
|
|
142
148
|
[coverage scorecard](tests/scorecard/scorecard.snap.md).
|
|
143
149
|
|
|
150
|
+
## Maturity & status
|
|
151
|
+
|
|
152
|
+
Driverge is in **closed beta** (`0.1.0-beta.x`, npm `beta` dist-tag). Here is
|
|
153
|
+
exactly what that means — what's proven, what isn't, and how much to trust the
|
|
154
|
+
output.
|
|
155
|
+
|
|
156
|
+
**Proven today (host-level):**
|
|
157
|
+
- The full deterministic test suite is green (440-plus tests) on a clean
|
|
158
|
+
TypeScript build.
|
|
159
|
+
- The **portable** driver is compiled by a real `gcc` gate in CI.
|
|
160
|
+
- The extraction pipeline is regression-tested against **13 real datasheets**,
|
|
161
|
+
and reports its own coverage honestly — **7 fully extracted, 3 partial, 3
|
|
162
|
+
deferred** to the host AI (see the
|
|
163
|
+
[coverage scorecard](tests/scorecard/scorecard.snap.md)).
|
|
164
|
+
|
|
165
|
+
**Not yet proven — this is the beta → v0.1.0 gate:**
|
|
166
|
+
- **On-hardware behavior is not gated.** Only one informal ESP32 bring-up has run
|
|
167
|
+
(MPU-9250, hand-completed), and it surfaced the bus-error and address bugs
|
|
168
|
+
fixed in this release. There is no clean, repeatable hardware pass yet, and
|
|
169
|
+
**STM32 has never run on silicon.**
|
|
170
|
+
- The **native** ESP32/STM32 seams are not yet built by an automated compile gate
|
|
171
|
+
(ESP-IDF / CubeIDE) — only the portable target is.
|
|
172
|
+
- Only one MCP client has been exercised end-to-end.
|
|
173
|
+
|
|
174
|
+
**Per-target maturity:**
|
|
175
|
+
|
|
176
|
+
| Target | Buses with any on-hardware exposure | Maturity |
|
|
177
|
+
|---|---|---|
|
|
178
|
+
| Portable (thin-HAL) | I²C (host-compiled only) | **Beta** — host-tested + gcc-compiled, not on hardware |
|
|
179
|
+
| ESP32 (ESP-IDF) | I²C (one informal bring-up) | **Experimental** — codegen shipped; SPI/UART/CAN never on hardware |
|
|
180
|
+
| STM32 (CubeHAL) | none | **Experimental** — codegen shipped; never on hardware |
|
|
181
|
+
| Arduino · STM32 CAN | — | **Not implemented** |
|
|
182
|
+
|
|
183
|
+
> Treat every generated driver as a **reviewed draft**: check register addresses,
|
|
184
|
+
> the init sequence, and any compensation math against the datasheet before you
|
|
185
|
+
> flash it. Driverge is not safety-certified.
|
|
186
|
+
|
|
187
|
+
**Testing the beta?** [BETA.md](BETA.md) has the identity-register smoke test to
|
|
188
|
+
run and how to send a field report — the MPU-9250 report in
|
|
189
|
+
`raw/DRIVERGE_ISSUES.md` is the template.
|
|
190
|
+
|
|
144
191
|
## Concepts behind Driverge
|
|
145
192
|
|
|
146
193
|
Driverge splits driver-writing into two kinds of work: the **mechanical part**
|
|
@@ -206,6 +253,14 @@ else:
|
|
|
206
253
|
| UART | `hal_uart_write`, `hal_uart_read` |
|
|
207
254
|
| CAN | `hal_can_transfer` (one call = one frame exchange) |
|
|
208
255
|
|
|
256
|
+
The register-access transfer seams (`hal_i2c_*`, `hal_spi_transfer`,
|
|
257
|
+
`hal_can_transfer`) return `int` — **`0` on success, non-zero on a bus error**
|
|
258
|
+
(NACK, timeout) — and `<part>_read_register`/`_write_register` **propagate** that
|
|
259
|
+
status, so a failed transfer surfaces to the caller instead of being silently
|
|
260
|
+
swallowed. (`hal_uart_read` returns the byte count actually read; `hal_delay_ms`
|
|
261
|
+
is `void`.) A native seam (ESP32, STM32) returns its vendor status directly
|
|
262
|
+
(`esp_err_t`/`HAL_OK`-mapped), which is already `0` on success.
|
|
263
|
+
|
|
209
264
|
The driver core is therefore identical across platforms; a native target
|
|
210
265
|
(ESP32, STM32) just pre-fills the seam with the vendor calls.
|
|
211
266
|
`validate_driver` enforces this purity: a driver that calls a vendor peripheral
|
|
@@ -259,6 +314,10 @@ Add Driverge to your MCP client (no build step —
|
|
|
259
314
|
Other clients (Codex, Gemini CLI, …) take the same `command` + `args` pair in
|
|
260
315
|
their own MCP config.
|
|
261
316
|
|
|
317
|
+
> **Beta testers:** pin the beta channel explicitly with `["-y",
|
|
318
|
+
> "driverge-mcp@beta"]` as the `args`. Plain `driverge-mcp` resolves the npm
|
|
319
|
+
> `latest` tag, which deliberately lags the beta during closed beta.
|
|
320
|
+
|
|
262
321
|
**No clone, no global install.** The config above tells your MCP client to
|
|
263
322
|
launch `npx -y driverge-mcp`; npx downloads Driverge from the npm registry on
|
|
264
323
|
first run, caches it, and starts it automatically each time the client does
|
|
@@ -289,6 +348,30 @@ Set it in the MCP config's `env` block, e.g.:
|
|
|
289
348
|
Without `out_dir` the generated files are returned in the tool result only —
|
|
290
349
|
no disk writes, no configuration needed.
|
|
291
350
|
|
|
351
|
+
### Windows & npx notes
|
|
352
|
+
|
|
353
|
+
The config blocks above (writing `.mcp.json` / `claude_desktop_config.json`
|
|
354
|
+
**directly**) are the most reliable way to add Driverge on Windows. A few
|
|
355
|
+
environment-specific snags worth knowing:
|
|
356
|
+
|
|
357
|
+
- **Prefer editing the config file over `claude mcp add … -- npx -y driverge-mcp`.**
|
|
358
|
+
The `-y` after `npx` can be parsed by the `claude` CLI itself
|
|
359
|
+
(`unknown option '-y'`) rather than passed through. Writing the JSON block
|
|
360
|
+
directly sidesteps it. (`-y` still belongs in the `args` array, as shown above —
|
|
361
|
+
it only misbehaves as a bare CLI flag.)
|
|
362
|
+
- **PowerShell 5.1 + `claude mcp add-json`.** Nested double-quotes in the inline
|
|
363
|
+
JSON can get mangled before the CLI sees them (`Invalid configuration: Invalid
|
|
364
|
+
input`). Again, write the `.mcp.json` file directly instead of passing JSON on
|
|
365
|
+
the command line.
|
|
366
|
+
- **Spawning the server yourself?** On Windows, launching `npx.cmd` from Node
|
|
367
|
+
needs `shell: true` (otherwise `spawn EINVAL`) — Node no longer runs `.cmd`
|
|
368
|
+
shims without a shell. MCP clients handle this for you; this only bites custom
|
|
369
|
+
smoke-test scripts.
|
|
370
|
+
- **"Pending approval" in `claude mcp list`.** A project-scope `.mcp.json` may show
|
|
371
|
+
as `⏸ Pending approval` in a separate `claude mcp list` process while the
|
|
372
|
+
`driverge` tools are already callable in your active session — the listing lags
|
|
373
|
+
the running session, it does not mean the server failed to load.
|
|
374
|
+
|
|
292
375
|
### Run from source (development)
|
|
293
376
|
|
|
294
377
|
To contribute, or to run the latest unreleased changes:
|
|
@@ -329,6 +412,15 @@ Give your MCP client a datasheet and ask it to build a driver. The typical flow:
|
|
|
329
412
|
|
|
330
413
|
Reusing the same `ref` with a different `target` re-renders with **no re-parse**.
|
|
331
414
|
|
|
415
|
+
**Completing a `deferred` datasheet.** When `analyze_datasheet` reports
|
|
416
|
+
`extraction: deferred` (the register/command section was detected but not
|
|
417
|
+
auto-extracted — common for split product-spec/register-map documents), the host
|
|
418
|
+
AI reconstructs the map from the `driverge://datasheet/<ref>` resource and
|
|
419
|
+
**persists it back** with `validate_datasheet({ "ref": "…", "json": { … } })` —
|
|
420
|
+
passing **both** `ref` and the completed `json` overwrites the cached datasheet
|
|
421
|
+
under that `ref`. The next `generate_driver({ "ref": "…" })` then renders the real
|
|
422
|
+
registers instead of a TODO stub. This closes the loop without re-analyzing.
|
|
423
|
+
|
|
332
424
|
### Worked example — BME280 → portable driver
|
|
333
425
|
|
|
334
426
|
> "Analyze the datasheet at `C:/ds/bme280.pdf` with driverge, then generate a
|
|
@@ -371,7 +463,7 @@ datasheet prose, and `validate_driver` checks the result.
|
|
|
371
463
|
| Tool | `analyze_datasheet` | PDF → validated JSON, cached under a `ref` |
|
|
372
464
|
| Tool | `generate_driver` | `ref` + `target` → driver skeleton + `fill_in_brief` |
|
|
373
465
|
| Tool | `validate_driver` | static-lint a completed driver against its `ref` |
|
|
374
|
-
| Tool | `validate_datasheet` | re-run the L5 validator over a `ref` or JSON |
|
|
466
|
+
| Tool | `validate_datasheet` | re-run the L5 validator over a `ref` or JSON; passing **both** `ref` + `json` persists the completed datasheet under that `ref` |
|
|
375
467
|
| Tool | `ping` | health check — confirms the server is running |
|
|
376
468
|
| Resource | `driverge://datasheet/<ref>` | full parsed JSON for an analyzed datasheet |
|
|
377
469
|
| Resource | `driverge://schema` | the frozen datasheet JSON-Schema contract |
|
|
@@ -400,7 +492,8 @@ datasheet prose, and `validate_driver` checks the result.
|
|
|
400
492
|
|
|
401
493
|
- **v0.x** — one reference sensor (BME280), portable thin-HAL core, MCP surface,
|
|
402
494
|
multiple clients. ✅
|
|
403
|
-
- **v0.y** — native
|
|
495
|
+
- **v0.y** — native codegen: ESP32 ✅, STM32 ✅ *(on-hardware verification is the
|
|
496
|
+
beta → v0.1.0 gate — see [Maturity & status](#maturity--status))*, Arduino (next);
|
|
404
497
|
multi-manufacturer extraction ✅ (12 vendors tested — see
|
|
405
498
|
[Verified parts](#verified-parts)); multi-bus seam families (I²C, SPI, UART,
|
|
406
499
|
CAN) ✅; C or C++ output ✅. *(current)*
|
package/dist/codegen/esp32.js
CHANGED
|
@@ -66,20 +66,20 @@ function halImplI2c(name, prefix, language) {
|
|
|
66
66
|
` return i2c_master_bus_add_device(bus, &cfg, &s_${name}_dev);`,
|
|
67
67
|
"}",
|
|
68
68
|
"",
|
|
69
|
-
"
|
|
69
|
+
"int hal_i2c_write(uint8_t addr, uint8_t reg, uint8_t *data, uint16_t len) {",
|
|
70
70
|
" uint8_t buf[33];",
|
|
71
71
|
" (void)addr; /* the device handle already encodes the bus address */",
|
|
72
72
|
" if ((size_t)len + 1u > sizeof buf) {",
|
|
73
|
-
" return;",
|
|
73
|
+
" return ESP_ERR_INVALID_SIZE;",
|
|
74
74
|
" }",
|
|
75
75
|
" buf[0] = reg;",
|
|
76
76
|
" memcpy(&buf[1], data, len);",
|
|
77
|
-
` i2c_master_transmit(s_${name}_dev, buf, (size_t)len + 1u, ${prefix}_I2C_TIMEOUT_MS);`,
|
|
77
|
+
` return i2c_master_transmit(s_${name}_dev, buf, (size_t)len + 1u, ${prefix}_I2C_TIMEOUT_MS);`,
|
|
78
78
|
"}",
|
|
79
79
|
"",
|
|
80
|
-
"
|
|
80
|
+
"int hal_i2c_read(uint8_t addr, uint8_t reg, uint8_t *data, uint16_t len) {",
|
|
81
81
|
" (void)addr;",
|
|
82
|
-
` i2c_master_transmit_receive(s_${name}_dev, ®, 1, data, len, ${prefix}_I2C_TIMEOUT_MS);`,
|
|
82
|
+
` return i2c_master_transmit_receive(s_${name}_dev, ®, 1, data, len, ${prefix}_I2C_TIMEOUT_MS);`,
|
|
83
83
|
"}",
|
|
84
84
|
"",
|
|
85
85
|
"void hal_delay_ms(uint32_t ms) {",
|
|
@@ -123,14 +123,14 @@ function halImplSpi(name, prefix, language) {
|
|
|
123
123
|
` return spi_bus_add_device(host, &cfg, &s_${name}_dev);`,
|
|
124
124
|
"}",
|
|
125
125
|
"",
|
|
126
|
-
"
|
|
126
|
+
"int hal_spi_transfer(const uint8_t *tx, uint16_t tx_len, uint8_t *rx, uint16_t rx_len) {",
|
|
127
127
|
" spi_transaction_t t;",
|
|
128
128
|
" memset(&t, 0, sizeof t);",
|
|
129
129
|
" t.length = 8 * tx_len;",
|
|
130
130
|
" t.rxlength = 8 * rx_len;",
|
|
131
131
|
" t.tx_buffer = tx;",
|
|
132
132
|
" t.rx_buffer = rx;",
|
|
133
|
-
` spi_device_polling_transmit(s_${name}_dev, &t);`,
|
|
133
|
+
` return spi_device_polling_transmit(s_${name}_dev, &t);`,
|
|
134
134
|
"}",
|
|
135
135
|
"",
|
|
136
136
|
"void hal_delay_ms(uint32_t ms) {",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esp32.js","sourceRoot":"","sources":["../../src/codegen/esp32.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,kFAAkF;AAClF,sEAAsE;AACtE,iFAAiF;AACjF,gFAAgF;AAChF,4DAA4D;AAC5D,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAChF,iFAAiF;AACjF,4EAA4E;AAC5E,yEAAyE;AACzE,8EAA8E;AAC9E,8EAA8E;AAC9E,6BAA6B;AAG7B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,yEAAyE;AACzE,gEAAgE;AAChE,oEAAoE;AACpE,wEAAwE;AACxE,mEAAmE;AACnE,sEAAsE;AACtE,8EAA8E;AAC9E,6EAA6E;AAC7E,2EAA2E;AAC3E,oBAAoB;AACpB,SAAS,WAAW,CAAC,IAAY,EAAE,QAAyB;IAC1D,OAAO,aAAa,IAAI,IAAI,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAClE,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,QAAyB;IACvD,OAAO,GAAG,IAAI,cAAc,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,MAAc,EAAE,QAAyB;IACzE,MAAM,OAAO,GAAG;QACd,IAAI;QACJ,MAAM,MAAM,0EAA0E;QACtF,IAAI;QACJ,4EAA4E;QAC5E,6EAA6E;QAC7E,4DAA4D,IAAI,eAAe;QAC/E,gFAAgF;QAChF,KAAK;QACL,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC;QAC3B,qBAAqB;QACrB,gCAAgC;QAChC,gCAAgC;QAChC,4BAA4B;QAC5B,EAAE;QACF,WAAW,MAAM,iBAAiB;QAClC,WAAW,MAAM,sBAAsB;QACvC,QAAQ;QACR,EAAE;QACF,oCAAoC,IAAI,OAAO;QAC/C,EAAE;QACF,yBAAyB,MAAM,mDAAmD;QAClF,6EAA6E;QAC7E,aAAa,IAAI,mEAAmE;QACpF,iCAAiC;QACjC,gDAAgD;QAChD,6BAA6B,MAAM,YAAY;QAC/C,uCAAuC;QACvC,QAAQ;QACR,sDAAsD,IAAI,QAAQ;QAClE,GAAG;QACH,EAAE;QACF,
|
|
1
|
+
{"version":3,"file":"esp32.js","sourceRoot":"","sources":["../../src/codegen/esp32.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,21 +34,20 @@ function cppBusSeam(busKind, prefix) {
|
|
|
34
34
|
return {
|
|
35
35
|
member: [" uint8_t i2c_addr_;"],
|
|
36
36
|
initMember: [` i2c_addr_ = ${prefix}_I2C_ADDR;`],
|
|
37
|
-
readBody: [" hal_i2c_read(i2c_addr_, reg, &value, 1);"
|
|
38
|
-
writeBody: [" hal_i2c_write(i2c_addr_, reg, &value, 1);"
|
|
37
|
+
readBody: [" return hal_i2c_read(i2c_addr_, reg, &value, 1);"],
|
|
38
|
+
writeBody: [" return hal_i2c_write(i2c_addr_, reg, &value, 1);"],
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
if (busKind === "SPI") {
|
|
42
42
|
return {
|
|
43
43
|
member: [],
|
|
44
44
|
initMember: [],
|
|
45
|
-
readBody: [" hal_spi_transfer(®, 1, &value, 1);"
|
|
45
|
+
readBody: [" return hal_spi_transfer(®, 1, &value, 1);"],
|
|
46
46
|
writeBody: [
|
|
47
47
|
" uint8_t frame[2];",
|
|
48
48
|
" frame[0] = reg;",
|
|
49
49
|
" frame[1] = value;",
|
|
50
|
-
" hal_spi_transfer(frame, 2, nullptr, 0);",
|
|
51
|
-
" return 0;",
|
|
50
|
+
" return hal_spi_transfer(frame, 2, nullptr, 0);",
|
|
52
51
|
],
|
|
53
52
|
};
|
|
54
53
|
}
|
|
@@ -205,8 +204,9 @@ function commandDriverCpp(json, commands, name, prefix) {
|
|
|
205
204
|
: can
|
|
206
205
|
? BUS_SEAM.CAN.decl
|
|
207
206
|
: [
|
|
208
|
-
"
|
|
209
|
-
"
|
|
207
|
+
"/* Return 0 on success, non-zero on a bus error (e.g. NACK). */",
|
|
208
|
+
"int hal_i2c_write(uint8_t addr, uint8_t reg, uint8_t *data, uint16_t len);",
|
|
209
|
+
"int hal_i2c_read (uint8_t addr, uint8_t reg, uint8_t *data, uint16_t len);",
|
|
210
210
|
]), "void hal_delay_ms (uint32_t ms);", "}", "", `class ${className} {`, "public:", " int init();", " int sendCommand(uint16_t command);", " int readData(uint8_t *buffer, uint16_t len);", ...(crc ? [" uint8_t crc8(const uint8_t *data, uint16_t len);"] : []));
|
|
211
211
|
if (!noAddrBus) {
|
|
212
212
|
hpp.push("", "private:", " uint8_t i2c_addr_;");
|
|
@@ -232,8 +232,7 @@ function commandDriverCpp(json, commands, name, prefix) {
|
|
|
232
232
|
" msb = (uint8_t)(command >> 8);",
|
|
233
233
|
" lsb = (uint8_t)(command & 0xFF);",
|
|
234
234
|
...I2C_COMMAND_FRAME_NOTE,
|
|
235
|
-
" hal_i2c_write(i2c_addr_, msb, &lsb, 1);",
|
|
236
|
-
" return 0;",
|
|
235
|
+
" return hal_i2c_write(i2c_addr_, msb, &lsb, 1);",
|
|
237
236
|
]),
|
|
238
237
|
"}",
|
|
239
238
|
"",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portable-cpp.js","sourceRoot":"","sources":["../../src/codegen/portable-cpp.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,2EAA2E;AAC3E,+EAA+E;AAC/E,8EAA8E;AAC9E,8EAA8E;AAC9E,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,+EAA+E;AAC/E,uEAAuE;AACvE,+EAA+E;AAC/E,gFAAgF;AAChF,EAAE;AACF,sEAAsE;AACtE,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,cAAc;AAEd,OAAO,EAAE,aAAa,EAAiB,MAAM,iBAAiB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EACL,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,UAAU,EAEV,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAW,CAAC;AAE1D;;wBAEwB;AACxB,MAAM,aAAa,GAAsB;IACvC,8EAA8E;IAC9E,oEAAoE;IACpE,6EAA6E;IAC7E,4EAA4E;CAC7E,CAAC;AAsBF,SAAS,UAAU,CAAC,OAAuB,EAAE,MAAc;IACzD,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,OAAO;YACL,MAAM,EAAE,CAAC,wBAAwB,CAAC;YAClC,UAAU,EAAE,CAAC,mBAAmB,MAAM,YAAY,CAAC;YACnD,QAAQ,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"portable-cpp.js","sourceRoot":"","sources":["../../src/codegen/portable-cpp.ts"],"names":[],"mappings":"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"}
|
package/dist/codegen/portable.js
CHANGED
|
@@ -90,28 +90,30 @@ export function commandSetTodoText(json, name, prefix) {
|
|
|
90
90
|
export const BUS_SEAM = {
|
|
91
91
|
I2C: {
|
|
92
92
|
decl: [
|
|
93
|
-
"
|
|
94
|
-
"
|
|
93
|
+
"/* Return 0 on success, non-zero on a bus error (e.g. NACK). */",
|
|
94
|
+
"int hal_i2c_write(uint8_t addr, uint8_t reg, uint8_t *data, uint16_t len);",
|
|
95
|
+
"int hal_i2c_read (uint8_t addr, uint8_t reg, uint8_t *data, uint16_t len);",
|
|
95
96
|
],
|
|
96
97
|
handleField: " uint8_t i2c_addr;",
|
|
97
|
-
readBody: [" hal_i2c_read(dev->i2c_addr, reg, value, 1);"],
|
|
98
|
-
writeBody: [" hal_i2c_write(dev->i2c_addr, reg, &value, 1);"],
|
|
98
|
+
readBody: [" return hal_i2c_read(dev->i2c_addr, reg, value, 1);"],
|
|
99
|
+
writeBody: [" return hal_i2c_write(dev->i2c_addr, reg, &value, 1);"],
|
|
99
100
|
},
|
|
100
101
|
SPI: {
|
|
101
102
|
decl: [
|
|
102
103
|
"/* One call = one CS-framed transaction: CS is asserted, tx_len bytes are",
|
|
103
104
|
" * clocked out, then rx_len bytes are clocked in, then CS is deasserted.",
|
|
104
105
|
" * tx/rx may be NULL when their respective length is 0. CS is handled",
|
|
105
|
-
" * entirely inside hal_spi_transfer — callers never touch it.
|
|
106
|
-
"
|
|
106
|
+
" * entirely inside hal_spi_transfer — callers never touch it. Returns 0 on",
|
|
107
|
+
" * success, non-zero on a bus error. */",
|
|
108
|
+
"int hal_spi_transfer(const uint8_t *tx, uint16_t tx_len, uint8_t *rx, uint16_t rx_len);",
|
|
107
109
|
],
|
|
108
110
|
handleField: " uint8_t _reserved; /* platform CS handled in hal_spi_transfer */",
|
|
109
|
-
readBody: [" hal_spi_transfer(®, 1, value, 1);"],
|
|
111
|
+
readBody: [" return hal_spi_transfer(®, 1, value, 1);"],
|
|
110
112
|
writeBody: [
|
|
111
113
|
" uint8_t frame[2];",
|
|
112
114
|
" frame[0] = reg;",
|
|
113
115
|
" frame[1] = value;",
|
|
114
|
-
" hal_spi_transfer(frame, 2, NULL, 0);",
|
|
116
|
+
" return hal_spi_transfer(frame, 2, NULL, 0);",
|
|
115
117
|
],
|
|
116
118
|
},
|
|
117
119
|
UART: {
|
|
@@ -256,16 +258,19 @@ function registerDriver(json, registers, name, prefix) {
|
|
|
256
258
|
if (bits.length > 0)
|
|
257
259
|
header.push("", "/* Bit-field mask/shift accessors. */", ...bits);
|
|
258
260
|
header.push("", "/* Thin-HAL seam — implement these for your platform (see thin-hal). */", ...seam.decl, "void hal_delay_ms (uint32_t ms);", "", "/* Driver handle. */", `typedef struct {`, seam.handleField, `} ${type};`, "", "/* Public API. */", `int ${name}_init(${type} *dev);`, `int ${name}_read_register(${type} *dev, uint8_t reg, uint8_t *value);`, `int ${name}_write_register(${type} *dev, uint8_t reg, uint8_t value);`, "", '#ifdef __cplusplus', "}", "#endif", `#endif /* ${guard} */`, "");
|
|
261
|
+
// The I2C/SPI seam bodies now END with `return hal_..._transfer/read/write(...)`,
|
|
262
|
+
// propagating the seam's status (0 = success) to the caller — a NACK/bus error
|
|
263
|
+
// is no longer swallowed (A7). So no trailing `return 0` is appended here.
|
|
259
264
|
const readBody = uart
|
|
260
265
|
? uartFramingBody(["dev", "reg", "value"])
|
|
261
266
|
: can
|
|
262
267
|
? canFramingBody(["dev", "reg", "value"])
|
|
263
|
-
: [" if (dev == NULL || value == NULL) {", " return -1;", " }", ...seam.readBody
|
|
268
|
+
: [" if (dev == NULL || value == NULL) {", " return -1;", " }", ...seam.readBody];
|
|
264
269
|
const writeBody = uart
|
|
265
270
|
? uartFramingBody(["dev", "reg", "value"])
|
|
266
271
|
: can
|
|
267
272
|
? canFramingBody(["dev", "reg", "value"])
|
|
268
|
-
: [" if (dev == NULL) {", " return -1;", " }", ...seam.writeBody
|
|
273
|
+
: [" if (dev == NULL) {", " return -1;", " }", ...seam.writeBody];
|
|
269
274
|
const source = [
|
|
270
275
|
`#include "${name}.h"`,
|
|
271
276
|
"",
|
|
@@ -396,10 +401,7 @@ function commandDriver(json, commands, name, prefix) {
|
|
|
396
401
|
? BUS_SEAM.UART.decl
|
|
397
402
|
: can
|
|
398
403
|
? BUS_SEAM.CAN.decl
|
|
399
|
-
: [
|
|
400
|
-
"void hal_i2c_write(uint8_t addr, uint8_t reg, uint8_t *data, uint16_t len);",
|
|
401
|
-
"void hal_i2c_read (uint8_t addr, uint8_t reg, uint8_t *data, uint16_t len);",
|
|
402
|
-
]), "void hal_delay_ms (uint32_t ms);", "", "/* Driver handle. */", "typedef struct {", uart ? BUS_SEAM.UART.handleField : can ? BUS_SEAM.CAN.handleField : " uint8_t i2c_addr;", `} ${type};`, "", "/* Public API. */", `int ${name}_init(${type} *dev);`, `int ${name}_send_command(${type} *dev, uint16_t command);`, `int ${name}_read_data(${type} *dev, uint8_t *buffer, uint16_t len);`, ...(crc ? [`uint8_t ${name}_crc8(const uint8_t *data, uint16_t len);`] : []), "", '#ifdef __cplusplus', "}", "#endif", `#endif /* ${guard} */`, "");
|
|
404
|
+
: BUS_SEAM.I2C.decl), "void hal_delay_ms (uint32_t ms);", "", "/* Driver handle. */", "typedef struct {", uart ? BUS_SEAM.UART.handleField : can ? BUS_SEAM.CAN.handleField : " uint8_t i2c_addr;", `} ${type};`, "", "/* Public API. */", `int ${name}_init(${type} *dev);`, `int ${name}_send_command(${type} *dev, uint16_t command);`, `int ${name}_read_data(${type} *dev, uint8_t *buffer, uint16_t len);`, ...(crc ? [`uint8_t ${name}_crc8(const uint8_t *data, uint16_t len);`] : []), "", '#ifdef __cplusplus', "}", "#endif", `#endif /* ${guard} */`, "");
|
|
403
405
|
const source = [
|
|
404
406
|
`#include "${name}.h"`,
|
|
405
407
|
"",
|
|
@@ -426,8 +428,7 @@ function commandDriver(json, commands, name, prefix) {
|
|
|
426
428
|
" msb = (uint8_t)(command >> 8);",
|
|
427
429
|
" lsb = (uint8_t)(command & 0xFF);",
|
|
428
430
|
...I2C_COMMAND_FRAME_NOTE,
|
|
429
|
-
" hal_i2c_write(dev->i2c_addr, msb, &lsb, 1);",
|
|
430
|
-
" return 0;",
|
|
431
|
+
" return hal_i2c_write(dev->i2c_addr, msb, &lsb, 1);",
|
|
431
432
|
]),
|
|
432
433
|
"}",
|
|
433
434
|
"",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portable.js","sourceRoot":"","sources":["../../src/codegen/portable.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"portable.js","sourceRoot":"","sources":["../../src/codegen/portable.ts"],"names":[],"mappings":"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"}
|
package/dist/codegen/stm32.js
CHANGED
|
@@ -57,15 +57,17 @@ function halImplI2c(name, prefix, language) {
|
|
|
57
57
|
` s_${name}_hi2c = hi2c;`,
|
|
58
58
|
"}",
|
|
59
59
|
"",
|
|
60
|
-
"
|
|
60
|
+
"int hal_i2c_write(uint8_t addr, uint8_t reg, uint8_t *data, uint16_t len) {",
|
|
61
61
|
" /* CubeHAL takes the 8-bit (left-shifted) device address. */",
|
|
62
|
-
` HAL_I2C_Mem_Write(s_${name}_hi2c, (uint16_t)(addr << 1), reg,`,
|
|
63
|
-
`
|
|
62
|
+
` HAL_StatusTypeDef status = HAL_I2C_Mem_Write(s_${name}_hi2c, (uint16_t)(addr << 1), reg,`,
|
|
63
|
+
` I2C_MEMADD_SIZE_8BIT, data, len, ${prefix}_I2C_TIMEOUT_MS);`,
|
|
64
|
+
" return (status == HAL_OK) ? 0 : -1;",
|
|
64
65
|
"}",
|
|
65
66
|
"",
|
|
66
|
-
"
|
|
67
|
-
` HAL_I2C_Mem_Read(s_${name}_hi2c, (uint16_t)(addr << 1), reg,`,
|
|
68
|
-
`
|
|
67
|
+
"int hal_i2c_read(uint8_t addr, uint8_t reg, uint8_t *data, uint16_t len) {",
|
|
68
|
+
` HAL_StatusTypeDef status = HAL_I2C_Mem_Read(s_${name}_hi2c, (uint16_t)(addr << 1), reg,`,
|
|
69
|
+
` I2C_MEMADD_SIZE_8BIT, data, len, ${prefix}_I2C_TIMEOUT_MS);`,
|
|
70
|
+
" return (status == HAL_OK) ? 0 : -1;",
|
|
69
71
|
"}",
|
|
70
72
|
"",
|
|
71
73
|
"void hal_delay_ms(uint32_t ms) {",
|
|
@@ -106,15 +108,17 @@ function halImplSpi(name, prefix, language) {
|
|
|
106
108
|
` s_${name}_cs_pin = cs_pin;`,
|
|
107
109
|
"}",
|
|
108
110
|
"",
|
|
109
|
-
"
|
|
111
|
+
"int hal_spi_transfer(const uint8_t *tx, uint16_t tx_len, uint8_t *rx, uint16_t rx_len) {",
|
|
112
|
+
" HAL_StatusTypeDef status = HAL_OK;",
|
|
110
113
|
` HAL_GPIO_WritePin(s_${name}_cs_port, s_${name}_cs_pin, GPIO_PIN_RESET);`,
|
|
111
114
|
" if (tx_len > 0) {",
|
|
112
|
-
` HAL_SPI_Transmit(s_${name}_hspi, (uint8_t *)tx, tx_len, ${prefix}_SPI_TIMEOUT_MS);`,
|
|
115
|
+
` status = HAL_SPI_Transmit(s_${name}_hspi, (uint8_t *)tx, tx_len, ${prefix}_SPI_TIMEOUT_MS);`,
|
|
113
116
|
" }",
|
|
114
|
-
" if (rx_len > 0) {",
|
|
115
|
-
` HAL_SPI_Receive(s_${name}_hspi, rx, rx_len, ${prefix}_SPI_TIMEOUT_MS);`,
|
|
117
|
+
" if (status == HAL_OK && rx_len > 0) {",
|
|
118
|
+
` status = HAL_SPI_Receive(s_${name}_hspi, rx, rx_len, ${prefix}_SPI_TIMEOUT_MS);`,
|
|
116
119
|
" }",
|
|
117
120
|
` HAL_GPIO_WritePin(s_${name}_cs_port, s_${name}_cs_pin, GPIO_PIN_SET);`,
|
|
121
|
+
" return (status == HAL_OK) ? 0 : -1;",
|
|
118
122
|
"}",
|
|
119
123
|
"",
|
|
120
124
|
"void hal_delay_ms(uint32_t ms) {",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stm32.js","sourceRoot":"","sources":["../../src/codegen/stm32.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,kFAAkF;AAClF,iFAAiF;AACjF,kFAAkF;AAClF,8EAA8E;AAC9E,4EAA4E;AAC5E,wBAAwB;AACxB,EAAE;AACF,+EAA+E;AAC/E,0EAA0E;AAC1E,gEAAgE;AAChE,+EAA+E;AAC/E,6DAA6D;AAC7D,+DAA+D;AAG/D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,yEAAyE;AACzE,gEAAgE;AAChE,oEAAoE;AACpE,wEAAwE;AACxE,mEAAmE;AACnE,sEAAsE;AACtE,8EAA8E;AAC9E,6EAA6E;AAC7E,2EAA2E;AAC3E,YAAY;AACZ,SAAS,WAAW,CAAC,IAAY,EAAE,QAAyB;IAC1D,OAAO,aAAa,IAAI,IAAI,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAClE,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,QAAyB;IACvD,OAAO,GAAG,IAAI,cAAc,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,MAAc,EAAE,QAAyB;IACzE,MAAM,OAAO,GAAG;QACd,IAAI;QACJ,MAAM,MAAM,+DAA+D;QAC3E,IAAI;QACJ,8EAA8E;QAC9E,iFAAiF;QACjF,gFAAgF;QAChF,2CAA2C,IAAI,6BAA6B;QAC5E,2DAA2D;QAC3D,KAAK;QACL,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC;QAC3B,mBAAmB;QACnB,EAAE;QACF,WAAW,MAAM,iBAAiB;QAClC,WAAW,MAAM,sBAAsB;QACvC,QAAQ;QACR,EAAE;QACF,+BAA+B,IAAI,QAAQ;QAC3C,EAAE;QACF,wEAAwE;QACxE,QAAQ,IAAI,wCAAwC;QACpD,SAAS,IAAI,eAAe;QAC5B,GAAG;QACH,EAAE;QACF,
|
|
1
|
+
{"version":3,"file":"stm32.js","sourceRoot":"","sources":["../../src/codegen/stm32.ts"],"names":[],"mappings":"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"}
|