Une idée, peut-être : un afficheur LCD pour IPCop

Forum traitant de la distribution sécurisée montante nommée IP cop et basée sur la distribution Smoothwall. C'est à l'heure actuelle le forum le plus actif du site.

Modérateur: modos Ixus

Messagepar Fesch » 15 Juil 2004 11:13

Si vous avec d'autres idée ou des suggestions, n'hésitez surtout pas à me contacter d'une manière ou d'une autre. J'esseyaerais de tout inclure dans la prochaine version ... :D
Pourquoi lis-tu ceci???
Avatar de l’utilisateur
Fesch
Amiral
Amiral
 
Messages: 2505
Inscrit le: 11 Sep 2003 00:00
Localisation: Luxembourg

Messagepar Yann31 » 15 Juil 2004 11:28

Salut Fesch, salut à tous,

Encore une fois, l'idée de Franck n'est pas mal:

On peut imaginer en effet qu'ils auront une fonction (en mode reglage) dans le style
"menu" "+" "-" "Valid"


C'est a partir de cette idée que je pensais que ca te ferait un peu + de dev :

On peut imaginer un menu ou on pourrait choisir ce qu'affiche le LCD (updown ou bar, ixui, date heure, ipconnected,...)

J'imagine que ca doit etre plus lourd a gerer...

Sinon je vois pas trop ce que Franck78 entendait de plus par "menu" "+" "-" "Valid"

A+
Y.

PS : j'ai mis ton nouveau script, mais j'ai pas encore soudé les BP, c'est aprem... sinon ca a l'air OK, ixui est pls rapide et c'est cool...
Avatar de l’utilisateur
Yann31
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 262
Inscrit le: 20 Août 2002 00:00
Localisation: 31 - near toulouse

Messagepar Genius999 » 16 Juil 2004 08:51

Serait il possible, pour les nouveaux arrivants comme moi, de mettre a jour regulierement le premier poste avec un résumé tres court de l'avancement du projet.
Il serait en effet dommage de priver les ixusiens d'un projet aussi interessant sous pretexte qu'il y a maintenant plus de 25 pages a ce topic... et ca permattrais à ceux qui ne peuvent suivre de maniere assidu le topic, de ne pas perdre le fil de l'avancement de celui ci.

Merci!
Avatar de l’utilisateur
Genius999
Enseigne de vaisseau
Enseigne de vaisseau
 
Messages: 162
Inscrit le: 05 Avr 2003 00:00
Localisation: Lyon

Messagepar Fesch » 16 Juil 2004 08:54

Bon, d'accord ... jettons nous à l'eau (avec le temps qu'il fait ... :mrgreen: :lol:).

Voici une petite vidéo de mon LCD avec les 5 bouttons.

http://www.mccl.lu/~fesch/lcd_1.avi

Je tiens à repréciser l'ordre des bouttons de gauche à droite:
Code: Tout sélectionner
désignation:  SLCT - PE - BUSY - ACK - ERR

PIN:          13     12   11     10    15


Le boutton de gauche étant l'interrupteur (bien que dans ma vidéo c'est un poussoir, voilà pourquoi il faut que je laisse mon doigt dessus!).

En ce qui concerne donc les fonctionnalités, j'ai actuellement fait comme ceci (mais tout autre chose est possible et si vous avez des idées ... c'est ici qu'il faut les poster :)):

* Boutton SLCT: Sert de bascule entre le mode "normal", donc de visualisation des informations, et le mode "setup" dans lequel on peut choisir dynamiquement quelle information à afficher!
* Boutton PE: Pas encore de fonction en mode "normal". En mode "setup" il sert à choisir la ligne qu'on aime configurer.
* Boutton BUSY: Pas encore de fonction en mode "normal". En mode "setup" il sert à choisir la fonction qu'on veut attacher à une ligne donnée.
* Boutton ACK: Dans les deux mode, pousser ce boutton stop le script LCD et le rédémarre aussitôt. :arrow: Très pratique pour la programmation :mrgreen:
* Boutton ERR: Dans les deux modes: Fait un shutdown (halt) de la machine.

:!: :idea: Enfin je tiens à préciser que désormais le script sauvegarde la sélection des choix fait dans un fichier «lcd.conf». S'il n'existe pas chez vous, démarré le script puis arrêtez-le à nouveau et le fichier sera créé automatiquement. Dans le fichier se trouvent 4 lignes avec 4 numéro. Il faut choisir parmis les numéros disponibles dans le code (+/- ligne 305). Voilà ...

A oui ... reste à vous donner le lien vers la version 0.6 :P

:arrow: http://www.fesch.lu/Php/download.php?file=lcd_0_6.zip

Cette version apporte aussi encore des ajouts au niveau des commandes



Code: Tout sélectionner
LCD - Version 0.6
by fesch@ixus.net
-----------------
usage: lcd [-option] [on|off] [row] [col] [text]

[-option] may be:   -, -text   => simply outputs the [text] on the LCD
                    -back on   => switches the backlight ON
                    -back off  => switches the backlight OFF
                    -line      => outputs [text] at row [row]
                    -xy        => outputs [text] at row [row], colum [col]
                    -init      => only initializes the LCD
                    -loop      => starts the loop


:arrow: :!: Reste ici à noter que le script ne sait actuellement gérer qu'une commande à la fois, donc si vous voulez activer le rétroéclairage ET afficher du text, il faut lancer deux commandes, soit

Code: Tout sélectionner
./lcd -back on
./lcd -text Mon text ici ...



a+
Pourquoi lis-tu ceci???
Avatar de l’utilisateur
Fesch
Amiral
Amiral
 
Messages: 2505
Inscrit le: 11 Sep 2003 00:00
Localisation: Luxembourg

Messagepar Yann31 » 16 Juil 2004 09:37

Genius999 a écrit:Serait il possible, pour les nouveaux arrivants comme moi, de mettre a jour regulierement le premier poste avec un résumé tres court de l'avancement du projet.
Il serait en effet dommage de priver les ixusiens d'un projet aussi interessant sous pretexte qu'il y a maintenant plus de 25 pages a ce topic... et ca permattrais à ceux qui ne peuvent suivre de maniere assidu le topic, de ne pas perdre le fil de l'avancement de celui ci.

Merci!


Le pb c'est que Fesch qui developpe le script du LCD ne doit pas avoir la main sur le premier post donc impossible pour lui de l'editer. Seul l'auteur (djam) ou les modos peuvent l'editer... Mais la ca serait a djam de le faire... Reste a savoir s'il suit le fil de la discussion...

Sinon il faudrait peut-etre que Fesch parte sur un nouveau post avec un sujet un peu plus explicite.

A+
Y.
Avatar de l’utilisateur
Yann31
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 262
Inscrit le: 20 Août 2002 00:00
Localisation: 31 - near toulouse

Messagepar Yann31 » 16 Juil 2004 10:50

Voila mon boitier :

Image
Avatar de l’utilisateur
Yann31
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 262
Inscrit le: 20 Août 2002 00:00
Localisation: 31 - near toulouse

Messagepar Fesch » 16 Juil 2004 11:30

