Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 10 de 15
  1. #1
    Top Android
    Fecha de ingreso
    27/ago/2007
    Móvil
    K550
    Mensajes
    49

    [Tutorial] Información necesaria para modificar Camdrivers

    Voy a tratar de subir lo que he aprendido viendo o intentando modificar el camdriver de mi k550 o lo que he observado en otros de los distintos modelos. Si alguien tiene más información al respecto es biervenida.

    En primer lugar tenemos que tener en cuenta que todos los valores numéricos son escritos en hexadecimal, por lo que un dígito puede ir de 0 a F (de 0 a 16).


    Variables

    En el código vamos a encontrar variables, las cuales pueden guardar valores o conjuntos de valores.
    nombre_variable = 00;

    variable2 = 0A;

    variable3 = 0[AA], 1[BB], 2[DD], 3[FF];
    Sentencias

    Por lo que podemos ver, todas las sentencias deben terminar un con punto y coma. Entedemos por sentencia a una serie de instrucciones que son ejecutadas en forma secuencial.

    Cuando dentro de una sentencia observamos un código de la forma $X (siendo X una letra), estamos en presencia de una instrucción propia o nativa del celuar.

    La instrucción S se utiliza para copiar un valor a un registro. En el ejemplo estamos guardando el número decimal 16 en el registro 0.
    $s0 0F
    La instrucción C se utiliza como condición, produce una bifurcación preguntando sobre el valor de un registro. Si se cumple la condición se ejecutará todo el código encerrado por el $cN y $cx. La instrucción cx nos aviso que ese bloque de código finalizó. Si en medio del $c y $cx colocamos un $cl, estamos diviendo la ejecución entre "Si pasa tal cosa has esto, sino has lo otro".

    El siguiente ejemplo se traduciria como, "Si el registro 0 posee el valor 16 decimal, asignale el valor cero. Si no posee el valor 16 decimal, asignale el 16 decimal."
    $c0 0F
    $s0 00
    $cl
    $s0 0F
    $cx;
    La instrucción +, -, * y / realizan operaciones aritmeticas sobre un registro determiando. Los siguientes ejemplos significan que al registro 2 le sumo 1, luego al registro 2 le resto 3, al registro 3 lo multiplico por 4 y al registro 1 lo divido por 5.
    $+2 01
    $-2 03
    $*3 04
    $/1 05
    Macros

    Existen otro tipo de "variables" que vamos a llamar MACROS o tambien conocidos por el nombre de Procedimientos.

    Un MACRO es una variable a la que le podemos asignar instrucciones (a diferencia de las vistas anteriormente que solo se le asignaban valores).
    MI_MACRO = $s0 0F
    $c1 0F $s1 09 $cx;
    Luego lo podemos usar llamandolo de la siguiente forma
    #MI_MACRO
    Tambien podremos agregar parámetros a un Macro, lo que significa que al llamar al macro vamos a poder pasarle valores para que los use en sus sentencias. Dentro del macro, estos parámetros se identifican con el signo de exclamasión seguido del número de parámetro (comenzando por el 0).
    MI_MACRO_CON_DOS_PARAMETROS = $+0 !0
    $+0 !1;
    Y luego lo podemos usar llamandolo de la siguiente forma
    #MI_MACRO_CON_DOS_PARAMETROS(01,0F)


    Macros Especiales

    Existen algunos macros que utiliza el celular internamente, los cuales vamos a poder modificar y de esta forma ejecutar nuestro codigo ante determinados eventos.

    seq_init: se ejecuta cuando encendemos la camara

    seq_ss_start: se ejecuta cuando vamos a sacar la foto

    seq_ss_take: se ejecuta al estar sacando la foto

    seq_ss_verify: se ejecuta luego de sacarla

    seq_ss_stop: se ejecuta al finalizar el proceso


    Encabezado de las propiedades

    Voy a tomar de ejemplo el código de las propiedades de mi k550i.

    sup_properties = 0[3,f,9], 1[0,6,0], 2[0,3,0], 3[0,3,0], 4[0,3,0],
    5[0,9,0], 6[a,28,a], 7[0,1,0], 8[0,4,0], 9[0,4,1],
    a[0,2,0], b[0,0,0], c[0,0,0], d[0,1,0], e[0,4,0],
    f[0,1,0],10[0,6,0], 11[0,9,0], 12[0,ff,0],13[0,15,7],
    14[0,11,8],15[0,11,8],16[0,1,0],1c[0,1,0], 1d[0,3,0],
    1e[0,1,0], 1f[0,0,0],20[0,7,0];
    Lo que podemos observar, es que sup_properties es una variable que guarda un grupo de valores. Cada [A,B,C] se encuentra destinado a cada una de las propiedades del celular, y el significado de cada valor es:

    A: Valor mínimo que puede tomar la propiedad
    B: Valor máximo que puede tomar la propiedad
    C: Valor por default que tomará la propiedad


    En las resoluciones soportadas ocurre algo parecido

    sup_sizes = 1[64,3C,0], 2[A0,780,0], 3[140,F0,0],
    4[280,1E0,0], 5[500,3C0,0], 6[640,4B0,0],
    7[660,440,0], 8[660,4C8,0], 9[280,1E0,0],
    11[DC,A5,5DC], // 5DC => 15 fps
    12[DC,A5,5DC], // 5DC => 15 fps
    13[64,3C,5DC], 14[80,60,5DC],15[A0,78,5DC],
    21[80,60,3E8], 22[80,60,2EE],
    23[B0,90,3E8], 24[B0,90,2EE],
    30[4E,90,0];
    Donde en cada elemento [A,B,C], el AxB es la resolución, mientras que el C son los fps de filmación (notense que los primeros 9 [] son para fotos, por eso el C=0).

    Esto es todo lo que he aprendido hasta ahora. No estoy seguro de que es el comando $f, o varias cosas mas... pero con el tiempo veremos que se aprende. Si alguien quiere aportar algo que se me escapo o corregirlo es bievenido

  2. #2
    Top Android
    Fecha de ingreso
    02/sep/2007
    Móvil
    -
    Mensajes
    32

    Thumbs up Re: [Tutorial] Información necesaria para modificar Camdrivers

    hola quisiera saber si me puedes ayudar a hacerlo pero con un w200 es que la camara es pesima. saludos

  3. #3
    Avanzado
    Fecha de ingreso
    29/ene/2007
    Ubicación
    Peru
    Móvil
    -k550@w610
    Mensajes
    287

    Re: [Tutorial] Información necesaria para modificar Camdrivers

    amigo carlosgdl1 en un w200 va hacer muy dificil un nuevo camdriver que mejore la calidad de laas fotos porque tiene una camara vga a comparacion de una de 2 mp es por eso que no mejoraria nada un nuevo camdriver para este modelo pero si puedes subirle un acoustic mejorado busca en el foro.

  4. #4
    Top Android Avatar de miguel00
    Fecha de ingreso
    25/ago/2007
    Ubicación
    Pachuca Hidalgo México
    Móvil
    -w610i
    Mensajes
    55

    Re: [Tutorial] Información necesaria para modificar Camdrivers

    hay wey este codigo esta cañon gracias por el aporte ahora con ayuda de este pequeño tutorial podremos modificar nuestro camdriver gracias

  5. #5
    Top Android
    Fecha de ingreso
    27/ago/2007
    Móvil
    K550
    Mensajes
    49

    Re: [Tutorial] Información necesaria para modificar Camdrivers

    Hoy estuve haciendo un par de pruebas más y me lleve una sorpresa al descubrir más o menos como son llamadas las propiedades del celular al momento de ser usadas.

    Luego de un subtitulo que generalmente dice "OTHER SEQ" vamos a encontrar un montón de macros con un código de la forma
    seq_set_prop_0 = ......

    seq_set_prop_1 = ......
    y en algunos casos
    seq_set_prop_2_0 = .....

    seq_set_prop_2_1 = .....

    seq_set_prop_2_2 = .....
    Bueno... ambos códigos quieren decir casi lo mismo. Cada propiedad tiene un significado (por ej, la 6 generalmente es para el zoom) y en el segundo ejemplo, el número que figura luego del número de propiedad es nada mas ni nada menos que un valor que puede tomar la misma.

    Que significa esto? que si tenemos un código que dice
    seq_set_prop_2_4 = .....
    Significa que ese macro es ejecutado por el celular cuando la propiedad 2 cambia al valor 4.

    Ahora, en el primer ejemplo que di, no tengo ese número para identificar el valor de la propiedad. Por lo tanto la macro es invocada para todos los valores.

    Cual es el chiste de que sea invocada siempre? justamente que dentro de la macro vamos a encontrar en algun sitio un "%0", dicho número va cambiando y hace referencia siempre al nuevo valor de la propiedad.

    Por lo tanto los siguientes dos códigos hacen exactamente lo mismo.
    seq_set_prop_0 = $s5 %0
    $-5 09
    #COM_EVENT(06,$w5);
    seq_set_prop_0_3 = $s5 03 $-5 09 #COM_EVENT(06,$w5);
    seq_set_prop_0_4 = $s5 04 $-5 09 #COM_EVENT(06,$w5);
    seq_set_prop_0_5 = $s5 05 $-5 09 #COM_EVENT(06,$w5);
    seq_set_prop_0_6 = $s5 06 $-5 09 #COM_EVENT(06,$w5);
    seq_set_prop_0_7 = $s5 07 $-5 09 #COM_EVENT(06,$w5);
    seq_set_prop_0_8 = $s5 08 $-5 09 #COM_EVENT(06,$w5);
    seq_set_prop_0_9 = $s5 09 $-5 09 #COM_EVENT(06,$w5);
    seq_set_prop_0_a = $s5 0a $-5 09 #COM_EVENT(06,$w5);
    seq_set_prop_0_b = $s5 0b $-5 09 #COM_EVENT(06,$w5);
    seq_set_prop_0_c = $s5 0c $-5 09 #COM_EVENT(06,$w5);
    seq_set_prop_0_d = $s5 0d $-5 09 #COM_EVENT(06,$w5);
    seq_set_prop_0_e = $s5 0e $-5 09 #COM_EVENT(06,$w5);
    seq_set_prop_0_f = $s5 0f $-5 09 #COM_EVENT(06,$w5);

    Hice una prueba media loca que resulto un tanto divertida y didáctica. Elimine el código de la propiedad 0 de mi k550 (el EV) y adapte el código del zoom para que tomara los valores del EV y seteara el zoom del celular.
    seq_set_prop_0 = #SET_REG(24,01)
    $s4 %0 // Place value in reg 4
    $+4 07 // Como el valor comienza en 3 y el del zoom en 10 le sumo 7
    $s5 40 // Place value 128 in reg 5
    $*5 0a // Multiply reg 5 by a
    $/5 r4 // Divide reg 5 with reg 4
    $"Cam_mag_value_%5"
    #COM_EVENT(61,$w5);
    El resultado fue que el EV dejo de andar pero al bajarlo o subirlo, el zoom se acercaba o alejaba (lastima que al sacar la foto todavia no logro que respete el zoom que se observa por pantalla).

    Lo que no logro aún es extender los valores permitidos para una propiedad, si recibe valores entre 3 y 16 no logro cambiarlo... actualizo la variable "sup_properties" con los nuevos valores pero no hace efecto.

    NOTA: los macros seq_set_prop aparentemente son llamadas al momento de setear una propiedad, mientras que los seq_get_prop son llamados al consultarla.

    Otras sentencias

    Luego de un arduo trabajo de investigación logre decifrar dos nuevas sentencias (de la segunda muuuy seguro no estoy), me refiero a $p y $m.

    La sentencia $p es utilizada para copiar a un registro el valor de alguna propiedad, si hacemos
    $p0 06
    Lo que estamos haciendo es guardando el valor de la propiedad 6 (el zoom) en el registro 0. En mi k550 el zoom va de 3 a F, el valor por default es 9. Si enciendo la cámara y ejecuto la anterior sentencia, lo que voy a estar haciendo es guardando un 9 en el registro 0.

    Por otro lado la sentencia $m sospecho, y necesitaría hacer mas pruebas, que lo que hace es mover el valor de un registro a otro registro (distinto de $s que movía un valor a un registro).

    El siguiente código copia el valor del registro 4 al registro 0.
    $m0 4
    Como ejecutar Funciones del Celular

    Internamente el celular posee una serie de comando/funciones para todas las opciones que brinda la cámara, estas funciones son invocadas en todo momento (especialmente en el seteo de propiedades).

    En algunos teléfonos más nuevos van a encontrar unas macros creadas que sirven para esto (COMMAND o COM_EVENT) pero de todas formas el código en hexadecimal que usa para invocar a la función propiamente dicha es el siguiente
    06 02 00 01 XX YY
    Los primeros 6 números hacen referencia al llamado en si, los siguientes 2 números teóricamente significan 00=disable / 01=enable, pero no logre entender que diferencia hay entre ambos.

    Lo más importante son los últimos 4 números, en las XX vamos a colocar el valor que le pasamos a la función, mientras que en las YY va el número de función. ¿De donde sacamos ese número? lamentablemente no encontré ninguna tabla o algo que las especifique.

    Si revisamos el código del camdriver podemos encontrar que la función de zoom es la 61, la opción de foco es la 46, etc.

    Todavía no lo tengo muy en claro, pero luego de escribir esos número es necesario que llamemos a la sentencia $f (significara function?) y seguida de la misma siempre encuentro otra serie de números que terminan siempre con un $d0005.

    Por ejemplo
    SET_JPEG_MAX=06 02 00 0D !1 !0 $f $d0005;
    COMMAND = 06 02 00 01 !1 !0 $f $r3 012 $d0005;
    Última edición por rkpost; 07/10/2007 a las 02:12:34 Razón: Mensaje combinado automaticamente

  6. #6
    Recién Iniciado
    Fecha de ingreso
    24/nov/2006
    Ubicación
    Bucaramanga Colombia
    Móvil
    -k790
    Mensajes
    8

    Re: [Tutorial] Información necesaria para modificar Camdrivers

    Una pregunta sera que si se puede modificar el valor de los tamaños en que toma o graba el celular por ejemplo el tamaño del video.

  7. #7
    Top Android
    Fecha de ingreso
    27/ago/2007
    Móvil
    K550
    Mensajes
    49

    Re: [Tutorial] Información necesaria para modificar Camdrivers

    Todavia no esto muy seguro de que se pueda hacer desde el camdriver, al igual que ampliar el rango de valores para una determinada propiedad (como ser el focus, brillo o zoom).

    A medida que haga mas pruebas voy a ir subiendo más información.

  8. #8
    Cuenta inhabilitada
    Fecha de ingreso
    12/sep/2007
    Ubicación
    Mexico D.F.
    Móvil
    w580,w910,w610
    Mensajes
    289

    Re: [Tutorial] Información necesaria para modificar Camdrivers

    quisiera aprender a modificar camdriver pero la verdad si es un poco complicado tendre que practicar mucho

    existe algun tuto para modificar los camdrivers un poco mas explicado y menois complejo ???

  9. #9
    Avanzado Avatar de Zknwer
    Fecha de ingreso
    27/ago/2007
    Ubicación
    TechnoWorLd
    Móvil
    -w910i
    Mensajes
    124

    Re: [Tutorial] Información necesaria para modificar Camdrivers

    disculpa y no me podrias decir que valores modificar para la propiedad del focus?

  10. #10
    Cuenta inhabilitada
    Fecha de ingreso
    10/oct/2007
    Móvil
    -z710@w710
    Mensajes
    108

    Re: [Tutorial] Información necesaria para modificar Camdrivers

    me preguntaba si se podia configurar el camdriver para que el cam del z710i@w710i saque de 2 mp a 3.2 mp?
    y si se puede tener autofoco como el w810 o lo tiene en el software

Página 1 de 2 12 ÚltimoÚltimo

Información de tema

Usuarios viendo este tema

Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)

Temas similares

  1. Tutorial para modificar acoustics (Para desarrollar)
    Por jvto en el foro Camdrivers - Dispdrivers - Acoustic Drivers
    Respuestas: 36
    Último mensaje: 01/10/2011, 21:39:45
  2. Tutorial modificar Acoustics Para A2 db3150 db3210
    Por MrCeLULaR en el foro Camdrivers - Dispdrivers - Acoustic Drivers
    Respuestas: 2
    Último mensaje: 14/01/2010, 16:40:45
  3. ayuda o tutorial para modificar un menu flash (.swf)
    Por ALBRE007 en el foro Menús Flash
    Respuestas: 3
    Último mensaje: 07/07/2009, 23:01:17
  4. [TUTORIAL] Tutorial para Subir Acoustics y Camdrivers PNX5230, DB2020 CID53
    Por Vnv_Nation™ en el foro Tutoriales
    Respuestas: 0
    Último mensaje: 12/09/2008, 01:37:52
  5. Tutorial para NOVATOS (acoustic y camdrivers)
    Por juanjoset en el foro Camdrivers - Dispdrivers - Acoustic Drivers
    Respuestas: 1
    Último mensaje: 06/02/2008, 18:06:13

Etiquetas para este tema

Marcadores

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •