@typecad/framework-zephyr 1.0.0-alpha.16 → 1.0.0-alpha.19

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.
Files changed (210) hide show
  1. package/LICENSE +202 -21
  2. package/README.md +49 -87
  3. package/dist/as-built.d.ts +2 -2
  4. package/dist/as-built.js +2 -2
  5. package/dist/audit.d.ts +111 -0
  6. package/dist/audit.js +416 -0
  7. package/dist/boardgen.d.ts +1 -9
  8. package/dist/boardgen.js +288 -47
  9. package/dist/chips/resolve.js +20 -0
  10. package/dist/chips/types.d.ts +22 -1
  11. package/dist/debug-codegen.js +1 -1
  12. package/dist/display/bindings.d.ts +55 -0
  13. package/dist/display/bindings.js +316 -0
  14. package/dist/display/gfx.d.ts +2 -3
  15. package/dist/display/gfx.js +166 -154
  16. package/dist/display/index.js +20 -1
  17. package/dist/display/mipi-dbi-host.d.ts +9 -0
  18. package/dist/display/mipi-dbi-host.js +174 -0
  19. package/dist/display/profiles.d.ts +109 -4
  20. package/dist/display/profiles.js +270 -7
  21. package/dist/display/touch-adapter.js +119 -49
  22. package/dist/display/ui-adapter-eink.d.ts +2 -0
  23. package/dist/display/ui-adapter-eink.js +4 -0
  24. package/dist/display/ui-adapter-gray.d.ts +8 -0
  25. package/dist/display/ui-adapter-gray.js +170 -0
  26. package/dist/display/ui-adapter-mono.d.ts +13 -0
  27. package/dist/display/ui-adapter-mono.js +230 -0
  28. package/dist/display/ui-adapter-native.d.ts +10 -0
  29. package/dist/display/ui-adapter-native.js +295 -0
  30. package/dist/display/ui-adapter-shared.d.ts +11 -0
  31. package/dist/display/ui-adapter-shared.js +122 -0
  32. package/dist/display/ui-adapter.js +510 -558
  33. package/dist/doctor.js +4 -4
  34. package/dist/dt-config/custom-board.js +2 -2
  35. package/dist/dt-config/kconfig.d.ts +62 -1
  36. package/dist/dt-config/kconfig.js +141 -38
  37. package/dist/dt-config/overlay.d.ts +15 -2
  38. package/dist/dt-config/overlay.js +433 -18
  39. package/dist/framework.manifest.d.ts +10 -4
  40. package/dist/framework.manifest.js +133 -17
  41. package/dist/index.d.ts +2 -0
  42. package/dist/index.js +14 -6
  43. package/dist/licenses.d.ts +2 -2
  44. package/dist/licenses.js +13 -92
  45. package/dist/lowering/can.d.ts +25 -0
  46. package/dist/lowering/can.js +97 -0
  47. package/dist/lowering/clock.d.ts +17 -0
  48. package/dist/lowering/clock.js +58 -0
  49. package/dist/lowering/fs.js +1 -1
  50. package/dist/lowering/gpio.js +0 -32
  51. package/dist/lowering/hid.d.ts +27 -0
  52. package/dist/lowering/hid.js +244 -0
  53. package/dist/lowering/http.js +264 -32
  54. package/dist/lowering/i2c.d.ts +8 -0
  55. package/dist/lowering/i2c.js +137 -5
  56. package/dist/lowering/i2s.d.ts +27 -0
  57. package/dist/lowering/i2s.js +98 -0
  58. package/dist/lowering/index.d.ts +9 -1
  59. package/dist/lowering/index.js +25 -1
  60. package/dist/lowering/interrupts.js +6 -0
  61. package/dist/lowering/matrix.d.ts +15 -0
  62. package/dist/lowering/matrix.js +63 -0
  63. package/dist/lowering/mqtt.js +110 -8
  64. package/dist/lowering/power.d.ts +3 -2
  65. package/dist/lowering/power.js +20 -45
  66. package/dist/lowering/pwm.js +25 -0
  67. package/dist/lowering/sensor.d.ts +2 -2
  68. package/dist/lowering/sensor.js +8 -4
  69. package/dist/lowering/strip.d.ts +16 -0
  70. package/dist/lowering/strip.js +70 -0
  71. package/dist/lowering/thread.js +5 -1
  72. package/dist/lowering/trace.d.ts +44 -0
  73. package/dist/lowering/trace.js +239 -0
  74. package/dist/lowering/uart.js +6 -1
  75. package/dist/lowering/usb.d.ts +3 -1
  76. package/dist/lowering/usb.js +16 -13
  77. package/dist/lowering/wdt.js +2 -29
  78. package/dist/sbom.d.ts +181 -0
  79. package/dist/sbom.js +901 -0
  80. package/dist/sdk/board-catalog-sync.d.ts +1 -3
  81. package/dist/sdk/board-catalog-sync.js +4 -10
  82. package/dist/strategy.d.ts +82 -46
  83. package/dist/strategy.js +639 -182
  84. package/dist/tmp-probe.d.ts +2 -0
  85. package/dist/tmp-probe.js +9 -0
  86. package/dist/toolchain/debug-config.d.ts +50 -90
  87. package/dist/toolchain/debug-config.js +239 -510
  88. package/dist/toolchain/env-check.d.ts +1 -3
  89. package/dist/toolchain/env-check.js +2 -7
  90. package/dist/toolchain/index.d.ts +28 -3
  91. package/dist/toolchain/index.js +498 -62
  92. package/dist/toolchain/runners.d.ts +16 -0
  93. package/dist/toolchain/runners.js +75 -0
  94. package/dist/toolchain/scaffold.d.ts +5 -2
  95. package/dist/toolchain/scaffold.js +79 -15
  96. package/dist/toolchain/west-discover.d.ts +6 -0
  97. package/dist/toolchain/west-discover.js +36 -13
  98. package/dist/toolchain/west-spawn.js +8 -2
  99. package/dist/west-inventory.d.ts +25 -0
  100. package/dist/west-inventory.js +97 -0
  101. package/installer/README.md +328 -328
  102. package/installer/install.sh +2 -2
  103. package/installer/templates/project/.typecad/activate-zephyr.ps1 +1 -1
  104. package/installer/templates/project/.typecad/activate-zephyr.sh +1 -1
  105. package/installer/templates/project/.vscode/settings.json +1 -1
  106. package/installer/templates/project/README.md +2 -2
  107. package/package.json +5 -5
  108. package/src/as-built.ts +206 -206
  109. package/src/audit.ts +529 -0
  110. package/src/boardgen.ts +265 -50
  111. package/src/chips/resolve.ts +21 -0
  112. package/src/chips/types.ts +10 -1
  113. package/src/display/bindings.ts +347 -0
  114. package/src/display/gfx.ts +318 -306
  115. package/src/display/index.ts +87 -70
  116. package/src/display/mipi-dbi-host.ts +183 -0
  117. package/src/display/profiles.ts +458 -139
  118. package/src/display/touch-adapter.ts +119 -49
  119. package/src/display/ui-adapter-eink.ts +13 -0
  120. package/src/display/ui-adapter-gray.ts +178 -0
  121. package/src/display/ui-adapter-mono.ts +238 -0
  122. package/src/display/ui-adapter-native.ts +304 -0
  123. package/src/display/ui-adapter-shared.ts +125 -0
  124. package/src/display/ui-adapter.ts +732 -781
  125. package/src/doctor.ts +4 -4
  126. package/src/dt-config/custom-board.ts +2 -2
  127. package/src/dt-config/kconfig.ts +647 -505
  128. package/src/dt-config/overlay.ts +1475 -1058
  129. package/src/framework.manifest.ts +659 -535
  130. package/src/index.ts +16 -6
  131. package/src/licenses.ts +346 -425
  132. package/src/lowering/can.ts +140 -0
  133. package/src/lowering/clock.ts +91 -0
  134. package/src/lowering/fs.ts +135 -135
  135. package/src/lowering/gpio.ts +0 -33
  136. package/src/lowering/hid.ts +261 -0
  137. package/src/lowering/http.ts +264 -32
  138. package/src/lowering/i2c.ts +142 -5
  139. package/src/lowering/i2s.ts +143 -0
  140. package/src/lowering/index.ts +18 -1
  141. package/src/lowering/interrupts.ts +6 -0
  142. package/src/lowering/matrix.ts +70 -0
  143. package/src/lowering/mqtt.ts +109 -8
  144. package/src/lowering/power.ts +41 -0
  145. package/src/lowering/pwm.ts +192 -167
  146. package/src/lowering/sensor.ts +159 -155
  147. package/src/lowering/strip.ts +81 -0
  148. package/src/lowering/thread.ts +5 -1
  149. package/src/lowering/trace.ts +270 -0
  150. package/src/lowering/uart.ts +6 -1
  151. package/src/lowering/usb.ts +16 -13
  152. package/src/lowering/wdt.ts +2 -25
  153. package/src/sbom.ts +1117 -0
  154. package/src/sdk/board-catalog-sync.ts +4 -25
  155. package/src/strategy.ts +2680 -2309
  156. package/src/toolchain/debug-config.ts +262 -522
  157. package/src/toolchain/env-check.ts +279 -285
  158. package/src/toolchain/index.ts +1792 -1359
  159. package/src/toolchain/runners.ts +80 -0
  160. package/src/toolchain/scaffold.ts +355 -296
  161. package/src/toolchain/west-discover.ts +35 -13
  162. package/src/toolchain/west-spawn.ts +174 -168
  163. package/src/west-inventory.ts +102 -0
  164. package/dist/async/timer-polyfill.d.ts +0 -10
  165. package/dist/async/timer-polyfill.js +0 -95
  166. package/dist/chips/board-overrides.d.ts +0 -7
  167. package/dist/chips/board-overrides.js +0 -11
  168. package/dist/chips/esp32.d.ts +0 -2
  169. package/dist/chips/esp32.js +0 -71
  170. package/dist/chips/esp32s3.d.ts +0 -2
  171. package/dist/chips/esp32s3.js +0 -103
  172. package/dist/chips/soc/.d.ts +0 -2
  173. package/dist/chips/soc/.js +0 -129
  174. package/dist/chips/soc/esp32.d.ts +0 -2
  175. package/dist/chips/soc/esp32.js +0 -120
  176. package/dist/chips/soc/esp32c3.d.ts +0 -2
  177. package/dist/chips/soc/esp32c3.js +0 -90
  178. package/dist/chips/soc/esp32c6.d.ts +0 -2
  179. package/dist/chips/soc/esp32c6.js +0 -109
  180. package/dist/chips/soc/esp32s3.d.ts +0 -2
  181. package/dist/chips/soc/esp32s3.js +0 -189
  182. package/dist/chips/soc/index.d.ts +0 -2
  183. package/dist/chips/soc/index.js +0 -23
  184. package/dist/chips/soc/nrf52840.d.ts +0 -2
  185. package/dist/chips/soc/nrf52840.js +0 -130
  186. package/dist/chips/soc/rp2040.d.ts +0 -2
  187. package/dist/chips/soc/rp2040.js +0 -141
  188. package/dist/chips/soc/rp2350a.d.ts +0 -2
  189. package/dist/chips/soc/rp2350a.js +0 -145
  190. package/dist/chips/soc/samd21g18a.d.ts +0 -2
  191. package/dist/chips/soc/samd21g18a.js +0 -143
  192. package/dist/chips/soc/stm32f411xe.d.ts +0 -2
  193. package/dist/chips/soc/stm32f411xe.js +0 -251
  194. package/dist/chips/xiao-ble.d.ts +0 -2
  195. package/dist/chips/xiao-ble.js +0 -100
  196. package/dist/lowering/pulse.d.ts +0 -7
  197. package/dist/lowering/pulse.js +0 -51
  198. package/dist/lowering/tone.d.ts +0 -10
  199. package/dist/lowering/tone.js +0 -63
  200. package/dist/lowering/worker-backing.d.ts +0 -14
  201. package/dist/lowering/worker-backing.js +0 -79
  202. package/dist/lowering/worker.d.ts +0 -6
  203. package/dist/lowering/worker.js +0 -14
  204. package/dist/sdk/board-data.generated.d.ts +0 -2
  205. package/dist/sdk/board-data.generated.js +0 -4
  206. package/dist/sdk/catalog-walker.d.ts +0 -90
  207. package/dist/sdk/catalog-walker.js +0 -682
  208. package/dist/sdk/dts-reader.d.ts +0 -83
  209. package/dist/sdk/dts-reader.js +0 -596
  210. package/src/debug-codegen.ts +0 -207
