$30 off During Our Annual Pro Sale. View Details »

Ma caisse enregistreuse en NodeJS

Ma caisse enregistreuse en NodeJS

paul souche

May 19, 2014
Tweet

More Decks by paul souche

Other Decks in Programming

Transcript

  1. Ma caisse enregistreuse en
    Node.js
    Paul SOUCHE

    View Slide

  2. Qui je suis / d’où je viens
    Paul Souche
    Développeur Front-end
    @

    View Slide

  3. Présentation interactive
    Essayez le hashTag :
    #maCaisseNodejs
    Seulement 20 x 2 caractères → Soyez créatifs
    vous aurez alors 5 secondes minimum pour prendre une
    photo...

    View Slide

  4. Le contexte
    But :
    Gérer des périphériques monétiques et
    éditiques depuis un client léger.
    Problème :
    Ces équipements communiquent via le port
    série.

    View Slide

  5. Le contexte
    Comment atteindre les ports Série depuis un navigateur ?
    - ActiveX ?
    - ChromeApp ?
    - Applet Java ?
    - Serveur local
    Il faudra de toute façon installer quelque chose sur le poste
    client.

    View Slide

  6. Le contexte
    Le back est développé sur Wakanda (4D javaScript) → permet de ne pas
    changer de langage
    Comment gérer le protocole COM sur le front ?

    View Slide

  7. L’architecture
    Node.js à la rescousse :
    - API permettant de communiquer sur les ports séries existante :
    voodootikigod / node-serialport
    - Serveur express minimal pour une API bas niveau

    View Slide

  8. L’architecture

    View Slide

  9. L’architecture

    View Slide

  10. La stack
    - AngularJS
    - Bootstrap
    - Express
    - Node
    - npm, Bower & Grunt

    View Slide

  11. La stack
    Les modules en + :
    - node-serialPort : voodootikigod / node-serialport
    - angular-ui bootstrap : angular-ui / bootstrap
    - paperwork : lperrin / paperwork
    - ngTailor : lauterry / ngTailor
    - nodemon : remy / nodemon

    View Slide

  12. La stack : le front

    View Slide

  13. La stack : le back

    View Slide

  14. La stack : le port série
    Exemple d’échange :
    EMETTEUR
    ENQ (5)
    STX + données + ETX + LRC
    EOT (4)
    RECEPTEUR
    ACK (6)
    ACK

    View Slide

  15. La stack : le port serie

    View Slide

  16. Démo ?

    View Slide

  17. Conclusion
    Lib serialPort node vraiment complète :
    - liste des ports série disponibles sur la machine
    - accès aux callbacks de déconnexion
    Les difficultés :
    - CORS et son application par les browsers
    - L’encodage ascii avec node : NUL.toAscii = ‘ ‘ (V8)

    View Slide

  18. Questions ?
    Merci à :
    - AREGIE
    - Hamdi, Douglas & Grég
    - nodejsParis
    - Vous
    - Le fer à souder
    - La caisse de l’hippopotamus à Neuilly
    - La caisse du franprix en bas de chez moi

    View Slide