à noter pour tout ceux qui sont à la recherche de la page résumé (que j'ai enfin mis au point), elle se trouve donc ici:

:arrow: [Résumé] Une idée (peut-être ?...) - Un LCD avec boutons

Pour toute faute, commentaire ou suggestion, veuillez me contacter... :P
Pourquoi lis-tu ceci???
Avatar de l’utilisateur
Fesch
Amiral
Amiral
 
Messages: 2505
Inscrit le: 11 Sep 2003 00:00
Localisation: Luxembourg

Messagepar Genius999 » 16 Juil 2004 15:51

Fesch a écrit:à noter pour tout ceux qui sont à la recherche de la page résumé (que j'ai enfin mis au point), elle se trouve donc ici:

:arrow: [Résumé] Une idée (peut-être ?...) - Un LCD avec boutons

Pour toute faute, commentaire ou suggestion, veuillez me contacter... :P


Merci beaucoup, c'est tres clair et complet.
Du beau boulot, merci encore.
Avatar de l’utilisateur
Genius999
Enseigne de vaisseau
Enseigne de vaisseau
 
Messages: 162
Inscrit le: 05 Avr 2003 00:00
Localisation: Lyon

Messagepar Yann31 » 16 Juil 2004 15:58

C'est sur Fesch que l'on peut te feliciter, non seulement pour ce resumé clair et concis mais aussi pour l'ensemble de ton travail sur le LCD et pas seulement, car il y a aussi IXUI, Winspeedometer (j'utilise au quotidien ces 2 softs) et d'autres comme ipfmla et surement d'autres que je n'ai pas pris le temps de tester...

Un big :up: pour Fesch... (pour l'ensemble de son oeuvre - a ce jour et pour l'avenir)

Et encore toutes mes felicitations.

A+

Yann
Avatar de l’utilisateur
Yann31
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 262
Inscrit le: 20 Août 2002 00:00
Localisation: 31 - near toulouse

Messagepar akira9a » 16 Juil 2004 16:10

WOW j ai pas encore tout lu mais ca a l air super ton LCD. J en avait deja un avec JaLCD je crois qu il va subir une petite migration. Par contre je suis sous SME. Ton soft fonctionnerait aussi tu penses ?
Avatar de l’utilisateur
akira9a
Second Maître
Second Maître
 
Messages: 43
Inscrit le: 10 Fév 2004 01:00

Messagepar Fesch » 16 Juil 2004 16:11

Oui, pour autant que PERL ainsi que le module HiRes de PERL soit installé. Le script n'est pas spécifique à IpCOP ...
Pourquoi lis-tu ceci???
Avatar de l’utilisateur
Fesch
Amiral
Amiral
 
Messages: 2505
Inscrit le: 11 Sep 2003 00:00
Localisation: Luxembourg

Messagepar Franck78 » 17 Juil 2004 02:10

Salut Fesch,

J'ai décidément pas encore lu le script de l'afficheur LCD. Mais dans un de tes commentaires je déduis que tu commences à utiliser les boutons.

Alors je te suggère fortement maintenant de bien séparer en deux ton script.

UN)
Le moteur qui gére l'affichage et les boutons, tourne en permanence et produit un affichage d'info de base.
Ce moteur est pourvu d'un certain nombre de fonctions primitives.

DEUX)
La partie utilisateur si l'on peut dire qui réagit aux boutons et autres evènements détectés par le moteur.

Si tu lies directement l'appui d'un boutons a une action, ca parait simple au début mais absolument indémerdable par la suite si quelqu'un veut faire autre chose avec l'afficheur.

Il faudrait par exemple (en restant simple bien sur) arriver a

Code: Tout sélectionner

function MainEntry (Evt, data)
{
  switch Evt
  case  lcd_init: # démarrage du programme d'aficheur
                  # ici je prépare mes variables
                  # et l'écran !
                  f_lcd_clear();
                  f_lcd_print ("Gestion boutonneuse Ipcop V0.1")

  case  lcd_quit: # nettoyage car le prog s'arrète

  case  lcd_btnchange:  # data => état instantané des boutons
 
  case  lcd_b1click: # message du moteur : bouton appuyé et relaché
 
  case  lcd_timer: # X fois par seconde se message survient
 
  else  return (lcd_def (Evt, Data)) # Laisse le moteur traiter ce message!
  end switch
  return 0         # retour d'info au moteur si besoin
}


Et dans l'autre sens tu fournis toutes les primitives pour manipuler le LCD, la première devant ressembler à

f_lcd_print ("Hello world")

et sans limite:

f_lcd_clear()
f_lcd_backlite ( on | off)
f_lcd_printL1 ("xx")


Tu verras que les fonctions viendront seules.

Il faut arriver à séparer l'utilisation et la gestion du LCD.

Bon d'accord ca ressemble beaucoup à windows et la gestion évenementielle
mais c'est un bon principe facile à comprendre !



Bye
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar Fesch » 17 Juil 2004 08:48

Merci pour toutes ces idées. :biz: Je vais voir comment je pourrais en tirer profit.

Pour le moment, le nouveau script (donc la version 0.6) utilise déjà les pointeurs de fonctions (contrairement aux autres versions). Ceci fait qu'il existe un certain nombre de fonctions (sans paramètres d'ailleurs) pour afficher différentes informations. Chaque fonction peut-être dynamiquement affectée à une ligne du LCD. De ce fait il est aussi maintenant possible de sauvegarder la configuration actuelle dans un fichier de configuration! :P

Une partie de ce que tu appel donc la partie utilisateur serait cet ensemble de fonctions. Son complément sera ton "moteur".

En ce qui concerne les bouttons, c'est un peu plus compliqué car le fait de pousser un boutton peut engendré deux choses: D'une part l'événement associé "&do[xyz]Down" et d'autre part le changement de la variable "$STATE_[xyz]". Pour l'événement c'est simple: il pourra être modifié par l'utilisateur (à la main). Pour le variable c'est autre chose, car, de la manière que j'ai actuellement mis en oeuvre le déroullement, c'est la boucle principale qui en est influencée ...

Autre chose à laquelle il faut penser à ce stade et qui m'est très important: Il exist deux types d'utilisateurs:

* ceux AVEC des conaissances en PERL: J'aimerais bien leur fournir un produit assez rond, riche en fonctionnalités et qui puisse se configurer de manière très très simple, ce qui est notemment le cas de la version 0.6 à travers la modification des quelques valeurs de bases tout au début du script ET du fichier de configuration (pour ceux qui n'ont pas de bouttons :D)

* ceux SANS des conaissances en PERL: Ils ne sont pas à négliger!!! J'aimerais bien qu'ils aient quelque chose de compréhensible et donc pas trop compliqué à manipuler. (D'accord, il faudrait que j'ajoute encore des commentaires dans le code ... mea culpa, mea maxima culpa ....)


En fait, il y a encore 1000 autres trucs que j'aimerais changer dans le script :mrgreen:, mais c'est un peu le temps qui me manque en ce moment ...
Pourquoi lis-tu ceci???
Avatar de l’utilisateur
Fesch
Amiral
Amiral
 
Messages: 2505
Inscrit le: 11 Sep 2003 00:00
Localisation: Luxembourg

Messagepar jibe » 17 Juil 2004 13:24

Bonjour,

Je suis le sujet par curiosité, avec l'envie de l'installer un jour sur SME, l'idée de l'inclure dans SMERP au moins en tant qu'option possible, mais pas bien le temps de le faire. Aussi, pas (encore) directement concerné, je lis un peu en diagonale, me disant qu'un jour il faudra que je download le script, achète un LCD et mette le tout en place...

Tout ça pour dire que je lis en diagonale et donc que je vais peut-être dire des bêtises. Qu'on me pende si c'est le cas, mais qu'on considère que je n'ai fait que tenter de faire avancer les choses et donner des idées que d'autres ont peut-être (probablement ?) déjà eues...

J'avais suggéré - mais peut-être est-ce irréalisable ou passé inaperçu dans les 26 pages du thread (n'est-ce pas le record sur Ixus ? =D> Ca mérite une mention spéciale, un thread d'une telle longueur qui n'est aucunement un troll !), j'avais suggéré, donc, pour la gestion des boutons, de lancer l'exécution d'un script.

Je connais très mal le perl (qui, au passage, est LE langage de gestion du système SME, donc pas de gros problèmes pour y installer ce LCD) et peut-être ce que je propose n'est pas possible. Ca me parait pourtant être une bonne solution à bien des points de vue :

- C'est ce que suggère Frank78 dans son dernier post : la séparation des parties.
- Le lancement d'un script basch permet à n'importe qui (j'entends, n'importe quel informaticien :roll: ... AVEC ou SANS connaissance du perl) de faire ce qu'il veut, comme il veut : un script complexe, le lancement d'un programme en n'importe quel langage, un simple affichage de "fonction non implémentée" ou même une absence totale d'action etc...
- C'est à mon avis la manière la plus souple et la plus paramétrable d'utiliser les boutons.
- Cela simplifierait grandement le script principal qui n'aurait plus qu'à gérer le lancement d'un script pour chaque action sur chaque bouton, et d'attendre la fin de l'action pour poursuivre...

Il suffirait de lancer un script au nom prédéterminé (btnX_up_action.sh, btnX_down_action.sh par exemple, X étant le N° du bouton en partant de 0 sur la gauche - 0 étant ce fameux inter-bascule) dont il appartiendrait à chacun d'adapter le contenu selon ses propres besoins...

Bon, tout n'est probablement pas aussi simple que ce que je dis. Il y a entre autres les cas où l'action lancée est longue, et où l'affichage doit être rafraichi pendant son déroulement... Fesch connait assez son boulot pour trouver des solutions si c'est possible (quitte à demander au script lancé d'envoyer un quelconque signal - changement d'état d'une variable par ex. - pour relancer le rafraichissement).

Voilà. Ce n'est qu'une idée que je n'ai pas vraiment approfondie faute de maitriser le perl et bien connaitre le fonctionnement du script de Fesch... A lui de juger si elle est bonne ou non !
"Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire" (Albert Einstein)

Autrefois, l'Etat défendait des valeurs. Maintenant, il défend des profits... (Anne Haunnime)
Avatar de l’utilisateur
jibe
Amiral
Amiral
 
Messages: 4366
Inscrit le: 17 Oct 2003 00:00
Localisation: Haute Savoie

Messagepar Fesch » 17 Juil 2004 13:36

Alros, pour répondre à ta question: Oui, c'est tout à faitpossible et envisageable de lancer des petits scripts (peut importe de quel type ...) si un boutton est pressé ou relâché. C'est aussi ce que je fait déjà pour le boutton 3 et 4 (en partant à 0 ;-)) ... 4 étant un `killall lcd | halt´ pour en citer l'exemple.

Très bien jusque là ... il reste à déterminer les différentes donctions que les gens aimeraient avoir sur les bouttons ...

Bon, une chose est clair, c'est que l'inter sert uniquemement à basculer entre l'état d'affchage normal (normal) et l'état de configuration (setup). Restent 4 Bouttons ...

Le 1 et 2 sont utilisés actuellement dans l'état "setup" pour naviguer et faire des sélections. En mode "nomal" il n'ont pas encore de fonction. Cels nou ferait 4 scripts! (lcd_normal_button_1_down, lcd_normal_button_1_up, lcd_normal_button_2_down, lcd_normal_button_2_up).

Les bouttons 3 et 4 sont encore libre (bon, OK ... j'ai collé des fonctions dessus actuellement, mais ceux-là pourraient très bien se mettre dans les scripts!!!). Donc 8 scripts ...

En résumé on a donc:

  • lcd_normal_button_1_down
  • lcd_normal_button_1_up
  • lcd_normal_button_2_down
  • lcd_normal_button_2_up
  • lcd_normal_button_3_down
  • lcd_normal_button_3_up
  • lcd_normal_button_4_down
  • lcd_normal_button_4_up
  • lcd_setup_button_3_down
  • lcd_setup_button_3_up
  • lcd_setup_button_4_down
  • lcd_setup_button_4_up


:arrow: Si un script n'existe pas, il ne sera tout simplement pas exécuté ...


:?: Qu'en pensent les autre de cette solution?

:?: Y a-t-il d'autres fonctionnalités (fixes) liées au fonctionnement et/ou à la configuration du LCD?
Pourquoi lis-tu ceci???
Avatar de l’utilisateur
Fesch
Amiral
Amiral
 
Messages: 2505
Inscrit le: 11 Sep 2003 00:00
Localisation: Luxembourg

PrécédentSuivant

Retour vers IPCop

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron