Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ¨°o.O (ßa¢Kg|姧) O.o°

#1
Programación C/C++ / Inicializar LCD (Linux)
16 Julio 2010, 16:17 PM
Hola a todos,

Estoy usando un powertip pc1602f directamente conectado al puerto paralelo del pc utilizando el esquema este:
http://www.beyondlogic.org/parlcd/parlcd.htm

Todo bien lo energizo el lcd y me muestra la primera fila con bloques negros, hasta ahí bien pero ahora quiero mandar información por el puerto paralelo.

Si mirais la página vereis que hay un código fuente para mandar información al lcd, pero usa librerias de windows  :huh:

Dejo mi código intentado convertido en linux.


#include <stdio.h>   
#include <string.h> 
#include <unistd.h> 
#include <fcntl.h>   
#include <errno.h>   
#include <termios.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/io.h>
#define PORTADDRESS 0x3f8
#define DATA PORTADDRESS+0
#define STATUS PORTADDRESS+1
#define CONTROL PORTADDRESS+2

main(int argc, char **argv)
{char string[] = {"Testing 1,2,3"};

    int count;
    int len;

    char init[10];
    init[0] = 0x0F; /* Init Display */
    init[1] = 0x01; /* Clear Display */
    init[2] = 0x38; /* Dual Line / 8 Bits */

    if (ioperm(PORTADDRESS,1,1))
        fprintf(stderr, "No se puede acceder al: %x\n", PORTADDRESS), exit(1);

    outb(CONTROL, inb(CONTROL) & 0xDF);
    outb(CONTROL, inb(CONTROL) & 0x08);


    for (count = 0; count <= 2; count++)
    {

        outb(DATA, init[count]);
        outb(CONTROL,inb(CONTROL) | 0x01);
        sleep(20);                                 
        outb(CONTROL,inb(CONTROL) & 0xFE);
        sleep(20);                                 
    }
    outb(CONTROL, inb(CONTROL) & 0xF7); 

    len = strlen(string);

    for (count = 0; count < len; count++)
    {
        outb(DATA, string[count]);
        outb(CONTROL,inb(CONTROL) | 0x01);
        sleep(2);
        outb(CONTROL,inb(CONTROL) & 0xFE);
        sleep(2);
    }

}



Compila perfectamente pero cuando lo quiero provar lo ejecuto como root y me arroja esto

