Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
IHM = Eclipse, Java, Calimero...
#1
Bonjour à tous,

Après quelques paramétrages sur ETS4 de modules IO d'ABB, au travers d'une passerelle IPR/S 2.1, je souhaite faire une petite IHM sur PC, très basique pour me mettre en jambe:

- L'IHM affiche un voyant et dispose de 2 boutons.;
- Les boutons de l'IHM commandent un module de sortie KNX.
- Le voyant de l'IHM est le relevé d'une entrée d'un module KNX.
- L'interface PC / KNX est assurée par l'IPR/S 2.1

J'ai pour le moment créé l'IHM sous Eclipse, en Java, en utilisant la librairie SWT.
Reste le plus dur pour moi: la mise en oeuvre de la librairie Calimero pour discuter KNX .



D'abord, pensez-vous que les outils sont les plus adaptés pour ce que je souhaite faire?
Quelqu'un sur le forum est utilisateur de Calimero?

Merci par avance!
Répondre
#2
D'après ce que je comprend, tu veux écrire une appli complète, plutôt que de passer par du web, c'est bien ça ?

L'idée se défend, quand je vois le bordel que c'est de développer en html/css/php & co. En plus, les specs changent toutes les 2 minutes, et aucun navigateur ne les intègre toutes. On passe son temps à faire des compromis, contourner des bugs etc...

D'un autre côté, une appli dédié ne tournera que sur une plateforme, ou du moins, il faudra faire plusieurs versions pour que ça s'installe un peu partout. Après, c'est c'est juste pour mettre sur une seule machine (genre écran encastré) chez toi, alors, oui, l'approche est bonne.

Perso, je songe plus à utiliser PyQt, mais ça revient au même.

Sinon, pour Calimero, je ne suis pas utilisateur, mais j'ai pas mal fourré mon nez dedans, pour développer mon framework python¹. Je n'ai jamais développé une appli basée sur Calimero ; il y a de nombreuses partie que je n'ai pas creusées, car elles ne m'intéressaient pas pour mon framework. J'ai principalement porté leur DPTXLator, pour la conversion KNX/unités.

¹ http://www.pknyx.org
Répondre
#3
Bonjour,

Effectivement, le but est de travailler en local via un PC portable.
J'utilise une passerelle IP parce-que je l'ai sous la main ;-)

Dans l'attente d'avis d'utilisateurs de Caliméro?
Ou d'autres librairies, pourquoi pas...

Merci par avance,
Répondre
#4
J'ai avancé un peu aujourd'hui, et voici ce que j'arrive à faire pour le moment:
- Connexion PC / passerelle IP KNX.
- Réagir aux appui sur les boutons simulant les état d'entrée du module KNX ABB.
- Afficher (dans le shell) l'adresse attribuée au bouton sur lequel on a appuyé.

La prochaine étape qui me reste à mettre en oeuvre est le pilotage du module de sortie KNX ABB:

Je vous tient au courant de mes tests, et n'hésitez pas si vous voulez plus d'informations, ou si vous avez des commentaires à faire!

Cordialement,
GM
Répondre
#5
Cool :o)

Bonne chance pour la suite !
Répondre
#6
Merci,

Ce n'est qu'un début, pour le moment le codage n'est pas "propre" mais je veux déjà être sur de pouvoir communiquer correctement, puis faire tout interagir.
Répondre
#7
Bonjour,

J'ai fait quelques essais hier, sans succès.

Pour le moment, la partie lecture se fait parfaitement.
Pour la partie écriture, il semble pourtant, sous Calimero exister des méthodes write() dédiées au boolean, qui devrait correspondre (quand on renseigne l'adresse spécifiée via la programmation, précédemment faite dans ETS).

Je n'ai pas bien compris l'utilisation des méthodes, si quelqu'un peux me guider dans la bonne direction?

Merci par avance,
GM
Répondre
#8
Tu as regardé dans leur forum ? J'étais tombé sur des discussions avec des exemples d'utilisation...

http://sourceforge.net/p/calimero/discussion/485103
Répondre
#9
Bonjour,

J'ai refais quelques essais, mais je n'ai rien de concluant pour le moment.
J'utilise la méthode write(), mais rien ne se passe sur la ligne.
Au niveau du linkListener, j'ai un retour de confirmation puis une clôture.

Si quelqu'un a utiliser la méthode et peux m'aider?

Cordialement,
GM
Répondre
#10
Bonjour,

Pour info, l'écriture (méthode write) fonctionne enfin. J'ai résolu mon problème en modifiant les paramètres des modules pour qu'ils repassent automatiquement à 0 au bout d'une seconde.
Ainsi dans mon soft dés que j'écrit 1 sur une sortie, ça m'envoi une impulsion d'une seconde au niveau du contact sec relais.

Maintenant je cherche à trouver comment rafraîchir automatiquement mon état de voyant sur l'IHM (sachant que dans le soft j'ai une méthode qui se déclenche automatiquement au moment du changement d'état de mon entrée). Mais je ne sais pas comment changer mon voyant, sachant que je suis parti sur cet objet:
Image image = new Image (display, 16, 16);
Color color = display.getSystemColor (SWT.COLOR_RED);
color = display.getSystemColor (SWT.COLOR_GREEN);
final GC gc = new GC (image);
gc.setBackground (color);
gc.fillRectangle (image.getBounds ());
gc.dispose ();

...
Label reportLED = new Label (shell, SWT.BORDER);

Rectangle clientArea = shell.getClientArea ();
reportLED.setLocation (clientArea.x, clientArea.y);
reportLED.setImage (image);
reportLED.pack ();

shell.setLayout (new RowLayout ());
shell.pack ();
shell.setSize(433, 70);
shell.open ();

while (!shell.isDisposed ())
{
if (!display.readAndDispatch ())
display.sleep ();
}
image.dispose ();
display.dispose ();

Seulement, une fois ma fenêtre lancée, je ne sais pas comment on peut modifier la couleur du carré ainsi dessiné?
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)