• Domingo 22 de Diciembre de 2024, 02:13

Mostrar Mensajes

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 - edurne

Páginas: 1 [2]
26
Microcontroladores / Iniciándome A La Fuerza En Los Pics
« en: Jueves 24 de Febrero de 2005, 16:04 »
Hola a todos!!!

Lo primero de todo, presentarme, soy Edurne, y creo que nos vamos a ver mucho por aquí a partir de ahora!! Estoy empezando mi proyecto fin de carrera y tengo que utilizar un pic. Aún no tengo claro si utilizaré el 16f873 o el 16f877, porque estamos simplificando las cosas todavía...

Vamos a tener que controlar unas cuantas cosillas con el pic, y leyendo vuestras discusiones parece que hasta puede llegar a ser divertido programarlos, pero no las tengo todas conmigo. Sí, sé lo que es un Pic, y sé que vale para infinidad de cosas, pero pocos conocimientos más.

Hemos decidido mi compañera y yo que vamos a programarlo en C, ya que en ensamblador nos parece una locura todavía mayor. Allá van algunas preguntas, a ver si alguno de vosotros me puede ayudar!

Lo primero.... tengo las hojas de características de mi pic (218 páginas!!!! jejeje) y la verdad, es que no tengo nada claro por dónde cogerlo. Ya sabemos más o menos qué es lo que queremos que haga nuestro diseño, y más o menos tenemos también el diagrama de flujos bastante claro. Pero es hora de ponerse a programar y no sabemos por dónde.

Tenemos conocimiéntos muy básicos de programación en C, y hemos bajado también el manual en castellano de programación de pic en C (CPPS puede ser?? ahora mismo no lo tengo a mano). El caso es que veo que hablais de módulos, y un montón de cosas. La idea que yo tenía era de: inicializar variables, habilitar registros, declarar funciones, y un void main. Pero eso de los módulos... cómo funciona?? os referís a las aplicaciones específicas de los pic... como convertidores, entradas analógicas, timers.....??? Aquí es donde me pierdo un poco.

Siguiendo los consejos que habeis dado aquí algunos de vosotros, vamos a utilizar un DS1307 para visualizar calendario y reloj... espero que seamos capaces. Pero veo que se utiliza por el puerto serie I2C...una pregunta que me viene a la cabeza es.... el cristal que se pone a este integrado es el mismo que se le pone al pic???

Y básicamente es esto... os agradecería si me pudiérais introducir un poco en vuestro mundo, el cuál me gusta... pero asusta también.

Siento si os he aburrido mucho, pero era necesario haceros esta introducción, a partir de ahora prometo ser más breve!!!!  :P  

Muchísimas gracias a todos!!!!
Edurne.

27
C/C++ / Cómo Desplazar Un Número
« en: Jueves 24 de Febrero de 2005, 11:11 »
Hola a todos!!! soy nueva en este foro, y en la programación en general. Esto manejando el lenguaje Python, pero hay poca gente que colabora en sus foros. Tengo un problemilla y me consta que en C se maneja muy parecido si no es exactamente igual. Mi problema es que quiero hacer una cadena que ocupe un número determinado de bytes, para lo que la almaceno mediante char, el problema es que a la hora de representar por ejemplo el int 5420, lógicamente no puedo hacerlo con un solo caracter. Pero no sé cómo hacerlo!!! esto es lo que tengo puesto:

challenge_value='%c%c%c%c%c%c' % (whrandom.randint(0, 255),whrandom.randint(0, 255),whrandom.randint(0, 255),whrandom.randint(0, 255),whrandom.randint(0, 255),whrandom.randint(0, 255))
name ='servidor'
length=11+len_name
lengthb = length >> 16
challenge='%c%c%c%c%c%' %(1,id,length,lengthb,len(challenge_value))+challenge_value+name

lo que quiero es: primero crear un número aleatorio que puede tener hasta 6 cifras como entero, así que pongo seis char y asigno a cada uno un número aleatorio. Hasta aquí perfecto. El nombre es fijo, siempre 'servidor' con lo cual, al ser ya una cadena, no me da problemas. Pero la madre del cordero llega con la longitud. En este caso es fija porque name es un valor fijo, como acabo de decir, pero en mi programa 'name' puede variar, con lo cual la longitud puede variar, y tiene que ocupar 2 bytes como máximo.
Este código no funciona, me dice al ejecutarlo, que a %c solo puedo asignarle int y char, y eso  ya lo sé, pero no encuentro el fallo!!!

Os agradecería mucho si pudiérais ayudarme, estoy atascada y no puedo continuar.

Gracias otra vez!!!