@@ -2,7 +2,7 @@ import * as catalog from '@typecad/cuttlefish/board-catalog';
2
2
  export type BoardCatalogSyncReport = catalog.BoardCatalogSyncReport;
3
3
  export type BoardCatalogEnsureResult = catalog.BoardCatalogEnsureResult;
4
4
  export type BoardCatalogOverlay = catalog.BoardCatalogOverlay;
5
- export declare const GENERATOR_REV: number, isZephyrBase: typeof catalog.isZephyrBase, locateZephyrBaseCheap: typeof catalog.locateZephyrBaseCheap, overlayPathFor: typeof catalog.overlayPathFor, readBoardCatalogOverlayFile: typeof catalog.readBoardCatalogOverlayFile, loadBoardCatalogOverlay: typeof catalog.loadBoardCatalogOverlay, resetBoardCatalogOverlayCache: typeof catalog.resetBoardCatalogOverlayCache, isOverlayStale: typeof catalog.isOverlayStale, diffBoardCatalogs: typeof catalog.diffBoardCatalogs, boardRecordFingerprint: typeof catalog.boardRecordFingerprint, findBoardInCatalog: typeof catalog.findBoardInCatalog, activeBoardCatalog: typeof catalog.activeBoardCatalog, resetActiveBoardCatalog: typeof catalog.resetActiveBoardCatalog;
5
+ export declare const loadBoardCatalogOverlay: typeof catalog.loadBoardCatalogOverlay, resetBoardCatalogOverlayCache: typeof catalog.resetBoardCatalogOverlayCache;
6
6
  /** Sync with the full west discovery cascade behind it (the CLI's path):
7
7
  * falls back through spawn-based discovery when the cheap fs probes find
8
8
  * nothing. */
