Matériel (hwproxy) TPA Composants hauts-niveau TpaManager
November 26, 2025 at 2:48 AMTpaManager
Simplifie la gestion du TPA en exposant via une méthode les appels métiers aux TPA, avec abstraction des déconnexions, des timeouts et des conflits.
En cas de conflit, le composant attent le délais recommandé dans le protocole, et refait une demande. Après 3 conflits, la demande est un échec (protocole).
En cas de timeout, le composant réinisialise le TPA (reset usb), et refait une demande.
Chaque méthode retourne une promesse :
- succès : la valeur demandée
- échec : une erreur de type
HardwareManagerFailureavec les raisons de l’échec
interface HardwareManagerFailure {
code: string; // code d'erreur
message: string; // message d'erreur
}
Codes d’erreur communs :
TPA_NOT_AVAILABLE: service TPA indisponible (TPA non branché)HWPROXY_DISCONNECTED: déconnecté du service matériel
Codes d’erreur gérés par le composant
TIMEOUT: timeout de communicationCOLLISION: collision de communication
Types de retour :
interface PrintableResult<T> {
printableRaw: TpaLogMessageFull[]; // informations à imprimer (brute)
result: T; // résultat websocket
api: ApiResult; // résultat api
isSuccess: boolean; // true si l'action est ok
error: string; // message d'erreur
}
ResetUSB
Débranche le TPA et attent qu’il soit rebranché.
public async usbReset(waitDelayMax: number = 1 * 60 * 1000)
Etat
Demande l’état du TPA
public status(metadata?: any): Promise<TpaStatusResult>
interface TpaStatusResult extends PrintableResult<TpaSlaveStatusMessage> {}
Mise à l’heure
Met le TPA à l’heure indiquée
public async setDate(value: Date, metadata?: any): Promise<TpaSetDateResult>
value: date/heure à laquelle mettre le TPA
interface TpaSetDateResult extends PrintableResult<TpaSlaveSetDateMessage> {}
Télécollecte
Lance une télécollecte et renvoie le résultat.
public async telecollecteLaunch(metadata?: any): Promise<TpaTelecollecteLaunchResult>
interface TpaTelecollecteLaunchResult extends PrintableResult<TpaSlaveMaintenanceTelecollecteLaunchMessage> {}
Le ticket de télécollecte est contenu dans la propriété printableRaw (voir examples).
Solvabilité
Fais une demande de solvabilité
public async solvabilite(amount: number, currency: string, metadata?: any): Promise<TpaSolvabiliteResult>
interface TpaSolvabiliteResult extends PrintableResult<TpaSlaveSolvabiliteMessage> {}
Un reçu client peut être disponible dans la propriété printableRaw (voir examples) si la transaction a été annulée.
Enregistrement de transaction
Enregistre la transaction (après demande de solvabilité)
public async savetransaction(amount: number, currency: string, metadata?: any): Promise<TpaSaveTransactionResult>
interface TpaSaveTransactionResult extends PrintableResult<TpaSlaveSaveTransactionMessage> {}
Le reçu client est disponible dans la propriété printableRaw (voir examples).
Annulation
Annule une demande de solvabitilé ou transaction en cours.
public cancel(): Promise<ApiResult>
Etat de télécollecte
Demande l’état de la dernière télécollecte
public async telecollecteStatus(metadata?: any): Promise<TpaTelecollecteStatusResult>
interface TpaTelecollecteStatusResult extends PrintableResult<TpaSlaveMaintenanceTelecollecteStatusMessage> {}
Etat de téléparamétrage
Demande l’état du dernier téléparamétrage
public async teleparametrageStatus(metadata?: any): Promise<TpaTeleparametrageStatusResult>
interface TpaTeleparametrageStatusResult extends PrintableResult<TpaSlaveMaintenanceTeleparametrageStatusMessage> {}
Applications
Information sur les applications du TPA
public async applications(metadata?: any): Promise<TpaApplicationsResult>
interface TpaApplicationsResult extends PrintableResult<TpaSlaveMaintenanceAppsMessage> {}