28
Python / Os Estoy Mareando, Pero Lo Voy Consiguiendo
« en: Jueves 17 de Febrero de 2005, 11:38 »
Hola a todos, ya quedó atrás mi necesidad de la instrucción de las mayúsculas, ya que no era imprescindible para que funcionara mi servidor. Sería interesante, pero no absolutamente necesario. Ahora estoy encriptando el programilla con CHAP y ésto me ha llevado a manejar md5. La verdad es que estoy bastante perdida, y con las librerías de la página de python no me aclaro demasiado. También he conseguido unas hojas de explicación del protocolo CHAP pero no termina de aclararme bien cómo funcionan estas cosas.
Sí, soy lo más novato del mundo mundial, pero poco a poco voy tirandillo, jejeje. Si alguien conoce algún manual o algo que explique md5 para tontos.... se lo agradecería eternamente.

Muchas gracias a todos.
Edurne.

29
Python / Conseguí Hacer El Servidor!!!
« en: Miércoles 16 de Febrero de 2005, 09:17 »
Hola a todos! ya conseguí hacer mi servidor. Me costó, pero finalmente...lo hice. Ahora ando con algo parecido, pero más sencillo. Me ha surgido una duda, no encuentro por ningún sitio la instrucción que me interesaría. Os comento;

tengo que capturar un nombre, o contraseña o lo que sea, vamos, una cadena de caracteres, y quiero que solo sean letras mayúsculas de la a A a la Z o números, y no sé cómo ponerlo. Conocéis alguna instrucción que sea algo así?:
         for caracter in nombre_introducido:
               if caracter in (una lista o algo así de caracteres prohibidos):
                      print 'error'
               else:
                      ...
                      ...

o algo así:
         for caracter in nombre_introducido:
               if caracter != (.....):                


Lo que me gustaría saber es eso, cómo indicar que si el carácter es distinto a mayúsculas o números, que me dé mensaje de error. Había pensado en hacerlo comparando el caracter introducido con el mismo convertido a mayúscula, para que si coinciden esté bien y si no mal, pero resulta que caracteres como el guión bajo, comillas, etc.... son iguales en mayúsculas que minúsculas, por lo que ya no me vale.

Os agradecería mucho que me respondiérais y me diérais alguna pista.

30
Python / Ayuda Con El Servidor
« en: Jueves 3 de Febrero de 2005, 10:26 »
Esto es una locura para mi!!! sigo atascada haciendo el servidor. Soy la novata por excelencia!!! estoy probando con distintos códigos, intentando hacer cosillas, pero es imposible. Ande meto  la instrucción Thread(gropu=None, target=None, name=None, args=(), kwargs={})????? qué hago con el target???
Los manuales no me dicen nada, estoy empezando a odiar esto!!!!
Esto es lo que tengo:

import SocketServer
import thread
import threading

class BaseRequestHandler(SocketServer.BaseRequestHandler):
   def handle(self):
      print 'la direccion del cliente es:', self.client_address
      print 'el servidor al que se ha conectado es:', self.server
      print self.request
      fichero=open('servidor.txt', 'w')
      self.request.send('ehlo\n')
      fichero.write('ehlo\n')
      b=self.request.recv(128)      
      fichero.write(B)
      fichero.close()
      print'el contenido de la conversaci�n con el servidor es:'
      fichero=open('servidor.txt', 'r')
      for line in fichero.readlines():
         print line
      fichero.close()   

class Threading(threading.Thread):
   def __init__(self):
      threading.Thread.__init__(self)      
   def run(self):      
      print 'el nombre del thread1 es:', thread1.getName()
      print 'el nombre del thread2 es:', thread2.getName()
      print 'el nombre del thread3 es:', thread3.getName()
      print 'el nombre del thread4 es:', thread4.getName()
      print 'threading active count:', threading.activeCount()
      print "the thread1's daemon flag is:", thread1.isDaemon()
      print "the thread2's daemon flag is:", thread2.isDaemon()
      print "the thread3's daemon flag is:", thread3.isDaemon()
      print "the thread4's daemon flag is:", thread4.isDaemon()
      print 'el thread1 esta:1 vivo, 0 muerto -->', thread1.isAlive()
      print 'el thread2 esta:1 vivo, 0 muerto -->', thread2.isAlive()         
      print 'el thread3 esta:1 vivo, 0 muerto -->', thread3.isAlive()
      print 'el thread4 esta:1 vivo, 0 muerto -->', thread4.isAlive()
while 1:
   thread1=Threading()   
   thread2=Threading()   
   thread3=Threading()   
   thread4=Threading()
   thread1.start()
   thread2.start()
   thread3.start()
   thread4.start()
   thread1.join()
   thread2.join()   
   thread3.join()   
   thread4.join()
   server=SocketServer.TCPServer(('',2222), BaseRequestHandler)
   server.serve_forever()