Código (bash) [Seleccionar]
root@ubuntu:/media/E80C-30D5/LCD/build# ./lcd
Fallo de segmentación (`core' generado)
root@ubuntu:/media/E80C-30D5/LCD/build#


Mirando el dmesg me encuentro con esto.

Código (bash) [Seleccionar]
[ 3176.691837] lcd[3867] general protection ip:400cb4 sp:7fff887ad290 error:0 in lcd[400000+2000]
root@ubuntu:/media/E80C-30D5/LCD/build#


Dejo el dmesg del ttyS*
Código (bash) [Seleccionar]

root@ubuntu:/media/E80C-30D5/LCD/build# dmesg |grep ttyS
[    2.335717] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    2.335817] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    2.336100] 00:0b: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    2.336207] 00:0c: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
root@ubuntu:/media/E80C-30D5/LCD/build#


PD:És el hilo de http://foro.elhacker.net/electronica/inicializar_lcd_linux-t299539.0.html ; pero puesto aquí haber si me podeis ayudar.


#2
Electrónica / Inicializar LCD (Linux)
14 Julio 2010, 13:26 PM
Hola a todos,

Estoy usando un powertip pc1602f directamente conectado al puerto paralelo del pc utilizando el esquema este:
http://www.beyondlogic.org/parlcd/parlcd.htm

Todo bien lo energizo el lcd y me muestra la primera fila con bloques negros, hasta ahí bien pero ahora quiero mandar información por el puerto paralelo.

Si mirais la página vereis que hay un código fuente para mandar información al lcd, pero usa librerias de windows  :huh:

Dejo mi código intentado convertido en linux.


#include <stdio.h>   
#include <string.h> 
#include <unistd.h> 
#include <fcntl.h>   
#include <errno.h>   
#include <termios.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/io.h>
#define PORTADDRESS 0x3f8
#define DATA PORTADDRESS+0
#define STATUS PORTADDRESS+1
#define CONTROL PORTADDRESS+2

main(int argc, char **argv)
{char string[] = {"Testing 1,2,3"};

    int count;
    int len;

    char init[10];
    init[0] = 0x0F; /* Init Display */
    init[1] = 0x01; /* Clear Display */
    init[2] = 0x38; /* Dual Line / 8 Bits */

    if (ioperm(PORTADDRESS,1,1))
        fprintf(stderr, "No se puede acceder al: %x\n", PORTADDRESS), exit(1);

    outb(CONTROL, inb(CONTROL) & 0xDF);
    outb(CONTROL, inb(CONTROL) & 0x08);


    for (count = 0; count <= 2; count++)
    {

        outb(DATA, init[count]);
        outb(CONTROL,inb(CONTROL) | 0x01);
        sleep(20);                                 
        outb(CONTROL,inb(CONTROL) & 0xFE);
        sleep(20);                                 
    }
    outb(CONTROL, inb(CONTROL) & 0xF7); 

    len = strlen(string);

    for (count = 0; count < len; count++)
    {
        outb(DATA, string[count]);
        outb(CONTROL,inb(CONTROL) | 0x01);
        sleep(2);
        outb(CONTROL,inb(CONTROL) & 0xFE);
        sleep(2);
    }

}



Compila perfectamente pero cuando lo quiero provar lo ejecuto como root y me arroja esto

Código (bash) [Seleccionar]
root@ubuntu:/media/E80C-30D5/LCD/build# ./lcd
Fallo de segmentación (`core' generado)
root@ubuntu:/media/E80C-30D5/LCD/build#


Mirando el dmesg me encuentro con esto.

Código (bash) [Seleccionar]
[ 3176.691837] lcd[3867] general protection ip:400cb4 sp:7fff887ad290 error:0 in lcd[400000+2000]
root@ubuntu:/media/E80C-30D5/LCD/build#


Dejo el dmesg del ttyS*
Código (bash) [Seleccionar]

root@ubuntu:/media/E80C-30D5/LCD/build# dmesg |grep ttyS
[    2.335717] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    2.335817] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    2.336100] 00:0b: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    2.336207] 00:0c: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
root@ubuntu:/media/E80C-30D5/LCD/build#




#3
Hola a todos,

Estoy haciendo un experimento en casa con un lcd powertip pc1602f que me prestaron para imprimir en una pantalla lcd alguna cadena de carácteres
Datasheet: http://www.powertipusa.com/pdf/pc1602f.pdf

Entonces se me plantea un problema y serio porque no se si me he cargado el lcd o no.

Problema:

He soldado los pines que estan hechos en este esquema:
http://www.beyondlogic.org/parlcd/parlcd.htm
Entonces del esquema en el pin del puerto paralelo el 17 que va al pin 4 del lcd no lo he puesto el pin 17 del puerto, lo e puesto al 16, ya que  he visto en 2 páginas que se tenia que conectar aquí:
http://personal.telefonica.terra.es/web/soloelectronicos/reproductor/construccion.htm                 <--- Por el medio o así sale el pinout 
o aqui tambien:
http://electrosofts.com/parallel/lcd.html
Entonces no se si va al 16 o al 17.

Entonces lo e conectado al 16 al pc y me a salido la primera linea del lcd de color como bloques en forma cuadrada solo la primera fila. Eso quiere decir que me lo he cargado?:duda:
Si no me lo he cargado y es porque no le estoy mandando nada por eso sale así
Que tengo que hacer para mandarle información por el com al lcd? hay algun programa hecho ya?

PD: El caso es que en la web  de electrosofts sale que la misma pantalla que ami cuando lo energizo pero dudo ahi en ese pin.
Alguna ayuda?
Muchas gracias por leer.

Saludos.
#4
Scripting / Re: Ordenar array perl y regex
9 Julio 2010, 01:12 AM
Buenas he estado probando el código y con esta página funciona pero con la página web que quiero hacerlo funcionar no funciona:
  Le he añadido  url_abs_regex => pero no lo consigo.

El problema esta en que se muestran todos los enlaces y entonces al haber tantos enlaces por logica se acaban las imagenes y salen en blanco como en esta imagen.

Aqui coje todos los enlaces sin mirar la expresión regular





El problema está en que no coje bien la expresión regular.
PD: Gracias por el tips, esos tiempos de cpu hay que reducirlos al máximo
Gracias,
Saludos,

#5
Scripting / Re: Ordenar array perl y regex
8 Julio 2010, 22:52 PM
Cita de: ~ Yoya ~ en  8 Julio 2010, 19:11 PM
No entiendo nada, explícate mejor, que es lo que quieres hacer y como estas tratando de hacerlo y si te ayudan por lo menos escribir que lo haz resuelto, porque si no dices nada es porque no haz resolvido nada...

Haber mi idea es hacer un bucle en el cual aplicando expresiones regulares coja el enlace y la imagen que esta abajo , es decir, el enlace esta al principio y después ponga la imagen tal cual lo he puesto al principio del hilo y después  y las ponga en un array así:

   Enlace
   Imagen

Un ejemplo de como quiero hacerlo esta al principio del hilo, lo que tengo hecho es cojer el enlace aplicando expresiones regulares pero la imagen no lo se hacer para que se quede como he puesto arriba el array.

Espero haberme explicado,

Gracias por las molestias,

Saludos :)
#6
Scripting / Ordenar array perl y regex
8 Julio 2010, 14:59 PM
Hola :)

Estoy intentando cojer unos links y unas imagenes tal que queden así ordenado el array:

Dirección URL
Enlace de imagen
Dirección URL
Enlace de imagen


Así hasta que recorra el bucle y los encuentre todos.

Problemas:

No consigo que al recorrer el bucle los ponga ordenados y tampoco consigo que la expresión regular recoja el enlace de la imagen acuerdo a regex, los consigo todos pero todos los de la página.

Recojo los enlaces de las imagenes con $Explorador->find_all_images() del módulo WWW:Mechanize.

El tipo de html que esta especificado en el DOM de la página es este:

Código (html4strict) [Seleccionar]
  <table border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">
           <tr>

           <td>
               <a href="http://valeptr.com/scripts/runner.php?PA=4749" target="_ptc" onclick="javascript:reloadpage(11)">
                   <img src="http://valeptr.com/scripts/runner.php?REDIRECT=http%3A%2F%2Fwww.e-qoo2.net%2Fimages%2Fbanner2.gif&amp;hash=fc93bac327d1672abbe159e0a1fc17cd" alt="e-qoo2"   border="0">
               </a>
           </td>
           </tr>
           </table>


Y  no consigo poner el link y la imagen que tiene debajo como he puesto arriba marcado en negrita.

Pongo todo el script en perl.

Código (php-brief) [Seleccionar]
#!/usr/bin/perl    
#<table border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">
#            <tr>
#
#            <td>
#               <a href="http://valeptr.com/scripts/runner.php?PA=4749" target="_ptc" onclick="javascript:reloadpage(11)">
#                    <img src="http://valeptr.com/scripts/runner.php?REDIRECT=http%3A%2F%2Fwww.e-qoo2.net%2Fimages%2Fbanner2.gif&amp;hash=fc93bac327d1672abbe159e0a1fc17cd" alt="e-qoo2"   border="0">
#                </a>
#            </td>
#           </tr>
#            </table>

