Guide to Implement CALLJEE with MDBDescription complète
Descripción completa
Funciones partes y uso.Descripción completa
Descripción completa
Descripción completa
Convertidor BoostDescripción completa
Descripción completa
en wordDescripción completa
Descripción completa
Descripción: good
Descripción: Identificar y comprender correctamente el funcionamiento, calibración y configuración de los Convertidores de Corriente a Presión.
información del sensor lamda y pruebas en vw
Circuitos Eléctricos, Sistemas de PotenciaDescripción completa
USBDescripción completa
usbFull description
Descripcion del protocolo USBDescripción completa
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
uia de !suario Convertidor "#$ !S$ %n esta gu&a el usuario encontrar' la distri(uci)n de la tar*eta+ caracteristicas t,cnicas+ as& co-o la for-a de utiliar el archivo # Si-ple!S$.dll en un entorno de progra-aci)n Visual Studio+ as& co-o las constantes necesarias para la correcta co-unicaci)n co -unicaci)n con el dispositivo "#$ !S$. ntroducci)n 3ard4are a distri(uci)n de la tar*eta es el siguiente
Ali-entaci)n "#$ 26V#C 2A-p. Cone7i)n !S$ 5V#C 500 -A 8protecci)n optoaislado9. ed %rror ndica %rror en Coin Changer+ $ill Acceptor+ Acceptor+ etc. ed "#$ ndica co-unicaci)n entre #ispositivos "#$ y dispositivo "#$ !S$. ed !S$ ndica co-unicaci)n entre :C y #ispositivo "#$ !S$. Configuraci)n de $illetes 3a(ilitados a tar*eta tiene una serie de s4itches+ las cuales cua les en ellas se puede seleccionar ;ue ; ue (illete puede aceptar el validador+ siendo $T0 < 20 pesos+ $T1<50 pesos+ $T2<100 pesos p esos y $T=<200 pesos.
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
nstalaci)n Al conectar el dispositivo "#$ !S$+ el siste-a operativo >indo4s >indo4s tratar' de (uscar en su (ase de datos el driver correspondiente+ al no encontrarlo+ encon trarlo+ le pedir' al usuario ;ue instale -anual-ente el driver. driver. :ara 4indo4s ?: es auto-'tico la petici)n de instalar -anual-ente el driver+ pero en 4indo4s vista y seven+ se de(er' instalar desde ad-inistrador de dispositivos. Al conectar el dispositivo convertidor "#$ !S$+ aparecer' en la carpeta de @tros dispositivos+ co-o se ve en la figura
Selecciona el dispositivo con (ot)n secundario del rat)n+ y selecciona :ropiedades
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
nstalaci)n Al conectar el dispositivo "#$ !S$+ el siste-a operativo >indo4s >indo4s tratar' de (uscar en su (ase de datos el driver correspondiente+ al no encontrarlo+ encon trarlo+ le pedir' al usuario ;ue instale -anual-ente el driver. driver. :ara 4indo4s ?: es auto-'tico la petici)n de instalar -anual-ente el driver+ pero en 4indo4s vista y seven+ se de(er' instalar desde ad-inistrador de dispositivos. Al conectar el dispositivo convertidor "#$ !S$+ aparecer' en la carpeta de @tros dispositivos+ co-o se ve en la figura
Selecciona el dispositivo con (ot)n secundario del rat)n+ y selecciona :ropiedades
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
Aparecer' una ventana+ ven tana+ en la cual seleccionare-os Actualiar controlador.... controlador....
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
Selecciona-os $uscar soft4are de controlador de e;uipo
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
$usca-os la carpeta donde se encuentra el driver lla-ado Convertidor "#$ !S$+ al aceptar e instalar+ aparecer' la siguiente ventana+ alertando+ esto pasa por ;ue en >indo4s no esta certificado el dispositivo !S$+ selecciona-os nstalar este soft4are de controlador de todas for-as
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
Si se ha instalado correcta-ente+ aparecer' la siguiente ventana
Si se ha instalado el driver e7itosa-ente+ se visualiar' en Ad-inistrador de #ispositivos
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
Soft4are as funciones y tareas ;ue est'n disponi(les para esta versi)n del convertidor "#$ !S$ son las siguientes
•
•
•
• •
•
•
nicialiaci)n de dispositivos de co(ro ecepci)n de -onto de efectivo insertado+ -ediante un evento :etici)n de Status de Coin Changer y $ill Acceptor :etici)n de nfor-aci)n de dinero en tu(os en Coin Changer :etici)n de nfor-aci)n nB-ero de (illetes en stack de $ill Acceptor 3a(ilitaci)n y desha(ilitaci)n de Coin Changer y $ill Acceptor %nvi) de -onto de ca-(io en coin changer
:reparando el a-(iente de tra(a*o Antes de e-pear a utiliar el archivo #+ necesita-os agregarlo a nuestras herra-ientas+ solo necesita-os (uscar en la carpeta Soft4are en la direcci)n donde copia-os los archivos del disco+ el archivo lla-ado Si-ple!S$.dll y arrastrarlo en las herra-ientas de Visual Studio.
Al seleccionar la nueva herra-ienta e integrarla a nuestra or-+ de(ere-os de configurar una propiedad lla-ada !#. Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
:or default tiene 00000000D0000D0000D0000D000000000000+ este nB-ero tiene ;ue -odificarse por
a3c4dc3e-683a-4220-9279-cdba089ea343 !na ve -odificado esta propiedad+ podr,-os e-pear a tra(a*ar en el progra-a.
%n el archivo # e7isten diferentes funciones+ a continuaci)n e7p lica-os cada una de ellas+ as& co-o un e*e-plo de uso. %n los siguientes e*e-plos+ la herra-ienta Si-ple!S$ se le ha de*ado el no-(re Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
;ue tiene por default si-ple!S$1.
•
Cone7i)n y #escone7i)n de dispositivo
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
:ara conectar el dispositivo a la interfa de usuario+ se necesita lla-ar pri-ero a la funci)n
OpenConnection() :ara el siguiente e*e-plo del uso de esta funci)n+ se ha creado un (ot)n+ ;ue al lla-ar al evento EClick se conecta el dispositivo+ este -etodo puede variar facil-ente dependiendo de su aplicaci)n. private void (utton1EClick8o(*ect sender+ %ventArgs e9 F si-ple!S$1.@penConnection89G H :ara desconectar el dispositivo se necesita lla-ar a la funci)n
CloseConnection() :ara el siguiente e*e-plo del uso de esta funci)n+ se ha creado un (ot)n+ ;ue al lla-ar al evento EClick se desconecta el dispositivo+ este -etodo puede variar facil-ente dependiendo de su aplicaci)n. private void (utton2EClick8o(*ect sender+ %ventArgs e9 F si-ple!S$1.CloseConnection89G H Si se ha conectado e7istosa-ente el dispositivo "#$ !S$+ se invocar' a un evento lla-ado
_onDeviceConnect() Si se ha desconectado e7itosa-ente el dispositivo+ se invocar' a un evento lla-ado
_onDeviceDisconnect() %*e-plo de uso
private void Si-ple!S$1Eon#eviceConnect89 F la(el1.Te7t < IConectadoIG Si-ple!S$1.Starteadingnterrupt%nd:oint82+ J9G H private void Si-ple!S$1Eon#evice#isconnect89 F la(el1.Te7t < I#esconectadoIG si-ple!S$1.Stopeadingnterrupt%ndpoint89G H
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
%n cual;uier -o-ento en el progra-a+ pode-os preguntar si se est' conectado o desconectado el dispositivo con la propiedad (ooleana #eviceConnected. if 8si-ple!S$1.#eviceConnected < true9 F //acci)n a realiar H
Co-enar ectura de datos :ara co-enar la lectura de datos provenientes del dispositivo+ se lla-ar' a la funci)n •
StartReadin!nterr"pt#nd$oint(2% 8) Se reco-ienda lla-ar a esta funci)n en el evento Eon#eviceConnect89+ co-o se ve en el e*e-plo de arri(a+ los para-etros 82+J9 son datos internos del funciona-iento del dispositivo y no deben de ser 'odiicados . #etener ectura de datos :ara detener la lectura de datos provenientes del dispositivo+ se lla-ar' a la funci)n •
StopReadin!nterr"pt#ndpoint() Se reco-ienda lla-ar a esta funci)n en el evento Eon#evice#isconnect89
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
•
Soluciones Vending y Control Archivo Confidencial
nicialiaci)n de dispositivos "#$
%l dispositivo al ser conectado a la :C+ e-pear' a escanear si e7isten dispositivos "#$ conectados co-o son Coin Changer y $ill Acceptors+ en caso negativo+ vere-os el ed %rror parpadear+ esto ;uiere decir ;ue no e7iste ningun dispositivo conectado+ para ;ue el dispositivo pueda escanear correcta-ente los dispositivos+ de(e ha(er desde luego al -enos un dispositivo de co(ro conectado+ y ali-entado con una fuente de volta*e de por lo -enos 26V#C a 2A-p. %n caso de ;ue no se haya conectado la ali-entaci)n de 26V#C y los dispositivos antes de conectar el convertidor "#$ !S$ a la :C+ se necesita inicialiarlo de nuevo. Antes de lla-ar a la funci)n ;ue le dir' al convertidor "#$+ ;ue+ inicialice los dispositivos de co(ro+ es necesario crear un (uffer de datos de salida y de entrada. (yteKL @utput$uffer < ne4 (yteK=2LG (yteKL nput$uffer < ne4 (yteK=2LG
!na ve creado estos (uffer+ se lla-ar' a la funci)n riteData(*% +"er_de_salida%8) %n donde el pri-er para-etro 1 no se -odifica+ el segundo para-etro se refiere a el (uffer de salida ;ue se ha creado+ y el tercer para-etro se refiere al ta-aMo del dato a enviar. %n este e*e-plo+ se presionar' un (ot)n+ al lla-ar al evento Click+ se preguntar' antes de lla-ar a la funci)n+ si est' conectado el convertidor "#$ !S$. private void (utton=EClick8o(*ect sender+ %ventArgs e9 F if 8si-ple!S$1.#eviceConnected << true9 F @utput$ufferK0L < NTE"#$E#%VC%SG si-ple!S$1.>rite#ata81+ @utput$uffer+J9G H H a constante NTE"#$E#%VC%S se e7plicar' -'s adelante. A partir de ahora+ la -ayor&a de las funciones tienen una respuesta+ la respuesta de la funci)n para nicialiar los dispositivos de co(ro "#$ se concentrar' en un evento lla-ado
_onReadCo'plete() Al lla-arse al evento EoneadCo-plete+ se avisa al siste-a ;ue un nuevo dato proviene del convertidor "#$ !S$+ pero aBn no he-os asociado+ hacia donde Cuando el dispositivo convertidor "#$ !S$ ha ter-inado de conectarse e inicialiarse con los
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
dispositivos de co(ro+ responder' en este evento+ en el siguiente e*e-plo+ pregunta-os en la localidad del (uffer K0L si la respuesta corresponde con la inicialiaci)n+ en el (yte K1L de la cadena+ especifica ;ue dispositivos est'n conectados. private void si-ple!S$1EoneadCo-plete89 F si-ple!S$1.eadnterrupt%ndpoint8ref nput$uffer+ J9G if 8nput$ufferK0L << NTE"#$E#%VC%S9 F if 8nput$ufferK1L << C@NEC3AN%9 F la(el2.Te7t < ICoin Changer findedIG H else if 8nput$ufferK1L << $EACC%:T@9 F la(el2.Te7t < I$ill Changer findedIG H else if 8nput$ufferK1L << C@NEAN#E$9 F la(el2.Te7t < Icoin and (illIG H else F la(el2.Te7t < Ino encontradosIG H H H
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
•
Soluciones Vending y Control Archivo Confidencial
ecepci)n de -onto insertado
Cuando se ha reci(ido dinero desde el coin changer y el (ill acceptor+ el convertidor "#$ !S$ enviar' auto-'tica-ente el dato a trav,s del evento _onReadCo'plete() %l dato del -onto enviado se env&a co-o el do(le+ esto ;uiere decir ;ue si se reci(e el dato I2I+ entonces lo ;ue se reci(i) en realidad es 1 peso. %sto se hio para no tener ;ue -ane*ar nB-eros con punto deci-al en la co-unicaci)n+ el dato ;ue se env&a es un entero de 1O (its+ pero al -ane*ar un (uffer de J (its+ se env&a dividido en 2 (ytes. %n el (uffer de entrada+ ;ue para este e*e-plo+ tienen el no-(re de nput$uffer reci(e alrededor de = datos+ cada uno enviado en el siguiente orden nput$ufferK0L < CAS3ENS%T%# 8constante indicando ;ue el datos enviado+ se trata de dinero insertado por usuario9 nput$ufferK1L < -s( nput$ufferK2L < ls(
8(yte -'s significativo del -onto insertado9 8(yte -enos significativo del -onto insertado9
%n el siguiente e*e-plo+ se -uestra co-o reci(ir el dato y guardarlo en una varia(le tipo int+ ade-'s de i-pri-irlo en una eti;ueta+ para la visualiaci)n del usuario. private void si-ple!S$1EoneadCo-plete89 F si-ple!S$1.eadnterrupt%ndpoint8ref nput$uffer+ J9G if 8nput$ufferK0L << CAS3ENS%T%#9 F (yte -s(+ ls(G int cashEinserted < 0G float cashG -s( < nput$ufferK1LG ls( < nput$ufferK2LG cashEinserted < -s(G cashEinserted PP< JG cashEinserted Q< ls(G cash < cashEinserted R 0.5G la(el=.Te7t < cash.ToString89G H H
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
•
Soluciones Vending y Control Archivo Confidencial
ecepci)n de errores en Coin Changer y $ill Acceptor
%n la recepci)n de errores ;ue pudiera tener los dispositivos "#$+ se re;uiere de pri-ero realiar la petici)n de envio de infor-e de errores+ para realiar esto+ se necesita utiliar la funci)n
riteData(*% +"er_de_salida%8) %n donde el dato de $ufferEdeEsalida se ree-plaa por el (uffer ;ue nosotros he-os creado en nuestro progra-a+ con la constante de envio de datos de errores+ co-o se ve en el siguiente e*e-plo+ el cual+ cada deter-inado tie-po se estar' preguntado por el status de error+ utiliando un ti-er y el evento Tick private void ti-er1ETick8o(*ect sender+ %ventArgs e9 F @utput$ufferK0L < %@ESTAT!SG si-ple!S$1.>rite#ata81+ @utput$uffer+J9G H a recepci)n de la respuesta se reci(e en el evento _onReadCo'plete() %n donde el (uffer de entrada nput$uffer reci(e los datos de la siguiente -anera
nput$ufferK0L < constante ;ue indica ;ue se recepciona los datos de status de error nput$ufferK1L < -s( 8(yte -'s significativo de error en coinchanger9 nput$ufferK2L < ls( 8(yte -enos significativo de error en coinchanger9 nput$ufferK=L < %rror$ill 8dato de status de error en (ill acceptor9 %l e*e-plo siguiente de-uestra la recepci)n del error+ y en una eti;ueta i-pri-e los status de cada uno de los dispositivos "#$. private void si-ple!S$1EoneadCo-plete89 F si-ple!S$1.eadnterrupt%ndpoint8ref nput$uffer+ J9G if 8nput$ufferK0L << %@ESTAT!S9 F (yte -s(+ ls(+ errorG int errorEcoinchangerG -s( < nput$ufferK1LG ls( < nput$ufferK2LG errorEcoinchanger < -s(G errorEcoinchanger PP< JG
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
errorEcoinchanger Q< ls(G nput$ufferK=L < errorG la(el6.Te7t < I%rror coinchanger
H H
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
Ta(la de constante de errores para Coin Changer+ donde 1 es el (yte -enos significativo+ y 2 el (yte -'s significativo.
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
Ta(la de constante de errores en $ill Acceptor
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
•
Soluciones Vending y Control Archivo Confidencial
:etici)n de nfor-aci)n de dinero en tu(os en Coin Changer
:ara poder sa(er cuanto dinero hay en los tu(os de ca-(io+ en el coin changer+ se lla-ar' a la funci)n
riteData(*% +"er_de_salida%8) %n el siguiente e*e-plo+ se utilia un (oton+ lla-ando al evento Click private void (utton6EClick8o(*ect sender+ %ventArgs e9 F @utput$ufferK0L < CAS3ENET!$%SG si-ple!S$1.>rite#ata81+ @utput$uffer+ J9G H %n la respuesta+ se enviar' al evento a _onReadCo'plete() %n el siguiente e*e-plo+ se lee la respuesta del convertidor "#$ !S$+ los datos los envia de la siguiente for-a nput$ufferK0L < constante ;ue indica dinero en tu(os nput$ufferK1L < -s( 8(yte -'s significativo del dato9 nput$ufferK2L < ls( 8(yte -enos significativo del dato9 %l dato viene en un entero de 1O (its+ y es el do(le del -onto real+ esto ;uiere decir ;ue -ultiplicandolo por 0.5 o dividiendolo entre 2+ se tiene el valor real. private void si-ple!S$1EoneadCo-plete89 F si-ple!S$1.eadnterrupt%ndpoint8ref nput$uffer+ J9G if 8nput$ufferK0L < CAS3ENET!$%S9 F (yte -s(+ ls(G int cashEinEtu(esG dou(le -oneyG -s( < nput$ufferK1LG ls( < nput$ufferK2LG cashEinEtu(es < -s(G cashEinEtu(es PP< JG cashEinEtu(es Q< ls(G -oney < cashEinEtu(es R 0.5G la(el5.Te7t < I#inero en tu(os
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
H H
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
•
Soluciones Vending y Control Archivo Confidencial
:etici)n de nfor-aci)n nB-ero de (illetes en stack de $ill Acceptor
a petici)n de infor-aci)n de nB-ero de (illetes+ nos d' el nB-ero de (illetes+ no el -onto de dinero en (illetes. :ara pedir est' infor-aci)n+ se utilia la funci)n
riteData(*% +"er_de_salida%8) %n el siguiente e*e-plo+ se pide por la infor-aci)n -ediante el evento Click de un (ot)n private void (utton5EClick8o(*ect sender+ %ventArgs e9 F if 8si-ple!S$1.#eviceConnected << true9 F @utput$ufferK0L < CAS3ENE$G si-ple!S$1.>rite#ata81+ @utput$uffer+ J9G H H ecuerden+ ;ue es una (uena pr'ctica+ preguntar antes+ s& el dispositivo est' conectado+ antes de enviar la infor-aci)n+ co-o se ve en el e*e-plo de arri(a. a respuesta a esta funci)n se enviar' al evento _onReadCo'plete() %l env&o de datos es de la siguiente for-a+ en el (uffer de entrada nput$ufferK0L < constante ;ue indica ;ue se trata de (illetes en stack nput$ufferK1L < -s( 8(yte -'s significativo de nB-ero de (illetes en stack9 nput$ufferK2L < ls( 8(yte -enos significativo de nB-ero de (illetes en stack9 %n el siguiente e*e-plo+ se -uestra co-o leer los datos+ e i-pri-irlos en una eti;ueta private void si-ple!S$1EoneadCo-plete89 F si-ple!S$1.eadnterrupt%ndpoint8ref nput$uffer+ J9G if 8nput$ufferK0L < CAS3ENE$9 F (yte -s(+ ls(G int cashEinE(ill < 0G -s( < nput$ufferK1LG ls( < nput$ufferK2LG cashEinE(ill < -s(G
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
cashEinE(ill PP< JG cashEinE(ill Q< ls(G la(elO.Te7t < INu-ero de (illetes
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
3a(ilitaci)n y desha(ilitaci)n de Coin Changer y $ill Acceptor
•
%n esta funci)n+ pode-os ha(ilitar o desha(ilitar los dispositivos "#$+ dependiendo de ;ue se desea ha(ilitar o desha(ilitar+ se escri(e en el (uffer de salida+ el orden es el siguiente 3a(ilitaci)n y desha(ilitaci)n de coin changer @ut$ufferK0L < constante ;ue indica tarea de configuraci)n de coinchanger @ut$ufferK1L < valor (ooleano ;ue indica ha(ilitaci)n< 1 y desha(ilitaci)n < 0 3a(ilitaci)n y desha(ilitaci)n de (ill acceptor @ut$ufferK0L < constante ;ue indica tarea de configuraci)n de (ill acceptor @ut$ufferK1L < valor (ooleano ;ue indica ha(ilitaci)n< 1 y desha(ilitaci)n < 0 %n el siguiente e*e-plo+ se utilia cuatro (otones para ha(ilitaci)n y desha(ilitaci)n de los dispositivos
private void (uttonOEClick8o(*ect sender+ %ventArgs e9 F if 8si-ple!S$1.#eviceConnected << true9 F @utput$ufferK0L < S%TEC@NC3AN%G @utput$ufferK1L < 1G si-ple!S$1.>rite#ata81+@utput$uffer+J9G H H private void (uttonEClick8o(*ect sender+ %ventArgs e9 F if 8si-ple!S$1.#eviceConnected << true9 F @utput$ufferK0L < S%TEC@NC3AN%G @utput$ufferK1L < 0G si-ple!S$1.>rite#ata81+ @utput$uffer+ J9G H H private void (uttonWEClick8o(*ect sender+ %ventArgs e9 F if 8si-ple!S$1.#eviceConnected << true9 F @utput$ufferK0L < S%TE$G
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
@utput$ufferK1L < 1G si-ple!S$1.>rite#ata81+ @utput$uffer+ J9G H H private void (utton10EClick8o(*ect sender+ %ventArgs e9 F if 8si-ple!S$1.#eviceConnected << true9 F @utput$ufferK0L < S%TE$G @utput$ufferK1L < 0G si-ple!S$1.>rite#ata81+ @utput$uffer+ J9G H H
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
%nvi) de -onto de ca-(io en coin changer
•
a funci)n de envio de -onto+ es co-o su no-(re lo dice+ devolver ca-(io de dinero+ -ediante el coin changer+ para utiliar est' funci)n+ se necesita enviar el -onto de l ca-(io por dos+ esto ;uiere decir+ ;ue si se necesita dar de ca-(io 10 pesos+ se enviar' al convertidor "#$ !S$ la cantidad de 20. %sto se hace -ediante un entero de 1O (its+ dividido en 2 (ytes+ enviando pri-ero el -'s significativo y luego el -enos significativo+ en el (uffer de salida se -uestra el orden a -'s detalle @utput$ufferK0L < constante ;ue indica ;ue envio de -onto de ca-(io @utput$ufferK1L < -s( 8(yte -'s significativo9 @utput$ufferK2L < ls( 8(yte -enos significativo9 %n el siguiente e*e-plo+ se -uestra co-o utiliar esta funci)n+ -ediante un Te7t$o7 y un (ot)n para enviar el -onto escrito en Te7t$o7+ ca(e destacar ;ue este e*e-plo no tiene ningun tipo de filtro a letras+ ya ;ue es sola-ente de-ostrativo.
private void (uttonJEClick8o(*ect sender+ %ventArgs e9 F int -ontoEescrito+ -ontoEenviadoG (yte -s(+ ls(G -ontoEescrito < Convert.Tont1O8te7t$o71.Te7t9G -ontoEenviado < -ontoEescrito R 2G -s( < 8 (yte98-ontoEenviado XX J9 G ls( < 8 (yte98-ontoEenviado Y 07ff9G @utput$ufferK0L < S%N#EC3AN%G @utput$ufferK1L < -s(G @utput$ufferK2L < ls(G if 8si-ple!S$1.#eviceConnected << true9 F si-ple!S$1.>rite#ata81+ @utput$uffer+ J9G H H
%l convertidor "#$ !S$ responder' cuando haya ter-inado el proceso de envio de ca-(io+ no necesaria-ente tiene ;ue ser e7itosa la tarea+ y depende del coin changer+ -'s adelante se -uestran las posi(les respuestas a la funci)n. %n el siguiente e*e-plo se -uestra co-o se reci(e datos desde el evento _onReadCo'plete() Se de(e de esperar a la respuesta del convertidor "#$ !S$+ antes de realiar otra funci)n+ ya ;ue Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
nor-al-ente tarda entre 1 o 5 segundos en ter-inar de dar ca-(io+ dependiendo del -odelo de coinchanger. private void si-ple!S$1EoneadCo-plete89 F si-ple!S$1.eadnterrupt%ndpoint8ref nput$uffer+ J9G
if 8nput$ufferK0L << S%N#EC3AN%9 F if 8nput$ufferK1L << 19 F la(el.Te7t < ITA%A %?T@SAIG H else F la(el.Te7t < I%@ N@ CA"$@IG H H H
%l dato enviado en el (uffer de entrada en la localidad K1L deter-ina si se realio e7itosa-ente la tarea de dar ca-(io+ cual;uier nB-ero diferente de 1+ ser' error y pro(a(le-ente se tendr' ;ue repetir la tarea.
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
C@NSTANT%S Anterior-ente en el e*e-plo+ se ha(la de unas constantes+ estas constantes se definen al principio del progra-a+ para ;ue sea -'s entendi(le para el progra-ador. as constantes son const (yte NTE"#$E#%VC%S < 1G const (yte C@NEC3AN% < 1G const (yte $EACC%:T@ < 2G const (yte C@NEAN#E$ < =G const (yte CAS3ENS%T%# < 2G const (yte %@ESTAT!S < 6G const (yte CAS3ENET!$%S < =G const (yte CAS3ENE$ < OG const (yte S%TEC@NC3AN% < 10G const (yte S%TE$ < 11G const (yte S%N#EC3AN% < WG
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
:rogra-a co-pleto de e*e-plo using Syste-G using Syste-.Collections.enericG using Syste-.Co-ponent"odelG using Syste-.#ataG using Syste-.#ra4ingG using Syste-.in;G using Syste-.Te7tG using Syste-.>indo4s.or-sG na-espace %*e-plo"#$!S$ F pu(lic partial class or-1 orF (yteKL @utput$uffer < ne4 (yteK=2LG (yteKL nput$uffer < ne4 (yteK=2LG const (yte NTE"#$E#%VC%S < 1G const (yte C@NEC3AN% < 1G const (yte $EACC%:T@ < 2G const (yte C@NEAN#E$ < =G const (yte CAS3ENS%T%# < 2G const (yte %@ESTAT!S < 6G const (yte CAS3ENET!$%S < =G const (yte CAS3ENE$ < OG const (yte S%TEC@NC3AN% < 10G const (yte S%TE$ < 11G const (yte S%N#EC3AN% < WG
pu(lic or-189 F nitialieCo-ponent89G H private void si-ple!S$1Eon#eviceConnect89
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
F la(el1.Te7t < IConectadoIG si-ple!S$1.Starteadingnterrupt%nd:oint82+ J9G H private void si-ple!S$1Eon#evice#isconnect89 F la(el1.Te7t < I#esconectadoIG si-ple!S$1.Stopeadingnterrupt%ndpoint89G H
private void (utton1EClick8o(*ect sender+ %ventArgs e9 F si-ple!S$1.@penConnection89G H private void (utton2EClick8o(*ect sender+ %ventArgs e9 F si-ple!S$1.CloseConnection89G
H private void (utton=EClick8o(*ect sender+ %ventArgs e9 F if 8si-ple!S$1.#eviceConnected << true9 F @utput$ufferK0L < NTE"#$E#%VC%SG si-ple!S$1.>rite#ata81+ @utput$uffer+J9G H H private void si-ple!S$1EoneadCo-plete89 F si-ple!S$1.eadnterrupt%ndpoint8ref nput$uffer+ J9G if 8nput$ufferK0L << NTE"#$E#%VC%S9 F if 8nput$ufferK1L << C@NEC3AN%9 F
Copyright Todos los derechos reservados. ThinkChip
H else if 8nput$ufferK1L << $EACC%:T@9 F la(el2.Te7t < I$ill Changer findedIG ti-er1.Start89G H else if 8nput$ufferK1L << C@NEAN#E$9 F la(el2.Te7t < Icoin and (illIG ti-er1.Start89G H else F la(el2.Te7t < Ino encontradosIG H
H if 8nput$ufferK0L << CAS3ENS%T%#9 F (yte -s(+ ls(G int cashEinserted < 0G dou(le cashG -s( < nput$ufferK1LG ls( < nput$ufferK2LG cashEinserted < -s(G cashEinserted PP< JG cashEinserted Q< ls(G cash < cashEinserted R 0.5G la(el=.Te7t < cash.ToString89G H if 8nput$ufferK0L << %@ESTAT!S9 F (yte -s(+ ls(+ errorG int errorEcoinchangerG -s( < nput$ufferK1LG ls( < nput$ufferK2LG errorEcoinchanger < -s(G
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
errorEcoinchanger PP< JG errorEcoinchanger Q< ls(G error < nput$ufferK=LG la(el6.Te7t < I%rror coinchanger
H if 8nput$ufferK0L << CAS3ENET!$%S9 F (yte -s(+ ls(G int cashEinEtu(esG dou(le -oneyG -s( < nput$ufferK1LG ls( < nput$ufferK2LG cashEinEtu(es < -s(G cashEinEtu(es PP< JG cashEinEtu(es Q< ls(G -oney < cashEinEtu(es R 0.5G la(el5.Te7t < I#inero en tu(os
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
F if 8nput$ufferK1L << 19 F la(el.Te7t < ITA%A %?T@SAIG H else F la(el.Te7t < I%@ N@ CA"$@IG H H H private void ti-er1ETick8o(*ect sender+ %ventArgs e9 F @utput$ufferK0L < %@ESTAT!SG si-ple!S$1.>rite#ata81+ @utput$uffer+J9G H private void (utton6EClick8o(*ect sender+ %ventArgs e9 F @utput$ufferK0L < CAS3ENET!$%SG si-ple!S$1.>rite#ata81+ @utput$uffer+ J9G H private void (utton5EClick8o(*ect sender+ %ventArgs e9 F if 8si-ple!S$1.#eviceConnected << true9 F @utput$ufferK0L < CAS3ENE$G si-ple!S$1.>rite#ata81+ @utput$uffer+ J9G H H
private void (uttonOEClick8o(*ect sender+ %ventArgs e9 F if 8si-ple!S$1.#eviceConnected << true9 F @utput$ufferK0L < S%TEC@NC3AN%G @utput$ufferK1L < 1G si-ple!S$1.>rite#ata81+@utput$uffer+J9G H H
Copyright Todos los derechos reservados. ThinkChip
ThinkChip V1.1 05/2012
Soluciones Vending y Control Archivo Confidencial
private void (uttonEClick8o(*ect sender+ %ventArgs e9 F if 8si-ple!S$1.#eviceConnected << true9 F @utput$ufferK0L < S%TEC@NC3AN%G @utput$ufferK1L < 0G si-ple!S$1.>rite#ata81+ @utput$uffer+ J9G H H private void (uttonJEClick8o(*ect sender+ %ventArgs e9 F int -ontoEescrito+ -ontoEenviadoG (yte -s(+ ls(G -ontoEescrito < Convert.Tont1O8te7t$o71.Te7t9G -ontoEenviado < -ontoEescrito R 2G -s( < 8 (yte98-ontoEenviado XX J9 G ls( < 8 (yte98-ontoEenviado Y 07ff9G @utput$ufferK0L < S%N#EC3AN%G @utput$ufferK1L < -s(G @utput$ufferK2L < ls(G if 8si-ple!S$1.#eviceConnected << true9 F si-ple!S$1.>rite#ata81+ @utput$uffer+ J9G H H private void (uttonWEClick8o(*ect sender+ %ventArgs e9 F if 8si-ple!S$1.#eviceConnected << true9 F @utput$ufferK0L < S%TE$G @utput$ufferK1L < 1G si-ple!S$1.>rite#ata81+ @utput$uffer+ J9G H H private void (utton10EClick8o(*ect sender+ %ventArgs e9
Copyright Todos los derechos reservados. ThinkChip