www.clarioneros.com

El rincón de los desarrolladores
Fecha actual Lun Abr 24, 2017 5:22 am

Todos los horarios son UTC




Nuevo tema Responder al tema  [ 10 mensajes ] 
Autor Mensaje
NotaPublicado: Mié May 18, 2011 11:43 am 
Desconectado
Avatar de Usuario

Registrado: Mar Feb 22, 2011 2:04 pm
Mensajes: 17
Ubicación: Tucumán - Argentina
Hola

Tengo la necesidad de leer una bascula con una window desde una app;
compre el WinEvent pero "nunca" lo use y "nunca" hice este tipo de
trabajo. La bascula está conectada con una RS232 a la PC.

Necesito "una receta", por así decirlo, para usar/configurar el WinEvent para tomar datos desde un puerto COM es más "no se ni por donde empezar" ni donde leer en el manual de Capesoft; el WinEvent sirve para varias tareas y mi falta total de experiencia en este tema me complica más las cosas.

En fin... me pueden tirar una punta para empezar?? se que cada bascula tiene su forma de enviar los datos lo que "necesito" 1ro. es configurar el WinEvent para que lea el puerto COM (sea como sea lo enviado por la bascula). Me pueden ayudar???

Estoy "desnudo", a los gritos, con dos palillos en las manos, remando en el dulce de lecho y sentado en una cascara de nuez... :shock: :o :(

Desde ya Gracias!!
Faustino Garcia
Tucumán - ARG


Arriba
 Perfil Email  
 
NotaPublicado: Jue May 19, 2011 3:38 am 
Desconectado
Avatar de Usuario

Registrado: Dom May 08, 2011 6:17 pm
Mensajes: 23
Ubicación: Cabo San Lucas, México
Código:
! === Leemos bascula === !
buf                  STRING(1024)
GLO:BasParam = 'COM' & CFG:BasPuerto & ':' & CLIP(CFG:BasVelocidad) & ',' & CLIP(CFG:BasParidad) & ',' & CLIP(CFG:BasDataBit) & ',' & CLIP(CFG:BasStopBit)
! COM1:9600,N,8,1   <-- Ejemplo

! --- Abrimos puerto --- !
pid#  =  NewPort(CLIP(GLO:BasParam),1024,1024)

! --- Enviamos identificador a la bascula --- !
! En la mayoria de las básculas hay que enviarle una 'P' para que nos envie el peso
buf = 'P'  !Length = 1
BSent# = WritePort(pid#,buf,1)

ds_Sleep(50)      !Retardamos 1/2 segundo

! --- leemos el peso --- !
BRec# = ReadPort(pid#,buf,0)

! --- Cerramos puerto --- !
ClosePort(pid#)

! En este momento ya tenemos el peso en la variable Buf
! La mayoria de las básculas te devuelve algo como esto: '10.6 Kg'
! es necesario quitarle la palabra Kg yo lo hago con la función vuKeepChars
! de Valutilities; puedes implantar algo con pos/instring
! --- Obtenemos el peso --- !
LOC:Peso = buf
LOC:Chars = '0123456789.'
LOC:Cantidad = vuKeepChars(LOC:Peso,LOC:Chars)

! Listo, el peso esta en la variable LOC:Cantidad


Espero que te sirva este ejemplo

Saludos

_________________
Si la vida te da la espalda, agarrale una nalga


Arriba
 Perfil Email  
 
NotaPublicado: Jue May 19, 2011 12:19 pm 
Desconectado
Avatar de Usuario

Registrado: Mar Feb 22, 2011 2:04 pm
Mensajes: 17
Ubicación: Tucumán - Argentina
Gracias!!! :)

Por supuesto que sirve, tengo una consulta más:
Este codigo puede ir en una ROUTINE o FUNCION que sea convocada desde un botón (Ejm: Leer Bascula) o donde debo poner este embeb??

Saludos
Faustino Garcia
Tucumán - ARG


Arriba
 Perfil Email  
 
NotaPublicado: Jue May 19, 2011 2:17 pm 
Desconectado
Avatar de Usuario

Registrado: Dom May 08, 2011 6:17 pm
Mensajes: 23
Ubicación: Cabo San Lucas, México
yo lo tengo en el embed de un botón; si el cliente necesita pesar la mercancia oprime el boton "pesar" y se ejecuta la rutina antes mencionada y despues manipulo la variable LOC:Cantidad como me convenga

Saludos

_________________
Si la vida te da la espalda, agarrale una nalga


Arriba
 Perfil Email  
 
NotaPublicado: Jue May 19, 2011 2:55 pm 
Desconectado
Avatar de Usuario

Registrado: Mar Feb 22, 2011 2:04 pm
Mensajes: 17
Ubicación: Tucumán - Argentina
Muchisimas GRACIAS!!

La G es de Gustavo??


Arriba
 Perfil Email  
 
NotaPublicado: Jue May 19, 2011 3:44 pm 
Desconectado
Avatar de Usuario

Registrado: Dom May 08, 2011 6:17 pm
Mensajes: 23
Ubicación: Cabo San Lucas, México
Gerardo :)

