SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
NodeJS & 3D Printer
Por que NodeJS ?
 Node.js es un entorno JavaScript de lado de servidor que utiliza un
modelo asíncrono y dirigido por eventos. :
 -El lenguaje es el mismo para el servidor y cliente.
 -Existe una cantidad enorme de módulos fáciles de instalar y usar
(npm).
 -Esta pensado para trabajar en tiempo real.
 -Permite realizar llamadas asincrónicas de forma sencilla.
Que queremos que haga nuestra
aplicación ?
Implementación en NodeJS
 Tecnología a utilizar
 Html5
 Css
 Js
 NodeJS
 ThreeJS
 JQuery
ExampleDescriptionParamsCmd
G0 X50Rapid MovementAxis [X/Y/Z] PositionG0
G1 F150
X10
Controlled MovementAxis [X/Y/Z/E] Position
Feed [F]
G1
G28 X YHome<Axis [X/Y/Z]>G28
G90Absolute PositioningnoneG90
G91Relative PositioningnoneG91
M104
S100
Set extruder
temperature
Temperature[S]M104
M17Enable all stepper
motors
noneM17
M18Disable all stepper
motors
noneM18
M140
S55
Set heated bed
temperature to S
Degrees[S]M140
M105Get extruder
Temperature
noneM105
Gcode
Gcode
 Ejemplo del cálculo del cheksum con el número de línea
correspondiente:

function checksum(cmd)
{
cs=0;
for(var i = 0; i < cmd.length; i++)
{
cs=cs^cmd.charCodeAt(i);
}
return cs;
}
cs=checksum("N1 G1 X104.238 Y203.924 E3.9304");
N1 G1 X104.238 Y203.924 E3.9304*cs
N1 G1 X104.238 Y203.924 E3.9304*92
Modulos NodeJS
 npm
Para facilitar la compilación, la instalación, la actualización y la
gestión de las dependencias de los módulos de Node.js se usa el
gestor de paquetes Node Package Manager (npm).
Ejemplo: npm install socket.io
https://www.npmjs.org/
 Módulos
 SerialPort
 Socket.io
 ExpressJS (Framework web)
 FileSystem
SerialPort
Métodos:
SerialPort (path, options, openImmediately, callback)
.open (callback)
.write (buffer, callback)
.close (callback)
Eventos:
.on('open', callback)
.on('data', callback)
.on('close', callback)
.on('error', callback)
var SerialPort = require("serialport").SerialPort
var serialPort = new SerialPort("/dev/tty-usbserial1", {
baudrate: 57600
}, true); // this is the openImmediately flag [default is true]
serialPort.open(function () {
console.log('open');
serialPort.on('data', function(data) {
console.log('data received: ' + data);
});
serialPort.write("lsn", function(err, results) { console.log('err ' + err);
console.log('results ' + results);
});
});
https://github.com/voodootikigod/node-serialport
Socket.io
 Socket designa un concepto abstracto por el cual dos programas
(posiblemente situados en computadoras distintas) pueden
intercambiar cualquier flujo de datos, generalmente de manera
fiable y ordenada. (Wikipedia)
http://socket.io
Server (app.js)
var app = require('express').createServer();
var io = require('socket.io')(app);
app.listen(80);
app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html');
});
io.on('connection', function (socket)
{
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) { console.log(data); });
});
Client (index.html)
<script>
var chat = io.connect('http://localhost/chat') ,
news = io.connect('http://localhost/news');
chat.on('connect', function () { chat.emit('hi!');
});
news.on('news', function () { news.emit('woot');
});
</script>
Socket.io & Serialport
Server (app.js)
this.io.sockets.on("connection", function (socket) {
socket.on("connected", function (msg) {
serialport.open();
});
socket.on("disconnect", function (msg) {
serialport.close();
});
socket.on("home", function(data) {
data=cmd.customCmd("G28");
serialport.write(data,function(err, results){
console.log(err);
});
});
});
Client (index.html)
var socket = io.connect('http://localhost');
socket.on('connected', function (data) {
console.log(data);
});
$("# connected ").click(function(){
socket.emit(" connected ")
});
$("#home").click(function(){
socket.emit('home');
});
$("# disconnect ").click(function(){
socket.emit(disconnect ');
});
Node Js & 3D Printer

Más contenido relacionado

La actualidad más candente

La actualidad más candente (14)

Programación grafica en lenguaje c
Programación grafica en lenguaje cProgramación grafica en lenguaje c
Programación grafica en lenguaje c
 
Ejemplos c++
Ejemplos c++Ejemplos c++
Ejemplos c++
 
Número mayor y menor de una secuencia de enteros positivos en C++.
Número mayor y menor de una secuencia de enteros positivos en  C++.Número mayor y menor de una secuencia de enteros positivos en  C++.
Número mayor y menor de una secuencia de enteros positivos en C++.
 
MATRIZ MÉTODO GAUSS JORDAN
MATRIZ MÉTODO GAUSS JORDANMATRIZ MÉTODO GAUSS JORDAN
MATRIZ MÉTODO GAUSS JORDAN
 
Eficiencia en uso en algoritmos- tiempo de ejecución
Eficiencia en uso en algoritmos- tiempo de ejecuciónEficiencia en uso en algoritmos- tiempo de ejecución
Eficiencia en uso en algoritmos- tiempo de ejecución
 
Concurrencia en Java
Concurrencia en Java Concurrencia en Java
Concurrencia en Java
 
Codigos de programas
Codigos de programasCodigos de programas
Codigos de programas
 
Códigomatlabgaussseidel
CódigomatlabgaussseidelCódigomatlabgaussseidel
Códigomatlabgaussseidel
 
Yinmi delgado sm
Yinmi delgado  smYinmi delgado  sm
Yinmi delgado sm
 
P1
P1P1
P1
 
Programa
ProgramaPrograma
Programa
 
Blog
BlogBlog
Blog
 
Funcionrecursivafactorial
FuncionrecursivafactorialFuncionrecursivafactorial
Funcionrecursivafactorial
 
Problema c++
Problema c++Problema c++
Problema c++
 

Destacado

El Javascripto y los Emuladores de la Muerte
El Javascripto y los Emuladores de la MuerteEl Javascripto y los Emuladores de la Muerte
El Javascripto y los Emuladores de la MuerteFernando Larrañaga
 
#Dean document db + express + angularjs + nodejs running on azure
#Dean document db + express + angularjs + nodejs running on azure#Dean document db + express + angularjs + nodejs running on azure
#Dean document db + express + angularjs + nodejs running on azureLuis Ruiz Pavón
 
Introducción a ReactJS
Introducción a ReactJSIntroducción a ReactJS
Introducción a ReactJSEduard Tomàs
 
Game of Frameworks - GDG Cáceres #CodeCC
Game of Frameworks - GDG Cáceres #CodeCCGame of Frameworks - GDG Cáceres #CodeCC
Game of Frameworks - GDG Cáceres #CodeCCCarlos Azaustre
 

Destacado (6)

El Javascripto y los Emuladores de la Muerte
El Javascripto y los Emuladores de la MuerteEl Javascripto y los Emuladores de la Muerte
El Javascripto y los Emuladores de la Muerte
 
#Dean document db + express + angularjs + nodejs running on azure
#Dean document db + express + angularjs + nodejs running on azure#Dean document db + express + angularjs + nodejs running on azure
#Dean document db + express + angularjs + nodejs running on azure
 
Introducción a ReactJS
Introducción a ReactJSIntroducción a ReactJS
Introducción a ReactJS
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
 
Game of Frameworks - GDG Cáceres #CodeCC
Game of Frameworks - GDG Cáceres #CodeCCGame of Frameworks - GDG Cáceres #CodeCC
Game of Frameworks - GDG Cáceres #CodeCC
 
3D Printing
3D Printing3D Printing
3D Printing
 

Similar a Node Js & 3D Printer

Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018
Jerónimo López | Introducción a GraalVM | Codemotion Madrid  2018  Jerónimo López | Introducción a GraalVM | Codemotion Madrid  2018
Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018 Codemotion
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJSBEEVA_es
 
Node js Alt.net Hispano
Node js Alt.net HispanoNode js Alt.net Hispano
Node js Alt.net Hispanohdgarcia
 
Rompiendo paradigmas
Rompiendo paradigmasRompiendo paradigmas
Rompiendo paradigmasZuriel Diaz
 
Taller desarrollo de apis
Taller desarrollo de apisTaller desarrollo de apis
Taller desarrollo de apisCloudAppi
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilónbetabeers
 
¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticas¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticasjaespinmora
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAVíctor Bolinches
 
Microservicios sobre MEAN Stack
Microservicios sobre MEAN StackMicroservicios sobre MEAN Stack
Microservicios sobre MEAN StackPedro J. Molina
 
Opensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackOpensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackPedro J. Molina
 
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]RootedCON
 
Node.js - un poco de informacion.
Node.js - un poco de informacion.Node.js - un poco de informacion.
Node.js - un poco de informacion.Luis Toscano
 
Tecnologías para microservicios
Tecnologías para microserviciosTecnologías para microservicios
Tecnologías para microserviciosPedro J. Molina
 
Creación de aplicaciones web con Node.js y Express
Creación de aplicaciones web con Node.js y ExpressCreación de aplicaciones web con Node.js y Express
Creación de aplicaciones web con Node.js y Expressbetabeers
 
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones webGroovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones webParadigma Digital
 

Similar a Node Js & 3D Printer (20)

Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018
Jerónimo López | Introducción a GraalVM | Codemotion Madrid  2018  Jerónimo López | Introducción a GraalVM | Codemotion Madrid  2018
Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
 
Node js Alt.net Hispano
Node js Alt.net HispanoNode js Alt.net Hispano
Node js Alt.net Hispano
 
Rompiendo paradigmas
Rompiendo paradigmasRompiendo paradigmas
Rompiendo paradigmas
 
19 javascript servidor
19 javascript servidor19 javascript servidor
19 javascript servidor
 
Taller desarrollo de apis
Taller desarrollo de apisTaller desarrollo de apis
Taller desarrollo de apis
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilón
 
¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticas¿Cómo mantener tu javascript?: Buenas prácticas
¿Cómo mantener tu javascript?: Buenas prácticas
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
 
MODELO PASO DE MENSAJES
MODELO PASO DE MENSAJESMODELO PASO DE MENSAJES
MODELO PASO DE MENSAJES
 
Microservicios sobre MEAN Stack
Microservicios sobre MEAN StackMicroservicios sobre MEAN Stack
Microservicios sobre MEAN Stack
 
Opensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackOpensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN Stack
 
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
 
Redes
RedesRedes
Redes
 
Node.js - un poco de informacion.
Node.js - un poco de informacion.Node.js - un poco de informacion.
Node.js - un poco de informacion.
 
Web sockets
Web socketsWeb sockets
Web sockets
 
Ajax
AjaxAjax
Ajax
 
Tecnologías para microservicios
Tecnologías para microserviciosTecnologías para microservicios
Tecnologías para microservicios
 
Creación de aplicaciones web con Node.js y Express
Creación de aplicaciones web con Node.js y ExpressCreación de aplicaciones web con Node.js y Express
Creación de aplicaciones web con Node.js y Express
 
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones webGroovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
 

Último

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 

Último (15)

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 

Node Js & 3D Printer

  • 1. NodeJS & 3D Printer
  • 2. Por que NodeJS ?  Node.js es un entorno JavaScript de lado de servidor que utiliza un modelo asíncrono y dirigido por eventos. :  -El lenguaje es el mismo para el servidor y cliente.  -Existe una cantidad enorme de módulos fáciles de instalar y usar (npm).  -Esta pensado para trabajar en tiempo real.  -Permite realizar llamadas asincrónicas de forma sencilla.
  • 3. Que queremos que haga nuestra aplicación ?
  • 4. Implementación en NodeJS  Tecnología a utilizar  Html5  Css  Js  NodeJS  ThreeJS  JQuery
  • 5. ExampleDescriptionParamsCmd G0 X50Rapid MovementAxis [X/Y/Z] PositionG0 G1 F150 X10 Controlled MovementAxis [X/Y/Z/E] Position Feed [F] G1 G28 X YHome<Axis [X/Y/Z]>G28 G90Absolute PositioningnoneG90 G91Relative PositioningnoneG91 M104 S100 Set extruder temperature Temperature[S]M104 M17Enable all stepper motors noneM17 M18Disable all stepper motors noneM18 M140 S55 Set heated bed temperature to S Degrees[S]M140 M105Get extruder Temperature noneM105 Gcode
  • 6.
  • 7. Gcode  Ejemplo del cálculo del cheksum con el número de línea correspondiente:  function checksum(cmd) { cs=0; for(var i = 0; i < cmd.length; i++) { cs=cs^cmd.charCodeAt(i); } return cs; } cs=checksum("N1 G1 X104.238 Y203.924 E3.9304"); N1 G1 X104.238 Y203.924 E3.9304*cs N1 G1 X104.238 Y203.924 E3.9304*92
  • 8. Modulos NodeJS  npm Para facilitar la compilación, la instalación, la actualización y la gestión de las dependencias de los módulos de Node.js se usa el gestor de paquetes Node Package Manager (npm). Ejemplo: npm install socket.io https://www.npmjs.org/  Módulos  SerialPort  Socket.io  ExpressJS (Framework web)  FileSystem
  • 9. SerialPort Métodos: SerialPort (path, options, openImmediately, callback) .open (callback) .write (buffer, callback) .close (callback) Eventos: .on('open', callback) .on('data', callback) .on('close', callback) .on('error', callback)
  • 10. var SerialPort = require("serialport").SerialPort var serialPort = new SerialPort("/dev/tty-usbserial1", { baudrate: 57600 }, true); // this is the openImmediately flag [default is true] serialPort.open(function () { console.log('open'); serialPort.on('data', function(data) { console.log('data received: ' + data); }); serialPort.write("lsn", function(err, results) { console.log('err ' + err); console.log('results ' + results); }); }); https://github.com/voodootikigod/node-serialport
  • 11. Socket.io  Socket designa un concepto abstracto por el cual dos programas (posiblemente situados en computadoras distintas) pueden intercambiar cualquier flujo de datos, generalmente de manera fiable y ordenada. (Wikipedia) http://socket.io Server (app.js) var app = require('express').createServer(); var io = require('socket.io')(app); app.listen(80); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); io.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); Client (index.html) <script> var chat = io.connect('http://localhost/chat') , news = io.connect('http://localhost/news'); chat.on('connect', function () { chat.emit('hi!'); }); news.on('news', function () { news.emit('woot'); }); </script>
  • 12. Socket.io & Serialport Server (app.js) this.io.sockets.on("connection", function (socket) { socket.on("connected", function (msg) { serialport.open(); }); socket.on("disconnect", function (msg) { serialport.close(); }); socket.on("home", function(data) { data=cmd.customCmd("G28"); serialport.write(data,function(err, results){ console.log(err); }); }); }); Client (index.html) var socket = io.connect('http://localhost'); socket.on('connected', function (data) { console.log(data); }); $("# connected ").click(function(){ socket.emit(" connected ") }); $("#home").click(function(){ socket.emit('home'); }); $("# disconnect ").click(function(){ socket.emit(disconnect '); });