fix(hal): simplify Puloon error handling to match lamassu-machine
Align dispenser error handling with lamassu-machine's proven approach: close port on error, set error name, let caller decide when to re-init. Also configure live ISO for Douro/GTQ with serialport native modules. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
10293d0ab5
commit
94a9f03e2e
2 changed files with 45 additions and 17 deletions
|
|
@ -47,23 +47,15 @@ export class PuloonDispenser implements BillDispenser {
|
|||
}
|
||||
|
||||
async dispense(notes: number[]): Promise<{ value: DispenseResult[]; error?: Error }> {
|
||||
try {
|
||||
const { bills, error } = await this.device.dispense(notes)
|
||||
const { bills, error } = await this.device.dispense(notes)
|
||||
|
||||
if (error) {
|
||||
this.close()
|
||||
;(error as Error & { name: string; statusCode: number }).name = 'PuloonDispenseError'
|
||||
;(error as Error & { statusCode: number }).statusCode = 570
|
||||
}
|
||||
|
||||
return { value: bills, error }
|
||||
} catch (err) {
|
||||
if (error) {
|
||||
this.close()
|
||||
const error = err as Error
|
||||
;(error as Error & { name: string; statusCode: number }).name = 'PuloonDispenseError'
|
||||
;(error as Error & { statusCode: number }).statusCode = 570
|
||||
return { value: [], error }
|
||||
error.name = 'PuloonDispenseError'
|
||||
console.log('PULOON | dispense error', error)
|
||||
}
|
||||
|
||||
return { value: bills, error }
|
||||
}
|
||||
|
||||
close(): void {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue