Aller au contenu

OST - Observatoire sans tête


gehelem

Messages recommandés

il y a 53 minutes, vinvin a dit :

Pour un truc sans tête, y'a quand même beaucoup d'images et de GUI ;)

 

j'ai pas été clair : celui qui n'a pas de tête c'est moi

  • Comme je me gausse! 1
Lien vers le commentaire
Partager sur d’autres sites

il y a 46 minutes, TonyBANKS75 a dit :

On sent bien l'ayatollah de la précision, l'esthéte du pointillisme. 😉 

Ya une vanne derrière, mais je pige pas ...

(C'est quand qu'on te revoit dans les champs, au fait ?)

Lien vers le commentaire
Partager sur d’autres sites

Je parlais de la grande quantité de chiffre après la virgule 😇.

Dans les champs ? Oui quand il fait beau durant les week-ends. Ça fait deux conditions qui sont difficiles à réunir ces temps-ci. J'attends que ça le saucissons-bière au pied des télescopes.

Lien vers le commentaire
Partager sur d’autres sites

Il y a 3 heures, TonyBANKS75 a dit :

parlais de la grande quantité de chiffre après la virgule 

Aaahhh oui en effet 

Le format des chiffres c'est aussi une misère, j'y suis pas encore arrivé mais ça m'agace aussi...

Lien vers le commentaire
Partager sur d’autres sites

  • 5 mois plus tard...

Bon je sais bien, ça va pas aussi vite qu'il faudrait.

Pas grave c'est moi le patron.

J'ai profité de mes vacances pour coder au lieu de faire la sieste après bouffer.

Il faisait trop chaud de toutes façon, pas possible de cuver en roupillant.

Du coup j'ai cuvé en c++.

 

Je ne sais pas ce que ça va donner, ni ce que vont en dire mes copains @deufrai et @Axeldark mais c'est pas grave.

Du conflit naît l'émulation, de l'émulation naît la tergiversation (poil au fion).

 

Bref, j'ai -encore- tout revu ma structure interne de stockage des propriétés, j'ai découvert le type "QVariantMap" de Qt.

ça a été la révélation (j'y ai passé mes vacances, en fait).

Suffisamment ouvert (pas besoin de tout réécrire lorsqu'on veut ajouter des attributs à X ou Y)

Et aussi échanges Json <-> C très simplifiés.

 

Re-bref, j'ai enfin un machin assez ouvert et câblé qui va me permettre de mettre en place des profils :

Des ensembles de propriétés associés aux types de modules, que je vais pouvoir charger/modifier en fonction des besoins.

 

Autre grande avancée ces derniers jours, j'ai repris quasiment de zéro la gestion des images.

J'étais parti sur les librairies imageMagick initialement, mais je voulais revenir sur le droit chemin, celui de Kstars.

Et c'est encore StellarSolver qui m'a montré l'exemple, avec QImage (vachement bien ce truc)

J'ai désormais exactement les mêmes routines de chargement et traitement d'images que celles de Kstars

(statistiques et debayer  pour le moment, et plus à venir).

En  gros avant je ne gérais pas du tout les images couleurs.

Maintenant je gère 🙂

 

J'ai aussi un peu progressé dans ma compréhension de javascript et JQuery (toujours aussi crado, mais au moins je passe moins de temps sur ce satané frontend)

 

Qq screenshots pour illustrer

 

1735568874_Slection_1013.png.98c7aa2d261a4f83642892cd169bf8be.png

 

image.png.140c39ef948d720b2597075464f6f2c9.png

 

J'arrive presque au pied du mur de "j'ai plus que du code à pisser, tout est clair sinon"

Je dois encore adapter mes structures de données pour récupérer mes beaux graphes de toutes sortes, et aussi mettre en place des tableaux

(indispensable pour gérer des séquences de shoot, par exemple)

 

Si ça intéresse des gens pour la curiosité (ce truc n'a marché "en vrai" qu'en mars dernier), je peux mettre à jour ma petite VM

Sinon je livre sur la branche "main" uniquement des trucs un peu finis (qui compilent ...)

 

"à être continué"

 

 

 

 

  • J'aime 3
Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines plus tard...

Un peu d'avancement, c'est poussif mais ça marche

Je peux désormais sauvegarder les profils (ensemble de valeurs utilisées par les modules)

Je peux aussi fermer un module, ça n'a l'air de rien mais ça m'a bien fait ramer cette histoire

Je vais me décider à attaquer ces fameuses grilles de valeurs, j'ai pigé comment je vais faire

> QVariant peut stocker des array, je ne vais pas me géner

 

Qt c'est vraiment une mine pour les zozos comme moi !

 

image.png.d01831b676e2219b179e6a0a4ab3cbef.png

  • Merci / Quelle qualité! 1
Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois plus tard...

Bonsoir tout le monde
Dernier message = 11 septembre, quelle misère...
C'est environ à cet endroit que je suis entré dans une espèce de tunel infernal à ne rien pouvoir faire avancer, même le telescope est resté au grenier depuis juillet dernier.

Whatever, je profite de ce jour férié pour vous montrer mes dernières bricoles, j'explique un peu avant.

 

Jusqu'à présent j'avais toujours mis de coté la possibilité de gérer des tableaux de valeurs.

Mon gros problème c'était JQuery (ou plutôt ma façon de l'utiliser), j'avais toujours reculé à mettre ça en place.

Je n'arrivais pas à obtenir un code maintenable même par moi, je me perdais dans des trucs pas possibles.

Le problème était surtout la structuration du code, le mélange des datas (le DOM ? c'est ça ??) et de l'affichage, je mélangeais tout et c'était le bordel.

Donc ce constat ayant été enterriné, j'ai pris le taurreau par les cornes, j'ai potassé un tout petit peu Angular (merci @Axeldark)

Passées les premières suées (j'ai beaucoup souffert, npm c'est caca j'aime pas du tout), j'ai fini par pondre un truc qui ressemble à quelque chose.

Je n'ai pas encore pu tout reprendre, mais au moins ça m'a obligé à structurer mon code et je suis moins perdu dedans.

 

Voici donc la tronche du bidule, le serveur en backend est presque identique à ce qu'il était il y a deux mois.

La première satisfaction c'est que déjà ce type de cloisonnement montre la souplesse de cette structure front/back :

Je n'ai pas eu besoin de tambouiller le backend pour faire marcher un nouveau front, pour moi ça signifie que j'ai un peu gagné le pari de l'adaptabilité en gardant une structure de données qui soit utilisable par plusieurs technos (ça marche en JQUery, en Angular, et je ne desespère par de remettre la main sur un client classique en Qt comme je l'avais fait à un moment)

 

image.png.e97adddaafa8c384f040503591396a11.png

 

 

J'ai maintenant la possibilité de créer/sauvegarder des profils pour les différents modules

image.png.0c51c6bccc6fe4f088e304b9c5e2f1e8.png

 

 

ça donne par exemple ça sur le focuser, qui a gardé son "coeur de métier fonctionnel" à l'identique :

image.png.00eb60346a7b26a9c4079a4accdd0ab1.png

 

En cours de route j'ai même essayé d'intégrer une carte du ciel basée sur la librairie d3-celestial

J'ai mis ça de coté pour le moment, mais ça marche très bien

(a noter que c'est la même qui est utilisée par Indigo)

image.png.77b3c7d900ae4394e1f1817d2bc3c4ab.png

 

 

Et sur le smartphone ça rend pas mal non plus, sans doute grace au comportement des différents composants d'Angular, on sent que c'est vraiment souple.

ici un "indi control panel" des familles :

image.png.423999bf69eb4e59499dfe4b9e8fd135.png

 

Ou mon module de test/démo bidon :

image.thumb.png.2aab0efcb2662962b75d4ca7d7fbb969.png

 

 

Bref, j'avance toujours douuuuuucement, mais j'avance.

 

 

Ah oui aussi :

Angular semble adapté pour fabriquer des applications iOS/Android natives via sa déclinaison Ionic (je ne sais pas vraiment comment appeler ça pour dire que c'est le même truc mais en plus différent)

J'ai essayé, j'y arrive pas 🙂

C'est pas l'objectif pour le moment,

mais je reconnais que ça a pesé un peu dans le choix d'Angular...

 

G.

 

Lien vers le commentaire
Partager sur d’autres sites

Le 11/11/2022 à 19:12, gehelem a dit :

Donc ce constat ayant été enterriné, j'ai pris le taurreau par les cornes, j'ai potassé un tout petit peu Angular (merci @Axeldark)

De rien mon cher @gehelem ! Vu que je suis développeur web, j'étais bien placé pour te conseiller.

 

Pour résumer Angular, c'est un framework Javascript qui suit le patron d'architecture MVC (modèle-vue-contrôleur). C'est à dire que la vue (ce qui est affiché) est séparé du modèle (les données) et le contrôleur (qui fait le lien entre la vue et le modèle). Cela permet d'avoir un code propre et maintenable. 

 

Concernant Ionic, c'est un sdk (indépendant d'Angular mais la version 1 était basé dessus d'où son support plus ou moins natif) et qui permet de générer une application mobile Android et iOS avec plus ou moins le même code qui peut être du Angular (mais aussi d'autres framework JS comme React, Vue etc...). Ca permet de ne pas devoir écrire deux codes pour chaque plateforme mobile. Il faut voir ça comme un intermédiaire entre le code JS et le code mobile.

 

 

Modifié par Axeldark
Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines plus tard...

Bonjour Gelehem, 
De thol.astro sur Astro-Fr. Je viens de découvrir ton projet et bravo pour celui-ci.
Je comprends mieux ta remarque sur ASCOM. Fut une époque, je codais en C++ comme 

je respirais mais cela date un peu. Enfin si tu as besoin d'un coup de main au moins pour les

tests, ce sera avec plaisir.

Bon courage.

Lien vers le commentaire
Partager sur d’autres sites

il y a 18 minutes, Nyrin a dit :

Bonjour Gelehem, 
De thol.astro sur Astro-Fr. Je viens de découvrir ton projet et bravo pour celui-ci.
Je comprends mieux ta remarque sur ASCOM. Fut une époque, je codais en C++ comme 

je respirais mais cela date un peu. Enfin si tu as besoin d'un coup de main au moins pour les

tests, ce sera avec plaisir.

Bon courage.

 

Ah c'est gentil, merci !
en effet j'ai besoin d'aide 🙂

Le problème c'est surtout le rythme, arriver à avancer régulièrement ce n'est vraiment pas facile.

 

J'ai dit à plusieurs reprises que mon but était surtout de sortir un truc qui marche à peu près, une sorte de maquette fonctionnelle

Ensuite seulement je ferai chier les barbus pour m'aider : comme ça à leurs critiques qui seront sanglantes sur ma façon de coder, je pourrai répondre :

"ouai, mais ça marche 🙂 , montre moi comment t'aurai fait, toi qui es si fort"

Sans rire, c'est surtout que j'ai pas envie de décourager des contributeurs pointus avec des sujets triviaux de maternelles du c++, comme ça m'arrive de le faire avec @deufrai

 

G.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines plus tard...
Le 16/12/2022 à 09:00, gehelem a dit :

 

Ah c'est gentil, merci !
en effet j'ai besoin d'aide 🙂

Le problème c'est surtout le rythme, arriver à avancer régulièrement ce n'est vraiment pas facile.

 

J'ai dit à plusieurs reprises que mon but était surtout de sortir un truc qui marche à peu près, une sorte de maquette fonctionnelle

Ensuite seulement je ferai chier les barbus pour m'aider : comme ça à leurs critiques qui seront sanglantes sur ma façon de coder, je pourrai répondre :

"ouai, mais ça marche 🙂 , montre moi comment t'aurai fait, toi qui es si fort"

Sans rire, c'est surtout que j'ai pas envie de décourager des contributeurs pointus avec des sujets triviaux de maternelles du c++, comme ça m'arrive de le faire avec @deufrai

 

G.

Bah tu as raison. Dans l'industrie du soft, le plus important c'est que cela fonctionne dans les délais. L'important de coder et de documenter dans les règles de l'art, c'est si d'autres vont reprendre et maintenir ton code .. on est pas dans ce cas donc basta. J'ai vu ton pb de fuite mémoire mais tu l'as réglé : un des principaux pb des allocations dynamiques. Dolguldur a conseillé des classes qui gérent elles même le garbage collector, il faut vraiment partir la dessus sinon tu vas te faire chier à épelucher le code toutes les 5 min pour trouver ce type de soucis. De mon temps cela n'existait pas .... (il dit le papy :)).   Bon courage.

  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines plus tard...

Hello
2023 rimera avec "ppa" => bonnes années !!


Je me suis amusé ces derniers jours à essayer le système de build du launchpad ubuntu

c'est tordu, mais une fois en place ça devrait le faire.

 

Donc chers  warriors du terminal :

sudo add-apt-repository ppa:gehelem/ostserver-daily
sudo apt update
sudo apt install ostserver

 

Et ça installe les binaires de la partie backend

Qu'on peut donc lancer avec la commande ostserver :

gilles@alzbig:~$ ostserver
[2023-01-07 19:27:30.876758] [0x00007f77dca89100] [info]    OST starting up
[2023-01-07 19:27:30.916944] [0x00007f77dca89100] [debug]   INDI Host=localhost
[2023-01-07 19:27:30.916962] [0x00007f77dca89100] [debug]   INDI Port=7624
[2023-01-07 19:27:30.916965] [0x00007f77dca89100] [debug]   Webroot  =/var/www/html
[2023-01-07 19:27:30.916968] [0x00007f77dca89100] [debug]   DB Path  =
[2023-01-07 19:27:30.916971] [0x00007f77dca89100] [debug]   Check available modules

 

en parallèle, il faut deux choses :

- un serveur indi qui tourne avec quelques drivers, idéalement sur le localhost:7624

- un serveur web avec le contenu de l'archive ci-jointe sur sa racine (valeur par défaut = /var/www/html)

Il faut que l'utilisateur qui lance ostserver ait les droits d'écriture sur ce répertoire, car ça y balance les images (entre autres)

 

ostserver est très bavard, j'ai laissé plein de trucs de debug

là le jeu c'était surtout de savoir si j'arrivai à builder correctement sur le launchpad, donc autant en faire profiter tout le monde.

Bien entendu ça peut (et ça va) planter :

Donc si vous jouez avec, merci d'avance pour vos retours/screenshots etc ...

 

Aventuriers, à vos aventures 🙂

(et bon courage, vous allez en chier)

 

G.

 

 

 

html.tar.gz

  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines plus tard...

Addendum du week end :

j'ai séparé la partie serveur pure des modules

J'ai maintenant deux archives dans le ppa :

ostserver

ostmodules

 

Du coup :

 

sudo add-apt-repository ppa:gehelem/ostserver-daily
sudo apt update
sudo apt install ostserver ostmodules

À noter que j'ai qq soucis de compréhension des install de librairies

Ça cafouille, je potasse 

Lien vers le commentaire
Partager sur d’autres sites

Salut Gilles,

 

J'ai essayé d'installer le ppa pour voir ce que ça donne mais il n'est pas disponible pour 22.10. Est-ce que tu pourrais ajouter la dernière non LTS ?

 

J'ai aussi regardé le fichier control et il me semble que c'est pas une bonne idée d'avoir indi-full dans les dépendances. Beaucoup d'utilisateurs installent indi depuis les sources ou installent uniquement les drivers qui les concernent et ne veulent pas installer tout ces paquets.

Il me semble que ça serai mieux de supprimer libindi1 et indi-full de la ligne Depends: et d'ajouter une ligne "Recommends: libindi1". Comme ça on peut sauter l'installation des paquets indi avec l'option --no-install-recommends  d'apt-get.

 

Pour versionner les librairies il faut utiliser l'option -soname de gcc mais je ne sait pas ou on met ça dans le CMakeLists. Ensuite le lien se fait automatiquement avec ldconfig ou a l'installation du deb.

 

 

Lien vers le commentaire
Partager sur d’autres sites

Olala merci d'essayer @pch

J'ai lancé le build pour la 22.10, il n'est pas encore publié ça devrait arriver dans une heure ou deux

 

Pour le indi-full j'ai mis ça par facilité, je devrais en effet limiter au strict nécessaire (pour le build, mais aussi pour l'installer)

 

Je vais regarder cette histoire de versionning de lib, merci 

Tu l'as compris, je suis vraiment parti en mode bourrin, je débroussaille

 

Merci pour ton aide

G.

Lien vers le commentaire
Partager sur d’autres sites

ostserver est publié sur 22.10

J'ai relancé ostmodules car je l'avais lancé trop tôt et il s'est ramassé 

 

Nota bene = avant de lancer le zinzin faut faire ça, sinon ça marche pas

export LD_LIBRARY_PATH=/usr/lib/ost${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}

 

C'est là dessus que je bloque ces dernières heures

Lien vers le commentaire
Partager sur d’autres sites

Voila, j'ai profité d'une accalmie pour aller pelleter la neige et je me remet à OST.

 

J'ai du bidouiller pour installer ostserver sans indi, ça sera plus propre si tu peux le mettre en Recommends: au lieu de Depends:


Après le "export LD_LIBRARY_PATH ..."  le programme démarre mais il ne trouve pas les modules qu'il cherche dans /usr/bin/

En utilisant "ostserver --libpath /usr/lib/ost" ça marche. Peut-être changer la valeur par défaut?

 

Pour éviter "export LD_LIBRARY_PATH ..." le plus simple serait d'installer libostbasemodule.so dans /usr/lib/ ?

 

Et ça marche! bravo!

 

image.png.4b28bf52509b5a444e5ceab6357d38bd.png

 

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

il y a 10 minutes, pch a dit :

ça marche! bravo!

 

Excellent, merci d'avoir essayé !

 

 

il y a 10 minutes, pch a dit :

le plus simple serait d'installer libostbasemodule.so dans /usr/lib/ ?

Là c'est le dilemne 

C'est ce que j'ai fait au début et ça fonctionne

Sauf que ça impose de nommer mes librairies avec un motif imposé ("libost*") et ça n'exclue pas un carambolage avec un truc qui n'a rien à voir

il y a 10 minutes, pch a dit :

En utilisant "ostserver --libpath /usr/lib/ost" ça marche. Peut-être changer la valeur par défaut?

Oui, c'est la cuisine que j'ai été obligé de faire pour utiliser ce dossier /usr/lib/ost

C'est moche ça ne restera pas

J'ai vu que Qt avait la possibilité de triturer un peu ces chemins au moment de l'exécution, je vais creuser ça 

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

J'ai donc changé le mode de dépendance du paquet en "Recommends",  de mon coté ça ne change rien c'est normal...

C'est dispo dans mon ppa depuis ce matin.

Par ailleurs, j'ai un peu trituré la gestion de la recherche des librairies,  normalement ça devrait mieux se passer désormais (plus besoin de surcharger le ld_library_path)

 

On devrait s'approcher d'une situation relativement basique coté installation (sauf sur le coté front, que je potasse toujours)

 

J'ai ajouté des builds pour armhf, je voudrais pouvoir tester sur mes vieux raspberry en 32 bits

ça plante sur les anciennes version d'ubuntu, il faut que je comprenne pourquoi .

(je voudrais éviter d'avoir à compiler sur le pi ...)

 

G.

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

Merci!

 

Je confirme que ça s'installe bien sans les paquets INDI et qu'il trouve les modules sans LD_LIBRARY_PATH ni --libpath.

 

Oui c'est dommage pour le armhf, j'ai un RPi 2 qui faisait un bon serveur mais compiler INDI la dessus c'est un peu la galère.

 

Petite question fonctionnelle: est-ce qu'on peut recharger les modules qu'on utilise au démarrage du serveur? si oui comment?

 

Lien vers le commentaire
Partager sur d’autres sites

il y a 3 minutes, pch a dit :

Je confirme que ça s'installe bien sans les paquets INDI et qu'il trouve les modules sans LD_LIBRARY_PATH ni --libpath.

 

 

Merci d'avoir encore testé

J'y suis allé en mode bourrin, il faudra que j'améliore ça 

 

il y a 4 minutes, pch a dit :

Oui c'est dommage pour le armhf, j'ai un RPi 2 qui faisait un bon serveur mais compiler INDI la dessus c'est un peu la galère.

 

 

là dessus je suis en train de me demander si je ne peux pas cloner le ppa de Jasem et builder à ma sauce ...

mais vu que j'ai déjà eu du mal à en arriver là, je crains de ne pas y arriver

on verra si ça me prend, ou si ça répond sur le forum indi

 

il y a 5 minutes, pch a dit :

Petite question fonctionnelle: est-ce qu'on peut recharger les modules qu'on utilise au démarrage du serveur? si oui comment?

 

 

Pas encore complètement, c'est en cours

Pour le moment, chaque module peut sauvegarder son "profil" (j'ai appelé ça comme ça) avec ce panneau :

image.png.5116f2cefa5c90f937d422a12135bc69.png

 

Et au démarrage, je charge un ensemble de modules associés à des profils

(et j'ai appelé ça une configuration)

 

Pour le moment, ça charge une "configuration" par défaut, mais je n'ai pas encore donné le moyen de la sauvegarder

A la limite, si tu veux tu dois pouvoir tambouiller à la main le contenu de la base SQLite qui est créée en ajoutant des lignes à la configuration "default" :

image.png.531d344d851d3f298e510a40066ee3a1.png

 

A noter que comme c'est en cours, j'ai pas encore bien débuggé le machin, mais sait-on jamais ...

 

il faut aussi sans doute que j'adapte le front, pour ajouter qq boutons et zones de texte pour ça

 

G. 

 

 

 

 

on dirait bien que ça marche un peu

en faisant ça :
image.png.93cf62777bd9d56b9f9e07ef0560c64b.png

 

ça me charge bien un indipanel au démarrage

image.png.22107204d36783a7623e197460336226.png

 

Mais manifestement le libellé n'est pas bon, il devrait s'appeler "Djobidjoba"

Du coup c'est moins drôle ...

 

 

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation !

Vous pouvez répondre maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous pour poster avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.