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

#11
 :rolleyes:

Solo podria orientarte en la parte del host, podrias crear una aplicacion que se base en libusb para reconocer tu celular y realizar transferencias de tipo control, interrupcion o bulk.

En la parte del celular si que nose como java y android manejaran la recepción usb.

Pero por que hacer esto por cable USB con una aplicación que use internet sería mas facil de hacer, o bluethoot.
#12
Programación C/C++ / Re: ayuda con vectores
30 Junio 2017, 03:59 AM
Umm con un break bastara, no lo he probado pero debe funcionar, ni lo he compilado.

   #include <stdio.h>
   #include <stdlib.h>  
   #define LENGTH 1001
   
   int num[LENGTH];
   
   int main()
   {
       int dato;
       while(1)
       {
             printf("Intoduzaca numero= ");
             scanf("%d",&dato);
             if(dato==-1 || dato>=LEGTH)
                   break;            //salgo del while infinito y no imprimo nada el programa termina
             ++num[dato];
             printf("El numero %d ha sido introducido %d", dato, num[dato]);
       }
   
       return EXIT_SUCCESS;
   }
#13
Programación C/C++ / Re: ayuda con vectores
29 Junio 2017, 22:06 PM
#include <stdio.h>
#include <stdlib.h>  
#define LENGTH 1001

int num[LENGTH];

int main()
{
   for(int dato=0 ; dato!=-1 && dato<LENGTH; )
   {
         printf("Intoduzaca numero= ");
         scanf("%d",&dato);
         ++num[dato];
         printf("El numero %d ha sido introducido %d", dato, num[dato]);
   }
   
   return EXIT_SUCCESS;
}


No entiendo el porque de la ultima parte del numero mil
#14
Hey echale un vistazo a este proyecto que hice con libusb para ver televisión digital desde un dispositivo USB que la capta en Linux

Especialmente este archivo
https://github.com/aurquiel/Open_Digital_Television_Linux_USB_VLC/blob/master/include/samsung.h

Casi al final hay unas funciones documentadas que hacen las funciones de transferencias de control libusb.

