Page 1 sur 1

Epsilon de A à Z - Episode 0.0

Message non luPosté: 28 Aoû 2020, 09:50
de redgl0w
Epsilon de A à Z

Episode 0.0 - Introduction


La calculatrice numworks, arrivée sur le marché en 2017 a su faire une entrée fracassante, grâce à son interface simple pour les utilisateurs, son prix aligné sur le marché, mais surtout par sa philosophie de partage, que ce soit au niveau matériel(mécaniquement comme électroniquement), mais aussi par leur logiciel (aussi nommé firmware, car il tourne sur un petit matériel) nommé epsilon dont on va traiter dans cette série.

Nous n'entrerons pas dans les détails ultra technique, mais tout le firmware sera passé au peigne fin, et nous serons obligé d'aborder des détails liés au fonctionnement sur matériel embarqué. Cependant, les explications seront les plus minimalistes que possible.

Les épisodes seront composés de sous épisodes, du à la complexité de l'implémentation qui peut varier d'une plateforme à l'autre, ou pour décortiquer en plusieurs sous épisodes plusieurs comportements


Pour commencer cette série, nous allons voir l'architecture globale d'epsilon, qui est composée de différentes couches : la couche la plus haute (qui sera celle des applications) utiliseront des fonctionnalités proposés par les couches plus basses.
Voici le schéma proposé par numworks dans sa courte documentation d'epsilon :
Image
Pour commencer, je vais rapidement décrire les couches du bas vers le haut, mais j'aborderais les détails des couches dans de futurs épisodes.
  • Ion est la couche d'abstraction matériel (une couche permettant de gérer le matériel, et de ne proposer au couches supérieur que des possibilités standardisés entre les plateformes qu'il supporte (simulateur, calculatrice, ...), tout en cachant les détails techniques). Voici quelques exemples concrets des fonctionnalités proposées par Ion :
    • La possibilitée de scanner le clavier, afin de regarder les touches appuyées. Comme vous pouvez le voir, il n'y a qu'une seule fonction, mais qui sera utilisée pour les différentes plateforme, afin d'avoir un standart pour les couches supérieures.
    • Une fonction afin de pousser sur l'écran un rectangle de couleur uniforme. Encore une fois, cette fonctionnalitée est standardisée.
  • Kandinsky permet d'accéder à des fonctions simple de dessins, telles que dessiner une ligne ou remplir un rectangle. Cependant, cette couche permet surtout de créer des classes, qui seront très utiles (ce qu'une couleur, un point, une taille, ... sont). L'autre dernier usage de Kandinsky est de gérer l'affichage de texte, de la conversion de fichiers de police vers des fichiers pour le firmware, en passant par une compression, jusqu'à l'affichage.
  • Escher est un GUI Toolkit : elle propose une manière plus propre pour gérer l'interface que de simple appels à la fonction permettant de changer des pixels sur l'écran. Elle propose un système MVC (Model View Controller) que l'on verra plus tard, et propose différentes "view", comme des tableaux, des entrées de texte, des boutons, ...
  • Poincare est le moteur de calcul littéral utilisé dans la numworks. Je n'irais pas plus loin dans cet épisode, car son fonctionnement est plutôt long à expliquer, et donc sera expliqué dans un autre épisode.
  • Apps est la couche la plus haute dans Epsilon : c'est là où sont les applications disponibles pour l'utilisateur (calcul, graphique, regression, paramètre, ...). Il y aura un épisode pour chaque applications.
Vous pourrez noter l'humour de numworks, en ne nommant pas ces couches HAL (Hardware Abstraction Layer), Screen, Maths et GUI, mais en donnant des noms de peintres (Kandinsky et Escher), de mathématicien (Poincare), mais aussi de physique (Ion), qui concordent avec l'intérêt de leur couche respective.

Je m'excuse tout de suite pour les nombreuses fautes qui risquent d'apparaître dans les épispdes. Si vous en voyez, n'hésitez pas à me le faire remarquer.


C'est donc ici que va s'arrêter l'épisode d'aujourd'hui. J'espère vous avoir permis d'avoir une première vue rapide sur epsilon, et on se retrouvera dans le prochain épisode non pas pour analyser une des couches, mais sur comment installer le SDK (les sources d'epsilon), afin de compiler soi-même ce firmware.

Re: Epsilon de A à Z - Episode 0.0

Message non luPosté: 28 Aoû 2020, 16:27
de Afyu
C'est un super article, redgl0w, merci ! Il est clair est plutôt bien présenté :bj:

J'ai appris des choses sur l'origine des noms Kandinsky, Escher, ou Ion. :D

J'ai hâte de lire la suite, surtout si ça parle de compilation. Je me souviens avoir un peu galéré la première fois que j'ai voulu installer le SDK et compiler le système. Je me suis fait un petit tuto perso, détaillé, étape par étape. Si ça t'intéresse, demande moi :)
Je pense que tu en aideras plus d'un (et plus d'une) avec tes explications :D

Re: Epsilon de A à Z - Episode 0.0

Message non luPosté: 13 Avr 2021, 14:02
de cent20
Le prochain épisode est prévu pour quand ?

Re: Epsilon de A à Z - Episode 0.0

Message non luPosté: 13 Avr 2021, 17:25
de redgl0w
cent20 a écrit:Le prochain épisode est prévu pour quand ?

Lorsque la n0200 sortira :troll: