Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



Mostrando entradas con la etiqueta adaptador. Mostrar todas las entradas
Mostrando entradas con la etiqueta adaptador. Mostrar todas las entradas

jueves, 8 de enero de 2015

Cortes: Uso de cajón monedero con adaptador j11 a USB en linux


Uso de cajón monedero con adaptador j11 a USB en linux


Os traigo un pequeño truco para abrir un cajón monedero que use adaptador j11 a USB en gnu/linux. Estos adaptadores se usan cuando se quiere conectar directamente un cajón monedero a un  ordenador, si usar una impresora térmica o de tickets



Adaptador de J11 a USB

Normalmente los cajones monederos se conectan mediante una clavija J11 a la impresora térmica.
Pero si queremos conectarlos directamente a un ordenador necesitamos o bien que el cajón también tenga salida USB, o comprarle un adaptador J11 a USB.

¿como abrir el cajón modero?
El caso es que no se necesita ningún driver especifico para mandar a abrir el cajón, simplemente escribiendo algo en el dispositivo, este se abrirá. Para ello primero tenemos que saber cual es el nombre del dispositivo, esto lo averiguamos conectando el adaptador al ordenador, y veremos que se crea un nuevo "archivo" en la carpeta /dev, por ejemplo se creará el siguiente archivo:
/dev/ttyUSB0
Nota: dependiendo del numero de dispositivos USB conectados al ordenador, el número puede variar.

Una vez sabido esto, podemos hacer un script que escriba algo en el puerto y al que llamaremos desde el programa principal.

Por ejemplo el script puede ser este:

echo "hola">prueba.txt
cat prueba.txt | tee /dev/ttyUSB0

Nota:
Es importante que tengamos permisos de escritura/lectura en el archivo  ttyUSB0

chmod a+rw /dev/ttyUSB0

También es importante que el usuario que vaya a usar el script que tenga permisos para acceder al archivo, por ejemplo en Ubuntu, debemos de añadir nuestro usuario al grupo dialout (que es donde se llaman a los puertos serie):

sudo gpasswd --add nombre_usuario dialout



Fuente solución:
http://superuser.com/questions/704355/ubuntu-write-to-serial-port-permission-denied (Antonio Sánchez)

fuente de la imagen:
http://www.registradoras.es/product.php?id_product=223


viernes, 6 de diciembre de 2013

Patrón Adaptador: Ejemplo tipos de motor

 Patrón Adaptador: 

Ejemplo tipos de motor

Este patrón permite la cooperación entre clases para extender sus funcionalidades a clases de diferentes tipos, que no pueden usarlas por mecanismos comunes como la herencia. 
Permite trabajar juntas a dos clases con interfaces incompatibles:
 Convierte la interfaz de una clase en otra interfaz que el cliente espera. Esto permite a las clases trabajar juntas, lo que de otra manera no podrían hacerlo debido a sus interfaces incompatibles

Este patrón se debe utilizar cuando:
  • Se quiere utilizar una clase que llame a un método a través de una interface, pero se busca utilizarlo con una clase que no implementa ese interface.
  • Se busca determinar dinámicamente que métodos de otros objetos llama un objeto.
  • No se quiere que el objeto llamado tenga conocimientos de la otra clase de objetos.
Diagrama UML patrón Adapter (Adaptador)

Target: define la interfaz específica del dominio que Cliente usa.
Client: colabora con la conformación de objetos para la interfaz Target.
Adaptee: define una interfaz existente que necesita adaptarse
Adapter: adapta la interfaz de Adaptee a la interfaz Target
El Cliente llama a las operaciones sobre una instancia Adapter. De hecho, el adaptador llama a las operaciones de Adaptee que llevan a cabo el pedido.



Ejemplo: Diversos tipos de motores
Queremos compartir funcionalidades (encender, acelerar y apagar), mediante la herencia creando una clase Motor,  entre estos tipos de motores: MotorComun, MotorEcologico y MotorElectrico.
Pero el MotorElectrico, se comporta de una manera muy diferente que los otros.
Para poderlo usar de la misma forma que los demás (con los mismos métodos), vamos a usar una clase adaptadora, que sirva de puente entre la clase padre "Motor" y la clase MotorElectrico, y que se encargue de traducir los métodos de la clase MotorElectrico a los métodos de clase "Motor" . Así el cliente podrá usar  los motores sin difirenciarlos.

Esquema del ejemplo:
http://codejavu.blogspot.com.es/2013/08/ejemplo-patron-adapter.html




Esquema del proyecto:

Clase Motor
->

Clase MotorComun
->

Clase MotorEconomico
->

Clase MotorElectrico
->

Clase MotorElectricoAdapter
Con esta clase, conseguimos adaptar el uso de la clase MotorElectrico con los métodos de la clase Motor
->

Clase Aplicacion:
->

Programa principal:
->

Resultado de la aplicación:

Enlace de descarga ejemplo: https://app.box.com/s/qflrvc7xtmalktjn4dge

Fuentes:
http://migranitodejava.blogspot.com.es/2011/06/adapter.html

http://codejavu.blogspot.com.es/2013/08/ejemplo-patron-adapter.html

http://pinbit.blogspot.com.es/2008/09/patrones-estructurales-i-patrn-adapter.html