{"id":49914500,"url":"https://github.com/guycorbaz/pulve-calc","last_synced_at":"2026-05-16T15:08:50.847Z","repository":{"id":356563237,"uuid":"1233101986","full_name":"guycorbaz/pulve-calc","owner":"guycorbaz","description":"Calculateur de pulvérisation pour atomiseur viticole/arboricole monté sur tracteur Landini (Perkins A4-212). Interface egui en français.","archived":false,"fork":false,"pushed_at":"2026-05-08T15:46:25.000Z","size":53,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-08T17:38:16.695Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/guycorbaz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-08T15:39:48.000Z","updated_at":"2026-05-08T15:46:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/guycorbaz/pulve-calc","commit_stats":null,"previous_names":["guycorbaz/pulve-calc"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/guycorbaz/pulve-calc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guycorbaz%2Fpulve-calc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guycorbaz%2Fpulve-calc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guycorbaz%2Fpulve-calc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guycorbaz%2Fpulve-calc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guycorbaz","download_url":"https://codeload.github.com/guycorbaz/pulve-calc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guycorbaz%2Fpulve-calc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33107618,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-16T15:08:48.231Z","updated_at":"2026-05-16T15:08:50.842Z","avatar_url":"https://github.com/guycorbaz.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pulve-Calc\n\nCalculateur de pulvérisation pour atomiseur viticole / arboricole monté sur tracteur agricole. L'outil détermine, à partir d'une dose à l'hectare et d'une surface, les **rapports de boîte utilisables**, les **régimes PTO**, les **vitesses au sol** et les **pressions** correspondantes — avec alertes lorsque les paramètres sortent des plages d'étalonnage.\n\nL'application est **agnostique du matériel** : tracteur (régime moteur, vitesses par rapport, plage PTO), pulvérisateur (nombre de buses, largeur de travail, capacité citerne) et **étalonnage des buses** (table pression / débit) sont entièrement paramétrables. Le fichier livré (`config/default.toml`) contient des valeurs d'exemple à adapter à votre matériel.\n\n\u003e Statut : projet personnel, fonctionnel. Interface en français. Testé sous Linux.\n\n## Fonctionnalités\n\n- **Calcul** : entrer la dose visée (L/ha), la surface (ha) et la dose de produit (kg/ha) → obtenir pour chaque rapport de boîte la fenêtre de vitesses, débits et pressions exploitables.\n- **Citerne** : nombre de remplissages nécessaires, volume du dernier remplissage, quantité de produit à mettre par citerne.\n- **Catalogue de produits** : enregistrer noms, compositions, doses recommandées par culture, notes — stockés dans une base SQLite locale.\n- **Configuration éditable** : tracteur (régime max, vitesses par rapport, plage PTO), pulvérisateur (largeur, nombre de buses, capacité citerne, table d'étalonnage pression/débit).\n- **Export PDF** du rapport de calcul (récapitulatif + tableau par rapport).\n- **Alertes** automatiques : pression trop basse / trop haute, vitesse trop basse / trop haute.\n\n## Aperçu de l'interface\n\nL'application présente quatre onglets :\n\n| Onglet | Rôle |\n|---|---|\n| **Calcul** | Saisie des paramètres, choix éventuel d'un produit du catalogue, lancement du calcul. |\n| **Résultats** | Récapitulatif citernes + tableau ligne-par-rapport (vitesses min/nom/max, débits, pressions, alertes), avec impression PDF. |\n| **Produits** | Catalogue persistant de produits phytosanitaires et de leurs doses. |\n| **Configuration** | Édition de la fiche tracteur, plage PTO, paramètres pulvérisateur et étalonnage. |\n\n## Prérequis\n\n- **Rust** 1.75+ (édition 2021) — installer via [rustup](https://rustup.rs/).\n- **Linux** : dépendances système nécessaires à `eframe`/`egui` :\n  ```bash\n  # Debian / Ubuntu\n  sudo apt install libxcb1-dev libxrandr-dev libxi-dev libgl1-mesa-dev \\\n                   libxkbcommon-dev libwayland-dev pkg-config\n  ```\n  L'application devrait également compiler sur macOS et Windows (non testé).\n\n## Installation et compilation\n\n```bash\ngit clone https://github.com/guycorbaz/pulve-calc.git\ncd pulve-calc\ncargo run --release\n```\n\nLes tests unitaires (formules de calcul, interpolation pression, gestion des bornes) :\n\n```bash\ncargo test\n```\n\n## Configuration par défaut\n\nLe fichier [`config/default.toml`](config/default.toml) contient des **valeurs d'exemple** chargées au premier démarrage. Elles décrivent un tracteur Landini équipé d'un atomiseur Ø620 mm — il s'agit d'un point de départ à **adapter à votre matériel réel** (régime max, vitesses par rapport, plage PTO, étalonnage des buses, capacité citerne…) avant toute utilisation. La configuration peut être modifiée directement dans le fichier ou via l'onglet **Configuration** de l'application.\n\n```toml\n[tracteur]\nnom = \"Landini\"\nmoteur = \"Perkins A4-212\"\nregime_max = 2200          # t/min\nvitesses_max = [\n    1.302, 2.012, 2.543, 3.186, 3.982, 4.918,\n    6.230, 7.847, 9.735, 12.115, 15.346, 23.978\n]                          # km/h, par rapport, au régime max\n\n[tracteur.pto]\nregime_nominal = 540\nregime_moteur_nominal = 1944\npto_min = 500\npto_max = 560\n\n[pulverisateur]\nnom = \"Atomiseur Ø620\"\nnombre_buses = 10\ntype_buses = \"Céramique Ø1.0\"\nlargeur_travail = 4.0      # m (inter-rangs)\nciterne = 200              # litres\n\n[pulverisateur.etalonnage]\npressions       = [10.0, 15.0, 20.0, 25.0, 30.0, 40.0, 50.0]\ndebits_par_buse = [1.88, 2.15, 2.45, 2.72, 2.96, 3.37, 3.70]   # L/min\n```\n\nVoir [`docs/USAGE.md`](docs/USAGE.md) pour une description détaillée de chaque champ.\n\n## Stockage des données utilisateur\n\nL'application écrit dans les emplacements standards de la plateforme (via la crate [`dirs`](https://crates.io/crates/dirs)) :\n\n| Donnée | Linux (XDG) | macOS | Windows |\n|---|---|---|---|\n| Configuration utilisateur | `~/.config/pulve-calc/config.toml` | `~/Library/Application Support/pulve-calc/` | `%APPDATA%\\pulve-calc\\` |\n| Base produits SQLite | `~/.local/share/pulve-calc/pulve.db` | `~/Library/Application Support/pulve-calc/` | `%APPDATA%\\pulve-calc\\` |\n\nAucune donnée n'est envoyée à l'extérieur.\n\n## Méthodologie de calcul\n\nLes formules clés sont :\n\n- **Régime moteur pour un PTO donné** :\n  `rpm_moteur = pto_rpm × (rpm_moteur_nominal / pto_nominal)`\n- **Vitesse au sol** sur un rapport :\n  `v_sol = v_max_rapport × (rpm_moteur / rpm_max)`\n- **Débit total requis** :\n  `débit_L/min = (L/ha × v_km/h × largeur_m) / 600`\n- **Pression** : interpolation linéaire dans la table d'étalonnage à partir du débit par buse.\n\nPour chaque rapport de boîte, le calcul est réalisé aux **trois points** de la plage PTO (min, nominal, max) afin de présenter une **fenêtre exploitable** plutôt qu'une valeur unique.\n\nDétails et exemples : [`docs/USAGE.md`](docs/USAGE.md).\n\n## Architecture du code\n\n```\nsrc/\n├── main.rs       # Point d'entrée + style egui\n├── ui.rs         # Interface (onglets Calcul/Résultats/Produits/Configuration)\n├── calc.rs       # Formules + structures de résultat (testé)\n├── config.rs     # Chargement / sauvegarde de la config TOML\n├── db.rs         # Couche SQLite pour le catalogue produits\n└── pdf.rs        # Génération du rapport PDF\n```\n\nDépendances principales : [`eframe`](https://crates.io/crates/eframe) (interface), [`rusqlite`](https://crates.io/crates/rusqlite) (catalogue), [`printpdf`](https://crates.io/crates/printpdf) (export), [`serde`](https://crates.io/crates/serde) + [`toml`](https://crates.io/crates/toml) (configuration).\n\n## Limitations connues\n\n- Interface en français uniquement.\n- Étalonnage interpolé linéairement entre points fournis ; pas d'extrapolation hors plage (l'application le signale par une alerte).\n- Le calcul suppose la table de vitesses au régime maximal — la mise à jour des rapports doit refléter votre tracteur réel.\n- Aucune intégration GPS / DPAE — l'outil est un assistant de réglage avant chantier.\n\n## Contribuer\n\nLes bugs et suggestions sont bienvenus via les *issues* GitHub. Si vous adaptez l'outil pour un autre matériel (autre tracteur, autre atomiseur), une PR enrichissant `config/` avec un fichier d'exemple est très volontiers acceptée.\n\nAvant de soumettre une PR :\n\n```bash\ncargo fmt\ncargo clippy --all-targets -- -D warnings\ncargo test\n```\n\n## Licence\n\n[MIT](LICENSE) — © 2026 Guy Corbaz.\n\nLes manuels manufacturier (Landini, Airone, Braxol) référencés pendant le développement **ne sont pas redistribués** dans ce dépôt pour des raisons de droits d'auteur.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguycorbaz%2Fpulve-calc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguycorbaz%2Fpulve-calc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguycorbaz%2Fpulve-calc/lists"}