_________________
Si la vida te da la espalda, agarrale una nalga


Arriba
 Perfil Email  
 
NotaPublicado: Dom May 26, 2013 3:20 am 
Desconectado

Registrado: Jue Mar 03, 2011 5:22 pm
Mensajes: 2
gsanchez escribió:
Código:
! === Leemos bascula === !
buf                  STRING(1024)
GLO:BasParam = 'COM' & CFG:BasPuerto & ':' & CLIP(CFG:BasVelocidad) & ',' & CLIP(CFG:BasParidad) & ',' & CLIP(CFG:BasDataBit) & ',' & CLIP(CFG:BasStopBit)
! COM1:9600,N,8,1   <-- Ejemplo

! --- Abrimos puerto --- !
pid#  =  NewPort(CLIP(GLO:BasParam),1024,1024)

! --- Enviamos identificador a la bascula --- !
! En la mayoria de las básculas hay que enviarle una 'P' para que nos envie el peso
buf = 'P'  !Length = 1
BSent# = WritePort(pid#,buf,1)

ds_Sleep(50)      !Retardamos 1/2 segundo

! --- leemos el peso --- !
BRec# = ReadPort(pid#,buf,0)

! --- Cerramos puerto --- !
ClosePort(pid#)

! En este momento ya tenemos el peso en la variable Buf
! La mayoria de las básculas te devuelve algo como esto: '10.6 Kg'
! es necesario quitarle la palabra Kg yo lo hago con la función vuKeepChars
! de Valutilities; puedes implantar algo con pos/instring
! --- Obtenemos el peso --- !
LOC:Peso = buf
LOC:Chars = '0123456789.'
LOC:Cantidad = vuKeepChars(LOC:Peso,LOC:Chars)

! Listo, el peso esta en la variable LOC:Cantidad


Espero que te sirva este ejemplo

Saludos


Arriba
 Perfil Email  
 
NotaPublicado: Dom May 26, 2013 3:26 am 
Desconectado

Registrado: Jue Mar 03, 2011 5:22 pm
Mensajes: 2
Con este codigo, ya no necesito el WinEvent?


Arriba
 Perfil Email  
 
NotaPublicado: Lun May 27, 2013 4:20 am 
Desconectado
Avatar de Usuario

Registrado: Dom Feb 06, 2011 9:34 am
Mensajes: 1002
Ubicación: España
Si, necesitás el WinEvent.

_________________
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog


Arriba
 Perfil Email  
 
NotaPublicado: Vie Nov 11, 2016 5:07 pm 
Desconectado

Registrado: Mar Sep 23, 2014 11:40 pm
Mensajes: 1
handradev escribió:
gsanchez escribió:
Código:
! === Leemos bascula === !
buf                  STRING(1024)
GLO:BasParam = 'COM' & CFG:BasPuerto & ':' & CLIP(CFG:BasVelocidad) & ',' & CLIP(CFG:BasParidad) & ',' & CLIP(CFG:BasDataBit) & ',' & CLIP(CFG:BasStopBit)
! COM1:9600,N,8,1   <-- Ejemplo

! --- Abrimos puerto --- !
pid#  =  NewPort(CLIP(GLO:BasParam),1024,1024)

! --- Enviamos identificador a la bascula --- !
! En la mayoria de las básculas hay que enviarle una 'P' para que nos envie el peso
buf = 'P'  !Length = 1
BSent# = WritePort(pid#,buf,1)

ds_Sleep(50)      !Retardamos 1/2 segundo

! --- leemos el peso --- !
BRec# = ReadPort(pid#,buf,0)

! --- Cerramos puerto --- !
ClosePort(pid#)

! En este momento ya tenemos el peso en la variable Buf
! La mayoria de las básculas te devuelve algo como esto: '10.6 Kg'
! es necesario quitarle la palabra Kg yo lo hago con la función vuKeepChars
! de Valutilities; puedes implantar algo con pos/instring
! --- Obtenemos el peso --- !
LOC:Peso = buf
LOC:Chars = '0123456789.'
LOC:Cantidad = vuKeepChars(LOC:Peso,LOC:Chars)

! Listo, el peso esta en la variable LOC:Cantidad


Espero que te sirva este ejemplo

Saludos


Arriba
 Perfil Email  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 10 mensajes ] 

Todos los horarios son UTC


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Saltar a:  
cron
Powered by phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com