@@ -12,5 +12,3 @@ export declare function syncBoardCatalog(opts?: {
12
12
  /** The build-path pre-step: refresh a stale overlay before a regen
13
13
  * (fs-only discovery — no spawns during builds). */
14
14
  export declare function ensureFreshBoardCatalog(): catalog.BoardCatalogEnsureResult;
15
- /** Locate a Zephyr tree by any means (spawn cascade included). */
16
- export declare function locateZephyrBaseFull(): string | undefined;
@@ -5,13 +5,14 @@
5
5
  // @typecad/cuttlefish/board-catalog — the create flow needs it before any
6
6
  // framework is installed. This module adds the one thing the framework owns
7
7
  // — the full spawn-based west discovery cascade for an explicit
8
- // `cuttlefish board sync` — and re-exports the store for the strategy's
9
- // import surface.
8
+ // `typecad-hal board sync`. Consumers pull the rest of the store's surface
9
+ // from @typecad/cuttlefish/board-catalog directly.
10
10
  // ----------------------------------------------------------------------------
11
11
  import path from 'node:path';
12
12
  import * as catalog from '@typecad/cuttlefish/board-catalog';
13
13
  import { discoverWest } from '../toolchain/west-discover.js';
14
- export const { GENERATOR_REV, isZephyrBase, locateZephyrBaseCheap, overlayPathFor, readBoardCatalogOverlayFile, loadBoardCatalogOverlay, resetBoardCatalogOverlayCache, isOverlayStale, diffBoardCatalogs, boardRecordFingerprint, findBoardInCatalog, activeBoardCatalog, resetActiveBoardCatalog, } = catalog;
14
+ // Re-exported for the package index's board-sync surface.
15
+ export const { loadBoardCatalogOverlay, resetBoardCatalogOverlayCache } = catalog;
15
16
  /** Sync with the full west discovery cascade behind it (the CLI's path):
16
17
  * falls back through spawn-based discovery when the cheap fs probes find
17
18
  * nothing. */
@@ -32,10 +33,3 @@ export function syncBoardCatalog(opts = {}) {
32
33
  export function ensureFreshBoardCatalog() {
33
34
  return catalog.ensureFreshBoardCatalog();
34
35
  }
35
- /** Locate a Zephyr tree by any means (spawn cascade included). */
36
- export function locateZephyrBaseFull() {
37
- const install = discoverWest();
38
- return install?.zephyrBase && catalog.isZephyrBase(install.zephyrBase)
39
- ? path.resolve(install.zephyrBase)
40
- : undefined;
41
- }
@@ -15,6 +15,55 @@ export declare function collectSensors(program: ProgramIR | undefined): Map<stri
15
15
  spiHz: number | string;
16
16
  spiMode: number | string;
17
17
  alertPin: number | string;
18
+ resolution: number | string;
19
+ }> | undefined;
20
+ /**
21
+ * The I2S construction facts the program's ops carry (the shim's slab and
22
+ * init helpers size from these) — first-seen wins, keyed by instance.
23
+ */
24
+ export declare function collectI2s(program: ProgramIR | undefined): Map<number, {
25
+ hz: number;
26
+ channels: number;
27
+ bits: number;
28
+ blockFrames: number;
29
+ }> | undefined;
30
+ /**
31
+ * Which can / i2s / clock verbs the program's ops actually use — the init
32
+ * blocks emit only the state those verbs reference (Zephyr's -Werror turns
33
+ * an unreferenced static function/variable into a build failure: a
34
+ * send-only CAN program must not carry the rx trampoline, a now()-only
35
+ * Clock program must not carry the set() conversion helper). Returns
36
+ * undefined when there is no program to scan (probe flows) — callers then
37
+ * fall back to emitting every controller with the full state set.
38
+ */
39
+ export declare function collectVerbUsage(program: ProgramIR | undefined): {
40
+ can: Map<number, {
41
+ begin: boolean;
42
+ send: boolean;
43
+ onReceive: boolean;
44
+ }>;
45
+ i2s: Map<number, {
46
+ write: boolean;
47
+ read: boolean;
48
+ readAt: boolean;
49
+ }>;
50
+ clock: {
51
+ set: boolean;
52
+ now: boolean;
53
+ };
54
+ } | undefined;
55
+ /**
56
+ * Collect the distinct I2C responders the program's ops reference
57
+ * (i2c.resp_*), keyed `${bus}|${address}` — one target-mode address per
58
+ * constructed responder. Mirrors collectSpiTargets: the construction facts
59
+ * (rx/tx sizes) ride every op, so the first seen wins and the state block
60
+ * cannot drift from the call sites.
61
+ */
62
+ export declare function collectI2cResponders(program: ProgramIR | undefined): Map<string, {
63
+ bus: string;
64
+ address: number;
65
+ rx: number;
66
+ tx: number;
18
67
  }> | undefined;
19
68
  /**
20
69
  * Collect the distinct thin SPI targets the program's ops reference
@@ -88,15 +137,6 @@ export declare class ZephyrStrategy implements PlatformStrategy {
88
137
  boardJson: string;
89
138
  };
90
139
  private resolveChip;
91
- /**
92
- * Resolve the debug mode for the active target from the platform context.
93
- * Mirrors resolveChip's target extraction so shimLines/forcedIncludes can
94
- * gate the printf halt shim + console UART include to printf builds only
95
- * (gdb builds use VS Code native breakpoints + #line markers, so the
96
- * __tc_debug_wait_for_continue shim and its <zephyr/drivers/uart.h> include
97
- * are dead code there).
98
- */
99
- private resolveDebugMode;
100
140
  forcedIncludes(_program?: ProgramIR, ctx?: PlatformContext): string[];
101
141
  symbolAliases(): Record<string, string>;
102
142
  /**
@@ -110,15 +150,27 @@ export declare class ZephyrStrategy implements PlatformStrategy {
110
150
  */
111
151
  private programUsesAsyncRuntime;
112
152
  /** Pins referenced by gpio.* hal-ops in the program IR. lowerGpio routes a
113
- * pin to its devicetree spec by pin NUMBER, so the structured hal-op pins
114
- * are the authoritative signal for which __tc_dt_* specs are needed —
115
- * regardless of when the final call text is rendered. */
153
+ * pin to its devicetree spec by pin NUMBER, so the structured hal-op pins
154
+ * are the authoritative signal for which __tc_dt_* specs are needed —
155
+ * regardless of when the final call text is rendered.
156
+ *
157
+ * A gpio op interpolated into another HAL call's template literal
158
+ * (`USB0.writeLine(\`led: ${led.get()}\`)`) never becomes an IR node —
159
+ * resolveHALExprToText lowers it to C++ text while building the IR and bakes
160
+ * it into an __EMIT__ snprintf prelude, so the walk cannot see its pin. The
161
+ * spec NAME it references is still in that text; collectRawMatches finds it
162
+ * there, or the spec goes undeclared and the build fails on `__tc_dt_led0
163
+ * was not declared in this scope`. */
116
164
  private collectGpioPinUsage;
117
165
  /** Run `re` (global) against every raw string in the IR — raw expression
118
- * values plus raw hal-op codes — returning capture group 1 of each match
119
- * (the full match when the regex has no group). This is how references the
120
- * text scanners must see but that never appear as IR call nodes (e.g. a
121
- * rawCpp() escape hatch naming `__tc_dt_sw0` directly) are discovered. */
166
+ * values plus raw hal-op codes — returning capture group 1 of each match
167
+ * (the full match when the regex has no group). This is how references the
168
+ * text scanners must see but that never appear as IR call nodes are
169
+ * discovered: a rawCpp() escape hatch naming `__tc_dt_sw0` directly, and —
170
+ * the reason every string LEAF is scanned, not just raw nodes — the
171
+ * pre-lowered C++ text of a HAL call inlined into another HAL call's
172
+ * template literal, which the IR builder bakes into plain `string` payloads
173
+ * (__EMIT__ snprintf preludes, op data fields) rather than raw nodes. */
122
174
  private collectRawMatches;
123
175
  /** Whether the wiring-compat GPIO read surface (__tc_gpio_read definition,
124
176
  * __tc_gpio_dev dispatcher, and the wiring_compat polyfill's digitalRead /
@@ -210,14 +262,14 @@ export declare class ZephyrStrategy implements PlatformStrategy {
210
262
  } | undefined;
211
263
  /**
212
264
  * Regenerate the board catalog overlay from the user's own Zephyr tree —
213
- * `cuttlefish board sync`. After a `west update`, this is how new/changed/
265
+ * `typecad-hal board sync`. After a `west update`, this is how new/changed/
214
266
  * removed boards reach projects without a cuttlefish release. See
215
267
  * src/sdk/board-catalog-sync.ts.
216
268
  */
217
269
  syncBoardCatalog(zephyrBase?: string): BoardCatalogSyncReport;
218
270
  /**
219
271
  * Refresh the overlay only when it is stale (provenance no longer matches
220
- * the tree) — the pre-step `cuttlefish board regen` runs so a regen after
272
+ * the tree) — the pre-step `typecad-hal board regen` runs so a regen after
221
273
  * `west update` picks up the tree's boards automatically. Tree walk only
222
274
  * happens when there is actual refreshing to do.
223
275
  */
@@ -241,6 +293,13 @@ export declare class ZephyrStrategy implements PlatformStrategy {
241
293
  preIteration: string;
242
294
  postIteration: string;
243
295
  } | null;
296
+ /**
297
+ * Per-frame wall-time feed for the trace heartbeat's UI stats. The helper
298
+ * is emitted unconditionally for UI programs (compiles to a no-op unless
299
+ * zephyr.trace defined CUTTLEFISH_TRACE_UI), so this call is safe with
300
+ * tracing on or off.
301
+ */
302
+ uiFrameTimingLines(deltaMsExpr: string): string[] | null;
244
303
  shouldSkipTypeAlias(): boolean;
245
304
  emitDiagnostics(): Diagnostic[];
246
305
  currentTimeMillis(): string;
@@ -262,7 +321,7 @@ export declare class ZephyrStrategy implements PlatformStrategy {
262
321
  readDigitalPin(pin: string): string;
263
322
  readAnalogPin(pin: string): string;
264
323
  writeDigitalPin(pin: string, val: string): string;
265
- setPinMode(_pin: string, _mode: string): string;
324
+ setPinMode(pin: string, _mode: string): string;
266
325
  delayMs(ms: string): string;
267
326
  delayMicroseconds(us: string): string;
268
327
  halCallNames(): ReadonlySet<string>;
@@ -280,32 +339,9 @@ export declare class ZephyrStrategy implements PlatformStrategy {
280
339
  providesTouchAdapter(): boolean;
281
340
  resolveTouchAdapter(touch: TouchProfile): TouchAdapterCodegen | undefined;
282
341
  getProfileRegistry(): Map<string, DisplayProfile>;
283
- colorFormat(): 'rgb565' | 'rgb666' | 'rgb888' | 'mono';
342
+ colorFormat(): 'rgb565' | 'rgb666' | 'rgb888' | 'mono' | 'gray8';
343
+ colorFormatForDriver(driver: string): 'rgb565' | 'rgb666' | 'rgb888' | 'mono' | 'gray8' | undefined;
344
+ displayClassForDriver(driver: string): 'eink' | 'oled' | undefined;
284
345
  graphicsCapacity(): GraphicsCapacity;
285
- debugMode(target?: string): 'gdb' | 'printf';
286
- generateDebugInitCode(): string[];
287
- generateDebugBreakpointCode(params: {
288
- fileName: string;
289
- lineNum: number;
290
- originalLine: string;
291
- variables: Array<{
292
- name: string;
293
- isFunction?: boolean;
294
- cppType?: 'bool' | 'int' | 'long' | 'float' | 'string' | 'unknown';
295
- }>;
296
- normalizedCondition?: string;
297
- breakpointId?: number;
298
- }): string[];
299
- generateDebugLogpointCode(params: {
300
- fileName: string;
301
- lineNum: number;
302
- parts: Array<{
303
- type: 'text' | 'variable';
304
- value: string;
305
- }>;
306
- variables: Array<{
307
- name: string;
308
- isFunction?: boolean;
309
- }>;
310
- }): string[];
346
+ debugMode(target?: string): 'gdb' | 'none';
311
347
  }