TpaManager

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 HardwareManagerFailure avec 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 communication
  • COLLISION: 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> {}