use WWW::Mechanize;
use WWW::Mechanize::Sleepy;
my $Explorador = WWW::Mechanize::Sleepy->new( agent => 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624', sleep => '1' );
my @Array_PTC;
$Explorador->get("file:/home/alejandro/Escritorio/1appsearch.php.html") #Proceed to access the URL to find all the links in emails
    or die q{Ha ocurrido un error obteniendo la página http://valeptr.com/pages/1appsearch.php.html};

#print $Explorador->content();
foreach my $link ( $Explorador->links, $Explorador->find_all_images()  )
{
   if ( my ($interesting) = $link->url =~ qr{scripts/runner\.php\?PA=})
{
push @Array_PTC, $link->url;
    }
   if ( my ($interesting) = $Explorador->find_all_images()=~ #Aqui expresión regular)
{
push @Array_PTC, $link->url;
    }
}

print "$_\n" for @Array_PTC;


Resumiendo:
Consigo todos los enlaces que cumplen con el pattern scripts/runner\.php\?PA=
pero lo que consigo es:
   1.- Conseguir todos los enlaces de debajo de el enlace <img src=" ... "
   2.- Ordenar los enlaces para que queden link y debajo el enlace


Saludos,
#7
Scripting / Perl Regular Expressions (Regex)
5 Julio 2010, 20:40 PM
Hola :)

Estoy haciendo un script en Perl para que haga un HTTP Post en una url, y cuando me logeo quiero cojer un trozo de texto y retocarlo para que quede concorde y no salgan todas las etiquetas del html etc..

El código que quiero cojer es este:

Código (html4strict) [Seleccionar]

    <td class="tm"><b>AQUI QUIERO COJER ESTO1</b><br>
Welcome back to your members area.<br><br>
Your username here is <b>AQUI QUIERO COJER ESTO2</b>.<br>

<script language="javascript" type="text/javascript">


Por supuesto que es un trozo de código del DOM de la página.
En todo caso quiero cojer lo que hay dentro del AQUI QUIERO COJER ESTO1 y del AQUI QUIERO COJER ESTO2

PD: Llevo aquí 2h y no lo consigo :S

Aquí pongo todo mi script:

Código (perl) [Seleccionar]
#!/usr/bin/perl
#=======================================================================
#
#
#  DESCRIPCIÓN:
#
#      OPTIONS:  ---
#         BUGS:  ---
#        NOTAS:  ---
#      VERSION:  1.0
#     CREADO:  Lunes 5 de julio del 2010
#    REVISIÓN:  1
#=======================================================================

use warnings;
use strict;
use WWW::Mechanize;


   my $Explorador = WWW::Mechanize->new( agent => 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624' ); #Constructor del explorador con un UserAgent falso.
   $Explorador->get("file://home/alejandro/enter.php.html"); #Se procede a acceder a la dirección url para hacer el HTTP Post
   $Explorador->field('username','Miuser'); # Busca el campo username y pone el usuario
   $Explorador->field('password','Mipass');  # Busca el campo password y pone la contraseña
   $Explorador->submit(); # Hace el HTTP POST

   print $Explorador->content();
   
   if($Explorador->content() =~ m"\s/<td class=\"tm\"><b>")
      {
       
      }
   else
   {
     die "Error: No se puede encontrar el nombre.\n¿Ha provado que su usuario y contraseña sean correctos?";
    }


#8
Hola gente  :rolleyes:

Estoy haciendo un trabajo para ver si puedo conseguir esnifar todo lo que llega al router A desde una iP publica que no tengo acceso a otra IP publica que es la mía.

El esquema que tengo hecho es este:


RouterA                                                                           Router B Mio   
IP Pública                                                                         IP Pública

La cosa que esta clara es que estoy conectado a el, es decir puedo ver toda la configuración del router total.
Como puedo hacer para que desde mi casa pueda ver el router de mi compañero sin tener que conectarme físicamente contra el  es decir ir a su casa.

Saludos :)
Backglass.
#9
Hola,

Perfeco gracias ;-) funciona perfecto pero ahora quiero filtrar la url osea que solo aparezca  la url, en mi html aparecen 2 que estan en la misma línia ya que aparecen así:

http://var.com/scripts/runner.php?EA=2777">http://var.com/scripts/runner.php

y lo que necesito es que se quede una sola url como así:

Parte verde la que necesito y parte roja la que no necesito:
http://var.com/scripts/runner.php?EA=2777">http://var.com/scripts/runner.php

Estoy usando la expresión regular para conseguirlo
Código (python) [Seleccionar]
r = re.compile('\http.*var.com*\/*scripts\/*runner\/*.php*', re.IGNORECASE)

Ahora la pregunta como puedo filtrar la expresión regular para que coja todo hasta "> y "> no lo descarte y se quede el único link  http://var.com/scripts/runner.php?EA=2777 ?

PD: No soy muy experto en esto de las expresiones regulares y puede que haya alguna barbaridad en la expresión regular xD

Saludos,
Backglass :D

#10
Hola de nuevo. :)

Estoy esta semana muy liado intentando utilizar el mechanize que es un modulo de python webbrowser para mirar unos links de una web y he llegado a un punto que no logro descifrar que es:

Sí tengo un archivo de texto donde ahí guardo todos los datos de la página fuente osea el código fuente de la web y quiero que lea solo el texto que hay entre 2 palabras que están en el mismo texto y que coja el link que hay en ellas.

Gráficamente seria así:

----------------Fichero de texto-----------------------
Muchas línias de código fuente de la web

Hola me llamo x

http://link

Hasta luego

Me despidasdas

----------------Fichero de texto-----------------------

Cómo puedo cojer el link de http://link sí hay más de uno y estan fuera del rango Hola me llamo x , y Me despidasdas?



Saludos, :-\

Backglass