Compare commits

..

9 Commits

Author SHA1 Message Date
4e3387cef9
feat: implement a full SSV_LireConfig output parsing, using deku for a declarative bytes parsing
Co-authored-by: theo <t.lettermann@criteo.com>
2024-10-04 22:16:58 +02:00
79c16751e3
feat: implémentation partielle de la fonction get_config et de ses erreurs 2024-10-02 12:20:34 +02:00
b62e21771a
feat: implement LireCartePS with hardcoded reader and all errors 2024-10-02 12:20:28 +02:00
405f923bc6
feat: Implémentation de la gestion des erreurs numériques de la librairie C pour la fonction InitLIB2
Co-authored-by: theo <t.lettermann@criteo.com>
2024-10-02 12:17:43 +02:00
a4773e5cf4
feat: Création de la crate fsv, couche de haut niveau pour l'usage des librairies FSV 2024-10-02 12:16:05 +02:00
97b4d6c443
feat: improve the fsv-sys README, and add a PROGESS.md for implementation tracking 2024-10-02 12:13:23 +02:00
6034e7f9db
feat: Gestion des versions multiples de FSV dans le wrapper exposant les fonctions de la librairie 2024-10-02 12:13:22 +02:00
6c78db945e
feat: handle multi-version bindings generation 2024-10-02 12:13:22 +02:00
27595bd4f9
feat: Première implémentation de bindings pour FSV SESAM-Vitale
- Création de la crates/fsv-sys
- Ajout des headers de la FSV 1.40.14.13 dans crates/fsv-sys/vendor
- Génération des bindings depuis ces headers avec bindgen
- Implémentation d'une structure de loading de la librairie au runtime
- Implémentation d'une macro permettant de générer facilement la couche d'accès aux fonctions de la librairie
2024-10-02 12:13:02 +02:00
2 changed files with 9 additions and 4 deletions

View File

@ -13,6 +13,13 @@
Les détails de l'avancement de l'implémentation des bindings FSV sont donnés dans le fichier [PROGRESS.md](PROGRESS.md) Les détails de l'avancement de l'implémentation des bindings FSV sont donnés dans le fichier [PROGRESS.md](PROGRESS.md)
| Module | Progression |
|-------------|------------------------------------|
| [SSV](#ssv) | ![](https://geps.dev/progress/5) |
| [SGD](#sgd) | ![](https://geps.dev/progress/0) |
| [SRT](#srt) | ![](https://geps.dev/progress/0) |
| [STS](#sts) | ![](https://geps.dev/progress/0) |
## Utilisation ## Utilisation
### Pré-requis ### Pré-requis
@ -32,5 +39,5 @@ Les détails de l'avancement de l'implémentation des bindings FSV sont donnés
### Pré-requis ### Pré-requis
- Pour la génération des bindings lors de la phase de `build` à l'aide de `bindgen`, il est nécessaire d'avoir installé `clang` ([documentation](https://rust-lang.github.io/rust-bindgen/requirements.html)). - Pour la génération des bindings lors de la pahse de `build` à l'aide de `bindgen`, il est nécessaire d'avoir installé `clang` ([documentation](https://rust-lang.github.io/rust-bindgen/requirements.html)).

View File

@ -3,8 +3,6 @@ use thiserror::Error;
#[derive(Error, Debug, Eq, PartialEq, FromPrimitive)] #[derive(Error, Debug, Eq, PartialEq, FromPrimitive)]
#[repr(u16)] #[repr(u16)]
/// Liste des codes d'erreur retournés par la librairie C SSV
/// Documentation: Manuel de programmation SSV - Annexe A (p. 215)
pub enum SSVErrorCodes { pub enum SSVErrorCodes {
#[error("La Carte du Professionnel de Santé est absente du lecteur.")] #[error("La Carte du Professionnel de Santé est absente du lecteur.")]
CPSMissing = 0xF001, CPSMissing = 0xF001,
@ -19,7 +17,7 @@ pub enum SSVErrorCodes {
/// - Sécurisation d'une série de lots en cours. /// - Sécurisation d'une série de lots en cours.
/// - Pour les fonctions TLA (sauf Identifier TLA) : Cette erreur survient lorsque le simulateur TLA est en mode 1.50. /// - Pour les fonctions TLA (sauf Identifier TLA) : Cette erreur survient lorsque le simulateur TLA est en mode 1.50.
/// - Lire Date Lecteur, Mettre à jour Date Lecteur, Lire Droits Vitale : Cette erreur peut survenir lorsque le Logiciel Lecteur ne connaît pas la fonction sollicitée, c'est-à-dire si la version du Logiciel Lecteur est antérieure à 2.00. /// - Lire Date Lecteur, Mettre à jour Date Lecteur, Lire Droits Vitale : Cette erreur peut survenir lorsque le Logiciel Lecteur ne connaît pas la fonction sollicitée, c'est-à-dire si la version du Logiciel Lecteur est antérieure à 2.00.
/// - Décharger Données Bénéficiaires : cette erreur peut survenir pour signaler que le format des données issues du lecteur est incompatible avec cette version de SSV. /// - Décharger Données Bénéficiaires : cette erreur peut survenir pour signaler que le
#[error("F022: Erreur commune à plusieurs fonctions.")] #[error("F022: Erreur commune à plusieurs fonctions.")]
F022 = 0xF022, F022 = 0xF022,
#[error("Message du lecteur incohérent. Débrancher et rebrancher le lecteur.")] #[error("Message du lecteur incohérent. Débrancher et rebrancher le lecteur.")]