y esto es lo que sale nada más importar el módulo:
el nombre del thread1 es: Thread-15
el nombre del thread2 es: Thread-16
el nombre del thread3 es: Thread-17
el nombre del thread4 es: Thread-18
threading active count: 5
the thread1's daemon flag is: 0
the thread2's daemon flag is: 0
the thread3's daemon flag is: 0
the thread4's daemon flag is: 0
el thread1 esta:1 vivo, 0 muerto --> 1
el thread2 esta:1 vivo, 0 muerto --> 1
el thread3 esta:1 vivo, 0 muerto --> 1
el thread4 esta:1 vivo, 0 muerto --> 1
el nombre del thread1 es: Thread-15
el nombre del thread2 es: Thread-16
el nombre del thread3 es: Thread-17
el nombre del thread4 es: Thread-18
threading active count: 4
the thread1's daemon flag is: 0
the thread2's daemon flag is: 0
the thread3's daemon flag is: 0
the thread4's daemon flag is: 0
el thread1 esta:1 vivo, 0 muerto --> 0
el thread2 esta:1 vivo, 0 muerto --> 1
el thread3 esta:1 vivo, 0 muerto --> 1
el thread4 esta:1 vivo, 0 muerto --> 1
el nombre del thread1 es: Thread-15
el nombre del thread2 es: Thread-16
el nombre del thread3 es: Thread-17
el nombre del thread4 es: Thread-18
threading active count: 3
the thread1's daemon flag is: 0
the thread2's daemon flag is: 0
the thread3's daemon flag is: 0
the thread4's daemon flag is: 0
el thread1 esta:1 vivo, 0 muerto --> 0
el thread2 esta:1 vivo, 0 muerto --> 0
el thread3 esta:1 vivo, 0 muerto --> 1
el thread4 esta:1 vivo, 0 muerto --> 1
el nombre del thread1 es: Thread-15
el nombre del thread2 es: Thread-16
el nombre del thread3 es: Thread-17
el nombre del thread4 es: Thread-18
threading active count: 2
the thread1's daemon flag is: 0
the thread2's daemon flag is: 0
the thread3's daemon flag is: 0
the thread4's daemon flag is: 0
el thread1 esta:1 vivo, 0 muerto --> 0
el thread2 esta:1 vivo, 0 muerto --> 0
el thread3 esta:1 vivo, 0 muerto --> 0
el thread4 esta:1 vivo, 0 muerto --> 1



y luego, cuando me conecto al supuesto servidor, solo me sale esto:

la direccion del cliente es: ('127.0.0.1', 39561)
el servidor al que se ha conectado es: <SocketServer.TCPServer instance at 0x81155ac>
<socket object, fd=15, family=2, type=1, protocol=0>
el contenido de la conversación con el servidor es:
ehlo

ehlo

 y yo lo que quiero es: que pueda conectarme de varios sitios a la vez. Se supone que para eso se usan los threads, no????
Voy a mandar este lenguaje y la informática en general a la..........Qué horror!
Una ayudita, por favor....
Mil gracias, Edurne.

31
Python / El Servidor Conecta, Pero No El Threading
« en: Viernes 28 de Enero de 2005, 09:33 »
Hola a todos! aunque os pueda parecer mentira... parece que voy consiguiendo algo con el servidor. Ya se conecta, pero ahora el problema es que quiero que acepte varias conexiones a la vez. Sí, se que se hace con el threading, pero tampoco encuentro ningún sitio donde lo expliquen bien, soy yo o no hay manuales tan claros para principiantes como yo??? Mi duda es sencilla: en un manual creí entender que para crear un hilo se utiliza:
        thread(group=None, target=None, name=None, args=(), kwargs={})
y que luego se utilizan el run, start, y el resto de instrucciones. Pero es que en otro manual, me pareció entender que esa línea de código se utiliza para definir la clase!! y me perdí. Al final, buscando ejemplos como una loca encontré un par de cosillas, pero sigo sin saber dónde poner esa linea de código.
También me pareció entender que target tiene que tener el nombre de aquella acción que quiero que se ejecute, esto es asi? tengo que definir primero la acción en algún sitio y luego nombrarla en el target, o directamente se redefine run y ahí es donde describo las acciones que quiero que haga??
Muchas gracias por vuestra atención al menos!! Un saludo desde Bilbao.
Adjunto el código que tengo escrito por el momento. Está mal seguro porque no me imprime en pantalla nada de los threads, así que.... seguiré probando cosillas hasta que esto funcione.

32
Python / El Servidor Conecta, Pero No El Threading
« en: Viernes 28 de Enero de 2005, 09:32 »
Hola a todos! aunque os pueda parecer mentira... parece que voy consiguiendo algo con el servidor. Ya se conecta, pero ahora el problema es que quiero que acepte varias conexiones a la vez. Sí, se que se hace con el threading, pero tampoco encuentro ningún sitio donde lo expliquen bien, soy yo o no hay manuales tan claros para principiantes como yo??? Mi duda es sencilla: en un manual creí entender que para crear un hilo se utiliza:
        thread(group=None, target=None, name=None, args=(), kwargs={})
y que luego se utilizan el run, start, y el resto de instrucciones. Pero es que en otro manual, me pareció entender que esa línea de código se utiliza para definir la clase!! y me perdí. Al final, buscando ejemplos como una loca encontré un par de cosillas, pero sigo sin saber dónde poner esa linea de código.
También me pareció entender que target tiene que tener el nombre de aquella acción que quiero que se ejecute, esto es asi? tengo que definir primero la acción en algún sitio y luego nombrarla en el target, o directamente se redefine run y ahí es donde describo las acciones que quiero que haga??
Muchas gracias por vuestra atención al menos!! Un saludo desde Bilbao.
Adjunto el código que tengo escrito por el momento. Está mal seguro porque no me imprime en pantalla nada de los threads, así que.... seguiré probando cosillas hasta que esto funcione.

33
Python / Solo Un Poco De Ayuda Con Este Mensaje
« en: Lunes 24 de Enero de 2005, 10:41 »
Cómo interpreto los mensajes de error de python2.0?? qué quieren decir estos mensajes, que tengo que definir en mi programa todo esto?

Si yo hago un servidor así:

from socket import *
>>> so=socket(AF_INET, SOCK_STREAM)
>>> so.bind(('', 1051))
>>> so.listen(5)
>>> cliente, direccion=so.accept()

entonces, se queda esperando una conexión. Sin embargo, para hacer lo mismo con SocketServer he puesto:

import SocketServer
class BaseRequestHandler:
   def handle(self):
      self.request()
      cliente=self.client_address
      print self.server
serv=SocketServer.TCPServer(('', 1055), BaseRequestHandler)
serv.serve_forever()
print cliente
cliente.send('ehlo edurne')
cliente.recv(128)

Sé que estará mal, pero es que no entiendo cómo usar las clases. La cuestión es que al conectarme como cliente me sale el siguiente mensaje y me gustaría interpretarlo por mi misma. Podriais darme alguna pista?



Exception happened during processing of request from ('127.0.0.1', 32899)
Traceback (most recent call last):
  File "/usr/lib/python2.1/SocketServer.py", line 221, in handle_request
    self.process_request(request, client_address)
  File "/usr/lib/python2.1/SocketServer.py", line 240, in process_request
    self.finish_request(request, client_address)
  File "/usr/lib/python2.1/SocketServer.py", line 253, in finish_request
    self.RequestHandlerClass(request, client_address, self)
TypeError: this constructor takes no arguments


Muchas gracias.

34
Python / Manejo De Sockets
« en: Lunes 24 de Enero de 2005, 10:19 »
Muchas gracias por la respuesta. El problema es que ya estoy intentando manejar los manuales pero no me aclaran mucho las cosas. Sé que puedo hacer un servidor super sencillo, escuchar como quien dice, con las instrucciones socket.bind, socket.listen y socket.accept, pero cuando veo ejemplos usan las instrucciones de SocketServer y las clases, y no termino de entender por qué las usan de esa manera o por qué las definen como lo hacen. Sé que son para aceptar, por ejemplo, varias peticiones a la vez, pero no encuentro en ningún manual las especificaciones de cada instrucción y me estoy volviendo loca.
Si alguien sabe por favor dónde puedo encontrar información detallada de las clases, o ejemplos explicados, os lo agradecería etername.
Muchas gracias.
Edurne.

35
Python / Servidor
« en: Jueves 20 de Enero de 2005, 15:54 »
Hola, soy nueva en python, de hecho, soy nueva en la programación en general, pero tengo que logar hacer un servidor con este lenguaje. Sé que las instrucciones son las de socket y SocketServer, pero no entiendo muy bien cómo, cuáles y para qué utilizar cada una de ellas, o dónde encontrar un manual que lo explique claramente. Os agradecería mucho si pudiérais explicarme a groso modo cuál es la diferencia entre BaseRequest, MyRequest.... y cómo se utilizan. ¿Por qué no puedo hacer un servidor simplemente con socket.bind, socket.listen y socket.accept? (solo aplicado a TCP).Como véis, yo sí que soy novatas, y de las de verdad!!!muchas gracias por todo.

Páginas: 1 [2]