Bjr à vous,
Je fais du dev Lazarus sur Windows et Linux (dont Raspberry)
Je travaille actuellement sur le dialogue entre un PC (ou un Raspberry) et un appareil Bluetooth
Sous Windows, relativement peu de problèmes. Dès que le pilote Bluetooth fournit un port série, je peux travailler sur le port attribué.
Sous Linux, c'est galère, larmes de sang, cauchemar, et ce pour un résultat non reproductible et incertain.
Parmi les épreuves qui attendent le dev Lazarus:
- Le wrapper fourni par
http://wiki.lazarus.freepascal.org/Bluetooth.pas manque d'exemples
- Les exemples fournis ne compilent pas / ne fonctionnent pas. L'exemple fourni me compile pas (erreur 'Error linking ...)
Pour des unités fondamentales, cette situation est inadmissible vu l'ancienneté de ces projets
- Documentation soit absente soit non fonctionnelle soit imbittable
- Des bidouilles pénibles et incertaines accaparent le temps du développeur, qui a autre chose à faire que de la prog système
Exemple pour un device Bluetooth:
sudo hcitool scan
puis
sudo rfcomm bind /dev/rfcomm1 <adresse MAC de ton device au format AA:BB:CCD:EE:FF> 1
puis
sudo rfcomm
puis:
sudo picocom -c /dev/rfcomm1
puis ...
Juste invivable. C'est du bricolage, pas du dev.
Résultat: je vais laisser tomber et passer sur un terminal durci Panasonic CF19 sous W7
Le dev d'application ne doit pas être encombré par des considérations de prog système. Les API qu'on lui fournit doivent être faciles d'emploi, standardisées, fiables à 100%
A quand une autorité de certification des librairies fondamentales ?
A quand des API unifiées, testées, fiables, avec une reproductibilité de 100% quelle que soit la plateforme ?
Tant que ce genre de pbs, qui ne devrait plus avoir lieu d'être étant donné l'ancienneté des standards concernés, subsistera, la migration vers Linux ne se fera jamais.
D'ailleurs, j'ai un pb de non reconnaissance de casque Bluetooth chez un ami que j'ai doté en Ubuntu. Nous en sommes à n essais mais on a jeté l'éponge
Voici un condensé du process:
- Mon PC sous W10 est très lent et il faut le nettoyer
- Pas de pb. Je te mets Xubuntu
Et un Xubuntu sur son poste, un
Quelque temps après:
- Mon nouveau casque Bluetooth n'est pas reconnu,
- Bon, on va voir çà.
... Bidouilles diverses et avariées ... Mon pote s'impatiente
- Alors çà marche, oui ou non ?
- Cà devrait 'normalement'. Je te fais un script Bash avec son lanceur
Effectivement, çà marche très bien avec le script. Pb: il faut l'exécuter en root à chaque démarrage.
- Je vois, mais même si tu as créé un lanceur sur le bureau, je ne me rappelle jamais du mot de passe, et çà me bloque. De plus, si je change de matos, il faudra reparamétrer. Tout ceci me gonfle, j'ai une licence valide de Windows 7 Pro.
On casse l'installation de Xubuntu et on réinstalle Windows 7. Réactivation OK, matos reconnu immédiatement, connexion établie avec succès du premier coup. Mon pote est très satisfait, il retrouve un environnement familier, çà marche du premier coup.
De mon côté, j'ai les configurations suivantes auxquelle j'associe un lasermètre spéléo DistoX2 fournissant un port série:
1. Un PDA sous Win Mobile 6.1, muni du logiciel PocketTopo (paperless.bheeb.ch ). Reconnaissance OK, connexion OK, fonctionnement OK
2. Des PC sous Windows 7 et Windows 10, munis de PocketTopo. Reconnaissance OK, connexion OK, fonctionnement OK
3. Mêmes PC mais avec GHTopo, développé en Lazarus. Avec le TLazSerial de Jurassik Pork, çà fonctionne très bien
4. Un PC sous Xubuntu, avec GHTopo compilé sous Linux: Reconnaissance OK (mais procédure fastidieuse), connexion OK. Du côté de GHTopo, pas mal d'adaptations à faire. Ce n'est pas encore fonctionnel pour aller sur le terrain
5. Un Raspberry Pi, avec un Lazarus ad hoc. GHTopo compile sans problème, TLazSerial n'y a pas été porté. Je me tourne vers le wrapper bluetooth.pas. Dès que j'utilise les fonctions hci_* du wrapper dans GHTopo, erreur du linker. Donc, je suis bloqué. La solution RPI n'est pas envisageable en l'état.
Devinez la solution qui va sous terre. Lors d'une sortie topographique dans un gouffre, on me dit:
- C'est bien ta démarche de privilégier le libre, mais pourquoi tu utilises un PocketPC sous Win Mobile ou un PC sous Windows 7 ?
- Parce que je suis spéléologue avant d'être dev. Aujourd'hui, on fait de la prod topo et j'ai un résultat à rendre après la sortie. Je n'ai pas à batailler avec un système capricieux dans le froid et l'humidité donc je prends les solutions qui marchent.
On a vu ensemble lors d'une sortie en carrière qu'il a fallu taper des lignes de commande avec le PC Linux. Ici, nous sommes dans un gouffre; il y a un puits de 65 mètres à topographier et il y a une seule voie. Tu te vois à un fractionnement en train de taper des lignes de commande, en plus de la séance topo, alors que 8 personnes attendent derrière ?
9 |
0 |