unsigned char TC90527_I2cWrite(unsigned char Addr,unsigned char Data) //linea 851
#15
C programming language Ritchie Kernighan Creo que si no es el mejor, es uno de los mejores.
#16
Se debe mejorar lo del bucle infinito del numero negativo, dejar ciclos infinitos es una catastofre. >:(


Esto no lo mejora pero se ve mas estetico
numero1 += velocidad;

:xD
#17
 :D

Hola te puedo hablar es desde linux y de c no de c++ y lo que te voy a decir te va a conducir a otra pregunta de como funciona, pero vas a estar mas cerca aunque la respuesta no es tan trivial se necesita tiempo para comprer como funciona.

printf() es la funcion de impresión en patalla de c, pero printf es una mascara por asi decirlo de una función del kernel de linux system call llamada write() que opera a bajo nivel

Si tomas un programa en c
#include <stdio.h>
int main(void)
{ printf("hello"); return 0; }


Lo compilas, abres la consola  
gcc -Wall -o hello hello.c
y luego ejecutas
strace ./hello

Impresionado?

execve("./book", ["./book"], [/* 48 vars */]) = 0
brk(NULL)                               = 0x1640000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd227e03000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=162022, ...}) = 0
mmap(NULL, 162022, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fd227ddb000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\t\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1864888, ...}) = 0
mmap(NULL, 3967392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fd227817000
mprotect(0x7fd2279d6000, 2097152, PROT_NONE) = 0
mmap(0x7fd227bd6000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1bf000) = 0x7fd227bd6000
mmap(0x7fd227bdc000, 14752, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fd227bdc000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd227dda000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd227dd9000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd227dd8000
arch_prctl(ARCH_SET_FS, 0x7fd227dd9700) = 0
mprotect(0x7fd227bd6000, 16384, PROT_READ) = 0
mprotect(0x600000, 4096, PROT_READ)     = 0
mprotect(0x7fd227e05000, 4096, PROT_READ) = 0
munmap(0x7fd227ddb000, 162022)          = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
brk(NULL)                               = 0x1640000
brk(0x1661000)                          = 0x1661000
write(1, "hello", 5hello)                    = 5
exit_group(0)                           = ?
+++ exited with 0 +++


Todo eso son system calls del kernel de linux, mira esta linea

write(1, "hello", 5hello)                    = 5

Hasta aquí llego yo no he tenido el tiempo para saber como esta construido el kernel de linux, pero parece ser complicado.

Se que no he respondido a totalidad tu pregunta, pero hasta ahora yo solo hago aplicaciones de usuarios, tu proyecto parece ser muy ambicioso, al indagar mas a fondo te vas a encontrar cosas que requerirán mucho tiempo de análisis y estudio, mejor comenzar por algo suave y con el tiempo ir hacia aguas mas profundas.

Esto quiere decir que c esta corriendo encima de todo esto, el kernel.

Y por asi decirlo el Kernel esta construido en su propia version de c diferente, con funciones llamdas diferentes al ANSI C pero de comportamiento similar como son prinftk en ves de printf okmalloc en vez de malloc y asi otras mas.
#18
En un ejercicio debo encontrar un patrón de un arreglo desde la derecha hacia la izquierda de otro arreglo.

Tengo la funcion get_line para obtener la linea a comparar con el patrón y la funbcion strindex para buscar el patron.

En la función strindex, en el segundo ciclo for al colocar una coma ; como bloque de ese ciclo, osea el bloque no ejecuta nada solo verifica la condición y decrementa las variables, me da un error extraño al usar el debug de Codeblocks las variables a la segunda vez que se llama a ese for toman valores extraños, solo  a la segunda vez.

Les dejo la función que sirve, pero no entiendo porque la otra versión del código no sirve.

Version que sirve
#include <stdio.h>
#include <string.h>
#define MAXLINE 1000 /* maximum input line length */

int get_line(char line[], int max);
int strindex(char source[], char searchfor[]);
char pattern[] = "program";     /* pattern to search for */

/* find all lines matching pattern */
int main()
{
   char line[MAXLINE];
   int found = 0;

   while (get_line(line, MAXLINE) > 0)
       if (strindex(line, pattern) >= 0)
       {
           printf("%s", line);
           found++;
       }
   return found;
}

/* getline: get line into s, return length */
int get_line(char s[], int lim)
{
   int c, i;
   i = 0;
   while (--lim > 0 && (c=getchar()) != EOF && c != '\n')
       s[i++] = c;
   if (c == '\n')
       s[i++] = c;
   s[i] = '\0';
   return i;
}

/* strindex: return index of t in s, -1 if none */
int strindex(char s[], char t[])
{
   int i, j, k;

   for (i = strlen(s)-1;  i>=0; i--)
   {
       for (j=i, k=strlen(t)-1; s[j]==t[k]; j--, k--)
           if (k == 0 )
               return i;
   }

   return -1;
}


Version que no sirve fijense en como cambie en strindex el bloque del sgundo for por un punto y coma, el programa compila bien, deberia funcionar
#include <stdio.h>
#include <string.h>
#define MAXLINE 1000 /* maximum input line length */

int get_line(char line[], int max);
int strindex(char source[], char searchfor[]);
char pattern[] = "program";     /* pattern to search for */

/* find all lines matching pattern */
int main()
{
   char line[MAXLINE];
   int found = 0;

   while (get_line(line, MAXLINE) > 0)
       if (strindex(line, pattern) >= 0)
       {
           printf("%s", line);
           found++;
       }
   return found;
}

/* getline: get line into s, return length */
int get_line(char s[], int lim)
{
   int c, i;
   i = 0;
   while (--lim > 0 && (c=getchar()) != EOF && c != '\n')
       s[i++] = c;
   if (c == '\n')
       s[i++] = c;
   s[i] = '\0';
   return i;
}

/* strindex: return index of t in s, -1 if none */
int strindex(char s[], char t[])
{
   int i, j, k;

   for (i = strlen(s)-1;  i>=0; i--)
   {
       for (j=i, k=strlen(t)-1; s[j]==t[k]; j--, k--)
           ;
       if (k == 0 )
           return i;
   }

   return -1;
}



#19
#include "../include/cyusb.h"

hacia donde esta apuntado para conseguir la libreria cyusb???
#20
Programación C/C++ / Re: Sin metodo burbuja
24 Noviembre 2016, 03:09 AM
Revisa aqui hay varios metodos de ordenamiento

https://es.wikipedia.org/wiki/Algoritmo_de_ordenamiento