|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - sirespi
26
« en: Domingo 14 de Noviembre de 2004, 21:48 »
Buenas a todos.
Aver os comento una cosilla. Tengo una aplicacion que lela un contador cada que recibo datos por elpuerto serie. COmo esta aplicacion , en teoria, se debe de tirar funcionando hasta varios dias, tengo el siguiente problema.
El contador es una variable tipo long, y cada vez qeu recibo un dato por el puerto serie, lo aumento en uno. El problema esta en que llegara un momento en qeu supere el valor tope (2147483647) y entonces me dara un mensaje de desbordamiento. Me han dicho que hay algo llamado lista (nunca llegue a verlas en c++) que me puede solucionar el tema
Alguien sabe com ova esto. Es facil o requiere mucho codigo???
Un saludo y gracias
27
« en: Domingo 14 de Noviembre de 2004, 21:38 »
Muy buenas.
Mmmm a ver, respecto al PIC no tengo mucha idea. Realmente mi proyecto consta de 3. Un compañero diseña una tarjeta de adquisicion de datos, otro usa el micro, que recoge los datos del primero y me lo envia a mi, qeu soy el tercero y que me encargo de desarrollar la aplicacion software. Lo que puedo hacer si quieres es preguntarle a este hombre que micro es el qeu usamos. EL martes tengo que pasar por la uni para ultimar los detalles, que espero presentar el proyecto a principios de diciembre, asi que si puedes intenta mandarme un post antes del martes con lo qeu necesitas saber y se lo pregunto. Si es a nivel software dimelo y yo investigo, si es a nivel hardware, ya te digo, preguntame y el martes yo se lo pregunto.
28
« en: Sábado 6 de Noviembre de 2004, 15:32 »
Aver, vayamos por parte.
- Para Scorpion25. La verdad que en lo de enviar archivos entero por el puerto seri eme pillas. No obstante algo lei de como configurar el puerto serie como si se tratara de un modem, por lo que creo qeu es posible. Igual se puede hacer como dice Brroz, que lo que hagas es acceder al fichero e ir enviando su contenido segun lo vas leyendo y a la vez se va escribiendo en la maquina de destino. LA verdad, esto no lo he probado, tendria que verlo, si encuentro algo os lo digo, pero en principio seria buscar informacion sobre lo que ha planteado brroz.
- Para dannyhar.
Si no he entendido mal, lo que tu realmente tiene qeu hacer en tu aplicacion es recibir datos por el puerto serie.
Veamos, enviar es sumamente facil, tan solo tienes qeu definir una variable tipo byte y utilizar el mscomm.output. Creo qeu lo explique mas arriba. Si por ejemplo quieres enviar el numero binario 1010, este numero en decimal corresponde al 10, por lo tanto, tu variable tipo byte la pones a valor 10 y cuando la mandes, lo que realmente mandas sera la secuencia 1010.
Para recibir, tienes que usar la propiedad OnComm y despues seleccionar el commEvent. Es muy facil. TE coger una variable tipo byte y en ellas metes el buffer de entrada. por ejmplo
Private Sub MSComm1_OnComm() Dim Rec() As Byte Select Case MSComm1.CommEvent Case MSCOMM_EV_RECEIVE Rec() = MSComm1.Input en esa variable ya tienes lo qeu recoges del puerto serie y luego puedes utilizarla como tu quieras .
No se si esto te valdara de ayuda.
Mirate el ejemplo que adjunto, creo que ya lo subi uan vez. Metete en el codigo y repasalo, veras qeu es muy sencillo. Lo que no tengo claro es si tu quieres coger lo qeu te llega y ay esta, o si lo que quieres representar en tu programa es si te llegan 0 y 1 y en el caso de qeu te lleguen 0 poner un cero, y si te llegan 1 poner un 8.
De momento haz lo que te digo de recibir. Despues, si lo logras, orta cosa que se puede hacer es la siguiente. A ti te llegara a tu variable tipo byte un numero decimal. Pasas ese numero de decimal a binario con una funcion (si no sabes hacerla yo ya la tengo hecha). es decir, suponte que te envian la secuencia 1010 igual que antes, pero ahora te la envian a ti, no la envias tu. En tu variable byte del evento de recepcion tu recibes un numero, el 10, con lo cual no puedes saber si son 0 o 1, 0 v u 9v. Pues pasas el 10 a binario, es decir, 1010, y a aprtir de ahi te mueves pos la cadena de 0 y 1 y sabes si recibes 0 voltios u 8 voltios.
No se si te he podido ayudar o no pero en cualquier caso, dime lo qeu sea y si hace falta me escribes en una hoja todo detallado lo qeu necesitas y lo miramos mas profundamente. Un saludo.
29
« en: Jueves 4 de Noviembre de 2004, 22:17 »
Hola dannyhar, tranquilo que todo acaba saliendo, te lo digo yo. Escribeme que es lo quequieres hacer exactamente, que señales salen de tu circuito y como quieras verlas o qeu necesitas hacer con visual basic y si puedo te hecho una mano, que ya veras como sale.
Cuentamelo con pelos y señales y vemos que se puede hacer
30
« en: Sábado 30 de Octubre de 2004, 12:23 »
Mu buenas a todos. A ver, tengo una aplicacion en al que cargo una imagen en un picturebox. En ese formulario tengo un commonfialog para poder imprimirla. EL caso es qeu el dialogo de imprimir me lo muestra bien,si le doy a imprimir me lo imprime, pero..... si le doy a cancelar tambien, jejejeje
COmo resulevo esto?? este es el codigo, es pequeñito
Public Sub Imprimir() Dim var As String var = Label1.Caption On Error Resume Next
With dlgCommonDialog .DialogTitle = "Print" .CancelError = True .Flags = cdlPDReturnDC + cdlPDNoPageNums .Orientation = cdlLandscape .ShowPrinter Printer.Print var Printer.PaintPicture Picture1.Image, 0, 200 Printer.EndDoc End With End Sub
A ver si alguien me echa una manilla. Ciao
31
« en: Sábado 30 de Octubre de 2004, 12:19 »
En la parte de abajo del foro, donde pone buscar coloca la palabra camara o webcam y te saldarn los post que tengan esa palabra dentro
32
« en: Miércoles 27 de Octubre de 2004, 20:10 »
Si te das cuentas, en el evento OnComm del puerto serie hay un select case. Para eso sirven las lineas que dies mas arriba. El evento recibir le asignas el 2, el evento mandar el 1 y el resto son otros eventos, que si error en el envio, activacion de un flag de no se que, etc etc, eso es ya mucho mas especifico no creo que te haga falta. Respecto a lo de la WebCam no se como hacerlo, pero en este foro he buscado y hay varios post que dicen como hacerlo, echalos un vistazo
33
« en: Martes 19 de Octubre de 2004, 23:44 »
A ver, esto debe de ser una autentica chorrada, pero no doy con ello. JEJEJEJ
Tengo mi aplicacion, echa con el wizard, y por lo tanto ella me ha creado el menu principal. Yo he añaido botones, par ahcer cosas. Bueno pues quiero que por ejemplo, si seleccion una cosa, uno de los botones del menu se deshabilite. Igualque haria con el editor de menus.
POr ejmplo, cuando hago algo, le digo:
frmMain.nombredelboton.enable=false y me dice que no se puede hacer en un formulario MDI.
COmo narices lo puedo quitar, tan dificil no debe ser
Un saludo y gracias a todos.
34
« en: Martes 19 de Octubre de 2004, 23:25 »
MMMM a ver, no he pillado muy bien tu pregunta, pero es qeu acabo de llegar de curra ry estoy reventado. En el text tu has de poner un numero entre 0 y 255, ya que luego es lo que le pasas por el puerto serie y si se sale de ahi, pos casca. Tambien puedes poner una letra o simbolo cualquiera y con la funcion Chr(numero que sea) el ya coge el valor. Por ejemplo si le metes una a, te pone el 97 (creo que es el 97 , en cualquier, el numero que le corresponde). Lo que no puedes hacer es ponerle el numero en binario.
Bueno si, lo puedes poner, hacer una funcion intermedia que te pase ese numero binario a decimal, y luego ese numero decimal ponerlo en el puerto. Es bastante sencillo, si no te sale una funcion para pasar de binario a decimal me lo dices y te la mando.
Respecto al cable, yo uso un cable null modem. En cualquier tienda de electronica lo tienes. Solo tienes que decir que es un cable para conectar dos puertos serie, por ejemplo los dos del ordena para hacer prueba en transmision entre ellos.
Espero haber ayudado. Un saludo.
35
« en: Sábado 16 de Octubre de 2004, 21:19 »
Mmmmm. A ver.
Anderea, de bases de datos, nada de nada. En eso estoy pez total. Con eso me pondre cuando acabe el PFC, jejej. De todas formas muchas gracias.
Yo habia estado mirando por ahi cosas, y he llegado a la misma conclusion que Cyclops, creo qeu tendre que hacerlo con un ini. Me mirare esa pagina a ver, porque no es facil.
COn el ini puedo guardar todas las preferencia de todos los menus que tengo (preferencia del puerto serie, y otra cosas que tengo), pero los datos que haya en un formulario que tiene dentro una hoja de excel, no se si valdra con eso.
En cualquier caso, le echare un vistazo a la pagina esa.
Muchisimas gracias a los dos.
36
« en: Sábado 16 de Octubre de 2004, 11:26 »
Muy buenas gente.
Ahora si qeu si, juro por dios que si me ayudan en esto, ya no les pregunto nada mas en una temporada, esto ya es lo ultimo para el PFC y si me sale les dejo un temporada en paz (solo un tiempo, que a lo tonto a lo tonto, me he enganchado con el visual basic este).
Vereis, con el wizard del basic una aplicacion con menus etc etc. Yo luego le fui metiendo formularios, mas menus etc.
El caso, es que el tipico menu de Save, Open, etc, me lo creo el , y ahroa quiero hacerlo funcionar y no lo logro.
Esto es lo que el me crea para el Save As
Private Sub mnuFileSaveAs_Click() Dim sFile As String
If ActiveForm Is Nothing Then Exit Sub
With dlgCommonDialog .DialogTitle = "Save As" .CancelError = False 'Pendiente: establecer los indicadores y atributos del control common dialog .Filter = "Todos los archivos (*.*)|*.*" .ShowSave If Len(.FileName) = 0 Then Exit Sub End If sFile = .FileName End With ActiveForm.Caption = sFile ActiveForm.rtfText.SaveFile sFile 'DataForm.Spreadsheet1.SaveFile sFile
End Sub
Pero yo lo que quiero, es que si por ejemplo, en uno de los menus de mi aplicacion tenia un comboboz y de entre todos sus valores, por ejemplo seleccione el tercewro, se lo guarde para que cuando lo vuelva a cargar, no salga el valor por defecto sino el que yo habia seleccionado. Igualmente tengo otros formularios con datos y quiero que esos datos se guarden.
Como puedo hacer esto???
Aunque no me sepais decir como se hace dadme pista o decidem si sabeis de algun sitio en el que me puedan ayudar.
Un saludo y mil gracias
37
« en: Sábado 16 de Octubre de 2004, 10:41 »
Vamos a ver.
Ya se por donde vas.
Te comento varias cosas. Tienes qeu usar el mscomm, la propiedad input mode ha de estar a uno. Para mandar cosas, te tienes que definir una variable tipo byte.
Te pongo un ejemplo.
Siempre se han de mandar de 8 bits en 8 bits , ya que los micros (por lo menos la mayoria) trabajn asi, y el visual igual (esto varia segun algunos S.O. orientales, pero creo que es asi siempre). Es decir, tu vas a recibir y a envair de 8 en ocho. Si quisieras enviar 16, pos no hay problema, simplemente enviaria primero 8 y despues 8.
Vamos a ponernos en el caso facil. Enviar 8 bits. Por ejemplo: 10101010. Vamos a ver, este numero en binario, si lo pasas a decimal, tienes el 170.
Te defines una variable Dim a As byte. Luego dice a=170. y luego mscoom.output=a
De esta forma, al tener la propiedad input mode a 1, lo que de verdad le dices cuando mandas el 170, es mandarle los bits 10101010.
Y lo mismo para recibir.
Te envio un programa, echale un vistazo. Si tienes un cable serie para unir los dos puertos series del ordena, puedes usar los dos programas. Uno envia un byte y el otro lo recive y viceversa.
Echale un vistazo al codigo y veras que es muy sencillo
Espero qeu te sirva de ayuda
38
« en: Viernes 15 de Octubre de 2004, 16:56 »
perdona por no responder antes, pero estoy de curro hasta las cejas, y ademas tengo el proyecto fin de carrera. Esta noche cuando llegue a casa miro lo que dices yte digo como se puede hacer. Un saludo
39
« en: Lunes 11 de Octubre de 2004, 23:38 »
A ver te comento.
Primero de todo, necesitas usar el componente MScomm, que es el de puerto serie. Te metes en componentes, lo buscasy lo pones en el formulario. Esto es muy facil
Seguidamente, configra el puerto. POr ejemplo, en el evento on load del formualrio, pon lo siguiente.
MSComm.Commport=1 para usar el puerto 1. MSComm.Settings="4800, n, 8,1" con esto configuras el puerto a 4800 baudios, paridad nula, 8 bits de parada y uno de stop, esto lo puedes poner como quieras.
MSComm.portopen=true con esto abres finalmente el puerto.
Despues necesitas definir una variable tipo byte
Dim enviar(1) as byte si solo vas a enviar uno
La variable byte son tus 8 bits en decimal. Me explico. Si quieres enviar 11111111, lo que tiene que poner es un 255
enviar(0)=255 MSComm.output=enviar
Y con eso lo envias.
Recibir es pelin mas complejo, necesitas usar el evento oncomm y agregar un modulo, ademas de tocar las propiedades del puerto para que salten esos eventos, ya que por defecto vienen a 0.
Ahora mismo es que acabo de llegar de currar despues de 14 horas, pero si me dices exactamente lo que quieres hacer, yo te hago dos programas, uno qeu envia y otro que recibe, en eso tardo un periquete.
Un saludo.
40
« en: Lunes 11 de Octubre de 2004, 23:30 »
Muchisimas gracias Seek20, funciono a la perfeccion.
Una cosa mas que ya se. Mil gracias
41
« en: Miércoles 6 de Octubre de 2004, 20:26 »
Muchisisisissimas gracias.
Aun no lo he probado, y hasta el fin de semana no creo que pueda (este curro es al ostia), pero por lo que he leido tiene toda la logica lo que dices. Este fin de lo pruebo y te digo a ver.
Muchas gracias.
42
« en: Martes 5 de Octubre de 2004, 13:40 »
Muy buenas a todos.
A ver, esto ya es para que la aplicacion que estoy haciendo quede chachi del todo.
Resulta que uno de mis formularios lo uso como dialogo para introducir la condiguracion del puerto serie. Es decir, tengo varios combo box, y cada uno de ellos para una cosa, la paridad, la velocidad, et etc, de tal forma que si algun dia quiero cambiar la velocidad de transmision del programa o el puerto que usa por defecto, no tendria mas que venirme a este dialogo y configurarlo como quiera.
El problema esta en que, si por ejemplo, selecciono en un combobox una de las velocidades, por ejempoo, 19200 baudios y la guardo en la variable "speed",cuando luego pongo mscomm1.settings="speed,8,n,1", pues me dice que no vale, que no puedo poner speed. Luego entonces o dejo la propiedad settings fijada y entonces no puedo hacer cambios o nada
Alguien sabe como puedo hacer un dialogo y pasarle los parametros que yo elijo al settings del puerto serie?????
Un saludo y muchas gracias.
43
« en: Martes 28 de Septiembre de 2004, 23:13 »
BUenas a todos.
Pues vereis, despues de vuestras multiples ayudas, ya tengo lista GUI que estoy desarrollando como PFC en la Universidad.
Hoy era el gran dia en el que por fin, ibamos a hacer las prueba de comuicacion entre mi GUI y el micro que va a llear un robot. Pues bien, como toda buena primera prueba que se precie ha sido........... un desastre total. No nos hemos logrado comunicar ni para tras.
Tras mucho rato, hemos descubierto, poniendo en el codigo todos los errores del objeto mscomm(solo tenia en send y el receive), que el problema que da es el err_frame, error 1004, es decir error de trama. Segun he leido en algunos sitios esto quiere decir que se ha detectado un error de hardware, pero no tenog ni idea de a que se refiere con esto. No se si es porque no sincronizamos , porqueno nos entendemos o que. El pic es uno normal un 18 algo, un poco moderno pero como los 17 de toda la vida para hacer comunicaciones serie.
En fin, si alguien sabe algo de lo que significa este error, que me lo comente. Muchas gracias a todos de nuevo.
P.D: Manda cojones que no tenga tiempo ni para mirarme al espejo, que estoy todo el santo dia currando en telefonica o en la universidad y que para mas inri el error que me da el puto programa tenga asociado el numero 1004. Hay dias que es mejor no levantarse.
44
« en: Lunes 27 de Septiembre de 2004, 07:57 »
Genial cpmario. Colosal. Mu profesional. La verdad, y no es porque lo este haciendo yo, pero me esta quedando una GUI la mar de maja. Jejeje, todo hay que decirlo, sin la ayuda de este foro habria sido imposible. Prometo que ya queda poco y no dare mas el coñazo. Jejejeje, ademas, os incluire a todo el foro en la memoria de proyecto. Ademas, si no me ponen la matricula, me acompañais a reclamar en masa.
En serio, mucha gracias, la cosa esta mu maja y me estais ayudando mazo. Saludos.
45
« en: Domingo 26 de Septiembre de 2004, 11:14 »
Muy buenas.
Aver, una nueva preguntita. Para la aplicacion que estoy desarrollando, estoy haciendo un pequeño log que se puede ver en un textobs dentro de un form. Ya he logrado que a medida que voy seleccionando cosas de la aplicacion, en el textobx me va reflejando lo qu ehe hecho. El tema esta en que este texbox, tiene un tamaño pequeñito, por lo que he tenido qeu ponerle un scrollbar vertical. El problema esta en que cuando empieza a actuar el scroollbar, la barrra se me queda arriba, y para poder ver lo ultimo que ha salido en el log, tengo que irme y desplazar la barra para abajo. Hay alguna forma de decirle que la barra de desplazamiento vertical se quede siempre abajo???.
Para que os hagais una idea, asi es como hago el log.
texto = texto + Str(Now) + " Program Started" & vbCrLf texto = texto + Str(Now) + " Tip: Select Specimen Type" & vbCrLf Text1.Text = texto.
Cuando llevo varias lineas (mas de las del ejemplo) en el log me pone lo ultimo que he hecho, pero se me queda arriba y tengo qeu desplzar la barra
En fin no se si me he expresado bien. Alquien que me haya entendido me puede echar una mano??
Gracias. Saludos
46
« en: Jueves 16 de Septiembre de 2004, 07:50 »
Confirmado.
Funciona a las mil maravillas. Ahoar voy a ver como hago para meterlo dentro de mi aplicacion y que comienze a transmitir el puerto serie cuando yo le diga y que pare cuando se lo diga.
Mil gracias.
47
« en: Miércoles 15 de Septiembre de 2004, 19:56 »
Mil gracias DiabloRojo.
Ni te puedes imaginar loque te loagradezco. He entrado a currar hoy a las 7:30 y acabo de mirar la pagina ahora que teng un ratin libre. Esta noche cuando llegue a casa probare tu codigo, pero no me cabe duda de qeu funcionara a la perfeccion. Muchisimas gracias por todo, me has ayudado un monton.
Saludos.
48
« en: Martes 14 de Septiembre de 2004, 16:12 »
Muy buenas.
A ver, para variar tengo una dudilla que me corroe y com de constumbre recurro al foro. A ver si alguien conoce los OWC12. Office XP web components. Para el que no los conozca, con este componente puedes meter directamente en un form una tabla de excel (spreadsheet) y con los datos de ella, dibujar graficas (chartspace)
Veamos, mi problema es el siguiente. Por el puerto serie de mi aplicacion me lelgan datos, que yo voy metiendo en columnas de mi spreadsheet, una digamos para el eje de las x y otra para el de las Y. Mi chartspace usa como origen de los datos esta spreadsheet y em dibuja la grafica que yo quiera dibujar.
Hasta auqi todo muy bonito. Pero resulta que tengo que imprimir tanto al tabla de excel como el grafico, y no hay manera, he probado de todas las maneras. ME vale incluso con imprimir todo el formulario, pero resulta, que del formulario me impirmer todo, textos, botones, cualquier control que tenga puesto menos estos dos. EL caso es que con los office web componenes, usease el OEC9, le dices que imprima el formulario y lo hace, con todo dentro, tanto al tabla como la grafica, pero con este no hay manera.
Alguno habeis trabajado con estos componente y sabeis como hacerlo?? o que puedo hacer para de alguna manera poder imprimirlos??
Un saludo a todos y gracias de antemano.
49
« en: Martes 14 de Septiembre de 2004, 15:56 »
Muchas gracias a los dos.
Diablo Rojo las ideas estan de p.m. Lo malo es que tengo el tiempo justo justo, oprque esto es para el PFC y entre que el tio lo quiere tener rapido para su tesis y que no tengo tiempo con el curro pues ya ves. SI a eso juntamos que no tengo ni papa de bases de datos, pues como veis voy apañao. EN cualquier caso con lo que me habeis dicho los dos este fin de semana cuando tenga algo de tiempo intentare hacerlo.
Solo una preguntilla mas. EN el codigo que has puesto, diablo rojo, el mira si la la hora actual esta entre las dos, al de inicio y fin y si lo esta hace el beep. COo hago para que esto lo haga continuamente, no solo una vez. Un do while bastaria???.
Bueno, lo dicho, muchas gracias a los dos, que a este paso voy a tener que meter al foro de solocodigo en la referencia y agradecimientos del proyecto, jejeje que seria de mi sin vosotros.
P.D. jejej, y ahora tengo otra duda que te cagas, pero esa va en otro post. Un saludo.
50
« en: Lunes 13 de Septiembre de 2004, 09:55 »
Hola ebolo muchas gracias.
Sin embargo no consigo dar con ello. Creo qeu me falla la estructura del programa, vamos qeu a pesar de saber com ousar una variable date y una time, no se como puedo hacer para que ejecute algo a partir de una fecha que yo le introduzca. Podrias ponerme un ejemplo o decirme donde puedo encontrar alguno??.
Muchas gracias.
|
|
|