Re: [openplacos-dev] read, write, normalisation des methodes et nouvelle architecture.

[ Thread Index | Date Index | More lists.tuxfamily.org/openplacos-dev Archives ]


mmmm effectivement

Le 19 juillet 2011 18:08, miaouf kirsh <miaoufkirsh@xxxxxxxxx> a écrit :
> ben je vois bien l'etat de la regul dans le read.
> sinon je vois pas trop comment la choper avec un write.
> c'est possible mais ca colle pas trop avec le trip read/write
>
> apres on peut imaginer une iface org.openplacos.regul.celcuis etc
>
> Le 19 juillet 2011 17:59, flagos <flagospub@xxxxxxxxx> a écrit :
>>
>> Mais elle a bien une unité non ?
>>
>> C'est quoi le read de la regule ? C'est pas le read de la measure ?
>>
>> Le 19 juillet 2011 17:56, miaouf kirsh <miaoufkirsh@xxxxxxxxx> a écrit :
>> > Oui je sais pas trop comment gerer les regul pour le coup.
>> > de toute maniere il lui faut une iface a elle (vu quelle peut etre read
>> > et
>> > write)
>> >
>> > Le 19 juillet 2011 17:10, flagos <flagospub@xxxxxxxxx> a écrit :
>> >>
>> >> Bon ben je suis dacc sur les ifaces, ainsi que les conventions de
>> >> nommage. Ca me parait pas mal comme ca
>> >>
>> >> Pour les order* , j'ai du mal a voir comment ajouter une unité (ou du
>> >> moins son equivalent chez les sensors) ni si c'est vraiment pertinent..
>> >>
>> >> Sinon oui, les regules sont assez interessantes: au niveau de la
>> >> mesure, elles seront assez permissives tandis qu'au niveau des
>> >> controles, elles seront deja plus strictes (meme si une regule tout ou
>> >> rien peut attaquer une pwm, (oups un graduateur pardon ;-) ) par
>> >> exemple). Il va falloir y repenser pour enrichir la syntaxe, autoriser
>> >> tous les sensors analog.
>> >>
>> >> De meme, une regule va présenter une interface de controle de type
>> >> write sur une interface sensors.analog.temperature.celsuis histoire
>> >> que les clients sachent que c'est une regule qui s'exprime en celsuis..
>> >> Or cette interface lui a été heritée par branchement, on ne peut pas
>> >> la caler en dur dans la regule et faire une regule pour chaque unité,
>> >> ca sert a rien. Donc la c'est rebelote, un coup de syntaxe magique
>> >> pour pouvoir gerer ca, nettement moins simple celle la.
>> >>
>> >>
>> >> Le 19 juillet 2011 12:14, miaouf kirsh <miaoufkirsh@xxxxxxxxx> a écrit
>> >> :
>> >> > Pour essayer de conclure et d'archiver le truc.
>> >> > 2 methodes, read et write pour tout le monde. Si autre, on leve une
>> >> > erreur.
>> >> > A mon avis on peut egalement en profiter pour definir les signaux.
>> >> > je dirais un signal, nommé intérupt qui fournit un code correspondant
>> >> > a
>> >> > un
>> >> > evenement, par exemple 1=> la valeur a changé (que ce soit pour un
>> >> > actuator
>> >> > ou un sensor)
>> >> > A la limite on peut prevoir un variant en plus, qui permet de filer
>> >> > d'autres
>> >> > info.
>> >> >
>> >> > Apres on normalise le nom des ifaces (au moins le prefixe) histoire
>> >> > que
>> >> > les
>> >> > client retrouvent leur petit
>> >> > on pourait avoir un truc du style :
>> >> >
>> >> > iface générales : org.openplacos.*
>> >> > ex : org.openplacos.analog, org.openplacos.digital,
>> >> > org.openplacos.rcswitch
>> >> > etc
>> >> >
>> >> > ifaces de commandes : org.openplacos.order.* , qui permettent de
>> >> > spécifier
>> >> > au client qu'on est plutot en presence d'un effecteur, avec un
>> >> > certain
>> >> > nombre d'entre elle normalisé par type de commande :
>> >> > ex: org.openplacos.order.switch, org.openplacos.order.dimmer etc
>> >> >
>> >> > ifaces de sensors : org.openplacos.sensor.<grandeur_physique>.<unité>
>> >> > ex: org.openplacos.sensor.temperature.celsuis
>> >> >
>> >> > apres je pense qu'on est d'accord que cette normalisation n'implique
>> >> > rien du
>> >> > coté server, c'est plus pour que les clients puissent faire du
>> >> > pattern
>> >> > matching et presentent les bon truc.
>> >> > par contre, ya encore quelques points ou ca coince. par exemple une
>> >> > régule
>> >> > ne saura pas sur quoi se branché car elle est indépendante de la
>> >> > gradeur
>> >> > physique et de l'unité.
>> >> > apres on a aussi des iface avec des nom différent qui sont
>> >> > compatible,
>> >> > par
>> >> > exemple une digital peut se brancher sur une pwm etc
>> >> >
>> >> > pour en discuter...
>> >> >
>> >> > Le 18 juillet 2011 19:10, miaouf kirsh <miaoufkirsh@xxxxxxxxx> a
>> >> > écrit :
>> >> >>
>> >> >> yop,
>> >> >> je suis globalement d'accord, mais j'ai pas saisi la solution
>> >> >> proposé.
>> >> >> je suis completement dac qu'on peut tout faire avec du read et du
>> >> >> write,
>> >> >> au final c'est bien ce qu'on fait avec les drivers (tout passe par
>> >> >> un
>> >> >> drivers).
>> >> >> apres j'aimais bien l'idée de méthodes de haut niveau style on/off
>> >> >> qui
>> >> >> ne
>> >> >> sont que des raccourci pour des write.
>> >> >> Je vois mal laisser uniquement du read et du write coté client.
>> >> >> disons
>> >> >> que
>> >> >> on niveau client ca oblige a faire des truc du style "ok , iface
>> >> >> digitale +
>> >> >> write = bouton On/Off" mais dans le cas que tu cite (bouton avec
>> >> >> 30s),
>> >> >> ben
>> >> >> le client peut rien faire vu qu'il ne connais pas l'iface, ou du
>> >> >> moins
>> >> >> il va
>> >> >> entrer un champ texte pour que l'user set ca valeur.
>> >> >> On vois bien que avec les regul c'est pas exellent d'un pts de vu
>> >> >> expérience utilisateur.
>> >> >> Le 18 juillet 2011 18:25, flagos <flagospub@xxxxxxxxx> a écrit :
>> >> >>>
>> >> >>> Yep,
>> >> >>>
>> >> >>> La dessus, je pense qu'on doit tout de meme pouvoir se ramener a un
>> >> >>> ensemble de quelques fonctions qui mettent tout le monde d'accord..
>> >> >>> Mis
>> >> >>> a part le probleme du passage de parametre, au final on va tout de
>> >> >>> meme tomber toujours sur les memes actions. Un peu comme REST et
>> >> >>> ses 4
>> >> >>> methodes avec lesquelles on peut tout faire.
>> >> >>>
>> >> >>> J'ai tendance a penser que si le gonze veut faire de la daube sur
>> >> >>> un
>> >> >>> composant et présenter des methodes alambiques, c'est qu'en réalité
>> >> >>> il
>> >> >>> devrait utiliser une autre interface de la meme pinoche pour le
>> >> >>> faire.
>> >> >>>
>> >> >>> Exemple concret: je code un controleur 2 etats, le bete bouton
>> >> >>> on/off
>> >> >>> en somme. Pis je me dis: tiens ce serait cool de caler un bouton
>> >> >>> poussoir: Comme dans une cage d'escalier, je veux un truc qui reste
>> >> >>> allumé genre 30 secondes et qui rebascule sur off. Bon ca pourrait
>> >> >>> se
>> >> >>> faire dans un composant surcouche mais passons. Quelque part, il
>> >> >>> faut
>> >> >>> eviter que le gonze se mette a enrichir ses methodes. Je pense
>> >> >>> qu'il
>> >> >>> faut plutot qu'il ajoute une iface
>> >> >>> "bouton_poussoir_comme_dans_les_cages_d'escalier" dans laquelle on
>> >> >>> aurait une unique fonction read avec un entier en argument.
>> >> >>>
>> >> >>> Enfin voila, je pense qu'il faut etre souple sur les interfaces
>> >> >>> proposées mais par contre tenir la bride du coté des méthodes: 4
>> >> >>> comme
>> >> >>> dans CRUD (voire 2 puisque nous on fait tout avec 2 methodes), ca
>> >> >>> devrait suffire.
>> >> >>>
>> >> >>> Apres, comme tu le soulignes et c'est je pense tres important: ces
>> >> >>> fameuses interfaces (ou methodes) un poil exotiques, elles n'ont
>> >> >>> d’intérêt que si elles exploitées derrière. En pratique, le plus
>> >> >>> facile est qu'elles soient contrôlées directement par l'utilsateur.
>> >> >>> Apres, contraindre a n'avoir que les objets terminaux d'un peu
>> >> >>> exotiques, c'est un peu contraignant, genre si le gonze a développé
>> >> >>> une regule sur une iface tordue en plus d'avoir codé le composant,
>> >> >>> c'est cool quand meme: je pense pas qu'on ait besoin d'aller jusque
>> >> >>> la
>> >> >>> non ?
>> >> >>>
>> >> >>>
>> >> >>> Le 18 juillet 2011 11:07, miaouf kirsh <miaoufkirsh@xxxxxxxxx> a
>> >> >>> écrit
>> >> >>> :
>> >> >>> > Salut
>> >> >>> > Une question qu'on a soulevé a la derniere séance codage et qu'on
>> >> >>> > a
>> >> >>> > legerement évitée.
>> >> >>> > On avait fait un joli travail de normalisation pour les drivers
>> >> >>> > et
>> >> >>> > je
>> >> >>> > me
>> >> >>> > demande si ca peut rester d'actualité avec la nouvelle
>> >> >>> > architecture.
>> >> >>> > personnellement, je trouve pas mal d'avoir des methodes un peu
>> >> >>> > haut
>> >> >>> > niveau
>> >> >>> > (style On/Off ) au niveau du bus client, que ce soit pour les
>> >> >>> > actuator/sensors, ou pour les reguls etc
>> >> >>> > vu qu'on a mis un peut tout a plat sur le meme niveau, j'ai du
>> >> >>> > mal a
>> >> >>> > envisager comment on pourrais forcer la normalisation niveau
>> >> >>> > driver
>> >> >>> > et
>> >> >>> > autoriser une pareille souplesse pour les autres.
>> >> >>> >
>> >> >>> > Le principal probleme,il me semble, est de pouvoir garder un peut
>> >> >>> > de
>> >> >>> > souplesse tout en evitant que ce soit la foire.
>> >> >>> > Le read est le write coté drivers permetait d'assurer en quelque
>> >> >>> > sorte
>> >> >>> > une
>> >> >>> > compatibilité entre les différents composants pour méthodes ayant
>> >> >>> > des
>> >> >>> > fonctionnalité similaires.
>> >> >>> > Le truc que je me dis c'est qu'on peut toujours dire aux types
>> >> >>> > qui
>> >> >>> > codent
>> >> >>> > "essayez de n'utiliser que du read et du write", mais a mon avis
>> >> >>> > ca
>> >> >>> > ne
>> >> >>> > sera
>> >> >>> > pas suffisant et rien n’empêchera un type de coder un driver ou
>> >> >>> > un
>> >> >>> > autre
>> >> >>> > composants avec une methode qui sort des clou, et qui ne sera
>> >> >>> > plus
>> >> >>> > compatible avec les autres composants.
>> >> >>> > La ou ca part en cacahouète c'est pour le passage d'arguments.. Le
>> >> >>> > probleme
>> >> >>> > ne se présentait pas directement pour l'ancienne archi car toute
>> >> >>> > les
>> >> >>> > méthode
>> >> >>> > ayant des nom bizarres n'avais jamais d'arguments a passer et
>> >> >>> > donc
>> >> >>> > les
>> >> >>> > clients n'avais pas trop de question a se poser.
>> >> >>> >
>> >> >>> > donc je ne sais pas trop ce que tu en pense, mais il faudrait
>> >> >>> > trouver
>> >> >>> > un
>> >> >>> > truc pour eviter que ce soit la merde.
>> >> >>> > moi j'envisage deux pistes (aucune des deux ne me plais vraiment)
>> >> >>> >
>> >> >>> > n'autoriser les methodes exotiques que pour les composants qui
>> >> >>> > sont
>> >> >>> > mappé
>> >> >>> > avec un objet terminal.
>> >> >>> > n'autoriser les méthodes exotiques que si elle n'ont pas
>> >> >>> > d'argument
>> >> >>> > a
>> >> >>> > passer, pour les autres il y a le read et le write.
>> >> >>> >
>> >> >>> > voila, je ne sais pas ce que tu en pense.
>> >> >>> >
>> >> >>>
>> >> >>>
>> >> >>>
>> >> >>> --
>> >> >>> Tapé depuis mon clavier
>> >> >>>
>> >> >>>
>> >> >>
>> >> >
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> Tapé depuis mon clavier
>> >>
>> >>
>> >
>> >
>>
>>
>>
>> --
>> Tapé depuis mon clavier
>>
>>
>
>



-- 
Tapé depuis mon clavier



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/