diff --git a/apps/machine/electron/hal-service.ts b/apps/machine/electron/hal-service.ts index e5b2df8..f13bfdc 100644 --- a/apps/machine/electron/hal-service.ts +++ b/apps/machine/electron/hal-service.ts @@ -70,10 +70,11 @@ export async function initializeHal(config: HalConfig): Promise { }) // Initialize dispenser - await dispenser.init({ + const dispenserInitData = { fiatCode: valConfig.fiatCode, cassettes: dispConfig.cassettes, - }) + } + await dispenser.init(dispenserInitData) console.log('[HAL] Dispenser initialized') // Start validator @@ -148,6 +149,13 @@ export async function initializeHal(config: HalConfig): Promise { dispenseCash: async (amounts): Promise => { console.log('[HAL] Dispensing:', amounts) + // Re-initialize dispenser if it was closed after a previous error + if (!dispenser.initialized) { + console.log('[HAL] Dispenser not initialized, re-initializing...') + await dispenser.init(dispenserInitData) + console.log('[HAL] Dispenser re-initialized') + } + const notes: number[] = new Array(cassetteDenominations.length).fill(0) for (const { denomination, count } of amounts) { const idx = cassetteDenominations.indexOf(denomination) diff --git a/apps/machine/src/services/hal.ts b/apps/machine/src/services/hal.ts index b9041d3..d89339b 100644 --- a/apps/machine/src/services/hal.ts +++ b/apps/machine/src/services/hal.ts @@ -93,10 +93,11 @@ export async function initializeHalServices(config: HalConfig): Promise { console.log('[HAL] Dispensing:', amounts) + // Re-initialize dispenser if it was closed after a previous error + if (!dispenser.initialized) { + console.log('[HAL] Dispenser not initialized, re-initializing...') + await dispenser.init(dispenserInitData) + console.log('[HAL] Dispenser re-initialized') + } + // Translate { denomination, count }[] to number[] by cassette position const notes: number[] = new Array(cassetteDenominations.length).fill(0) for (const { denomination, count } of amounts) {