Autor Tema: Automatiza la Configuración de tus datos para enumerar un PIC 18Fxx5x  (Leído 65577 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado PalitroqueZ

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5429
    • Electrónica Didacta
Re: Automatiza la Configuración de tus datos para enumerar un PIC 18Fxx5x
« Respuesta #15 en: 28 de Enero de 2008, 19:06:45 »
Hola

J1M ¡¡LOGRÉ INSERTAR UN ÍCONO EN EL ADMIN. DISPOSITIVOS!!   :-/ :-/ :-/

en picusb.inf, la línea:

HKR,,Installer32,,"picusbci.dll,PicUSBClassInstaller"

lo que hace es crear una clave:

Installer32[REG_SZ]="picusbci.dll,PicUSBClassInstaller"

en el regedit cambié el string por:

Installer32[REG_SZ]="mi_icono.ico"

(debes copiar mi_icono.ico en system32)

al insertar el device, inmediatamente toma el ícono :)

ahora probaré modificando en el inf a ver si me la acepta.


PD: gracias Cryn
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: Automatiza la Configuración de tus datos para enumerar un PIC 18Fxx5x
« Respuesta #16 en: 30 de Enero de 2008, 20:48:40 »
Hola Pedro,

Si, el panel de control accede al registro para 'tomar o saber donde tomar' el icono. La clave esa que modificas es creada por la DLL... o bueno, mejor dicho, mediante el .INF, el problema a priori es el mismo. Quizá una forma de solventarlo y de una vez por todas librarnos de la DLL sería incluir algo en el .inf ó crear un .reg que añada esa misma información al registro y sea tomado en cuenta por el panel de control.

Has probado a utilizar un icono por defecto, es decir, utilizar el driver 'sin modificar' de microchip y modificar posteriormente el registro??? en ese caso, se cambia también el icono??? Si respondes afirmativamente a las dos. El problema de la DLL se resuelve instalando el .inf 'sin modificar' y ejecutando un .reg que modifique la clave del registro correspondiente al icono 'por defecto' para poner un .ico propio.


saludos!

Desconectado PalitroqueZ

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5429
    • Electrónica Didacta
Re: Automatiza la Configuración de tus datos para enumerar un PIC 18Fxx5x
« Respuesta #17 en: 31 de Enero de 2008, 19:29:23 »
Has probado a utilizar un icono por defecto, es decir, utilizar el driver 'sin modificar' de microchip y modificar posteriormente el registro??? en ese caso, se cambia también el icono??? Si respondes afirmativamente a las dos. El problema de la DLL se resuelve instalando el .inf 'sin modificar' y ejecutando un .reg que modifique la clave del registro correspondiente al icono 'por defecto' para poner un .ico propio.


saludos!

sip. de hecho asi es que funciona, instalo normalmente (creando una clase aparte) y luego me voy al regedit y hago el cambio.

Hola Pedro,

Si, el panel de control accede al registro para 'tomar o saber donde tomar' el icono. La clave esa que modificas es creada por la DLL... o bueno, mejor dicho, mediante el .INF, el problema a priori es el mismo. Quizá una forma de solventarlo y de una vez por todas librarnos de la DLL sería incluir algo en el .inf ó crear un .reg que añada esa misma información al registro y sea tomado en cuenta por el panel de control.


nop del todo (funciona a medias). Estuve probando metiendo la línea:

HKR,,Installer32,,"mi_icono.ico"

y me lanza un error y no culmina la la instalación, aunque se puede apreciar el ícono insertado en la ventana del error.

voy a probar si puedo hacer la instalación normal y luego modificar esa línea en el registro, asi como tu dices, hay unas "llamadas" o directivas dentro del ADDREG que permiten actualizar ó modificar  una línea creada, probaré con esas.

ya falta poco para que le ganemos Jaime  :mrgreen:



La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado PalitroqueZ

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5429
    • Electrónica Didacta
Re: Automatiza la Configuración de tus datos para enumerar un PIC 18Fxx5x
« Respuesta #18 en: 01 de Febrero de 2008, 14:29:06 »
Buenas noticias. Creo que lo conseguí, les echo el cuento:

probé usando la entrada EnumPropPages32que según la ayuda del DDK, funciona similar a installer32

quedó así;

HKR,,EnumPropPages32,,"perro7.ico,0"

y felizmente el win no se quejó, se lo tragó con gusto, eso si, el ícono debe copiarse a ...\system32 entonces modificando una cuantas lineas en inf quedó asi:



; Installation file for mchpusb driver
; Copyright (C) 2004 by Microchip Technology, Inc.
; All rights reserved

[Version]
Signature=$CHICAGO$
Class=%ClassName%
ClassGuid={4D36E9AE-E325-11CE-BFC1-08002BE10318}
Provider=%ONEYSOFT%
CatalogFile=mchpusb.cat
DriverVer=11/19/2004

[Manufacturer]
%MFGNAME%=DeviceList

[DestinationDirs]
DefaultDestDir=10,System32\Drivers
icono_device=11 ; system32

[SourceDisksFiles]
mchpusb.sys=1
wdmstub.sys=1
perro7.ico=1

[SourceDisksNames]
1=%INSTDISK%,,,

[DeviceList]
%DESCRIPTION%=DriverInstall,USB\VID_08A8&PID_A811

[ClassInstall32]
Addreg=mchpusbClassReg

[mchpusbClassReg]
HKR,,,0,%ClassDesc%
HKR,,Class,,%ClassName%
HKR,,EnumPropPages32,,"perro7.ico,0"

;------------------------------------------------------------------------------
;  Windows 2000/XP Sections
;------------------------------------------------------------------------------

[DriverInstall.ntx86]
CopyFiles=DriverCopyFiles,icono_device

[DriverCopyFiles]
mchpusb.sys,,,2

[icono_device]
perro7.ico,,,2


[DriverInstall.ntx86.Services]
AddService=MCHPUSB,2,DriverService

[DriverService]
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%10%\system32\drivers\mchpusb.sys
AddReg=TraceFlags

;------------------------------------------------------------------------------
;  Windows 98/Me Sections
;------------------------------------------------------------------------------

[DriverInstall]
AddReg=DriverAddReg
CopyFiles=DriverCopyFiles,StubCopyFiles,icono_device
DriverVer=01/01/2003      ; TODO replace with real info

[DriverAddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,"wdmstub.sys,mchpusb.sys"

[StubCopyFiles]
wdmstub.sys,,,2

;------------------------------------------------------------------------------
;  String Definitions
;------------------------------------------------------------------------------

[Strings]
ONEYSOFT="Walter Oney Software"
MFGNAME="Microchip Technology, Inc."
INSTDISK="Microchip Technology, Inc. Installation Disc"
DESCRIPTION="PIC18F4550 Family Device"
ClassName="PicUSB Sample Device"
ClassDesc="PicUSB Device"



unas imagenes:





en el regedit debe verse asi en la rama principal del classguid




un video aficionado (si no lo puedes ver, bajar el codec)

notas:
- probado con un 18F4550 REAL montado en protoboard.

- si el driver está instalado (otro VID_PID de la misma clase) el ícono aparece a lo largo de la instalación

- ahora sigo haciendo unos ensayos para estar seguro y retoco el programa.



bajar el adjunto con la simulación en ISIS.

Si es tan amable alguien de probar este ejemplo en el windows vista y reporte por acá si le funcionó, please sería de mucha ayuda :)

« Última modificación: 12 de Marzo de 2009, 17:43:09 por PalitroqueZ »
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: Automatiza la Configuración de tus datos para enumerar un PIC 18Fxx5x
« Respuesta #19 en: 01 de Febrero de 2008, 15:33:04 »
jjejejej OLE AHI!!! si está claro, quien la sigue la consigue....... adios al incordio de la DDK!! bravooooo!!!! :):):) A ver si vuelvo a poner en orden mi caos de PC dspués de la muerte súbita de 2HDs y pongo el Vista64 otra vez y compruebo como va este lujo!!

Enhorabuena y gracias por compartirlo! :)

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Automatiza la Configuración de tus datos para enumerar un PIC 18Fxx5x
« Respuesta #20 en: 02 de Febrero de 2008, 02:37:05 »
gran logro Pali :-/ :-/ :-/
enhorabeuna y felicidades por conseguirlo :mrgreen: :mrgreen:

siempre nos son muy útiles tus trabajos, muchas gracias nuevamente :mrgreen:
.

Desconectado PalitroqueZ

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5429
    • Electrónica Didacta
Re: Automatiza la Configuración de tus datos para enumerar un PIC 18Fxx5x
« Respuesta #21 en: 06 de Febrero de 2008, 18:11:14 »
Gracias amigos  :P

Tengo una duda con el mchpusb.inf que usa el win para enumerar el nuevo dispositivo (llamese pic con módulo usb)

en la entrada Version siempre es el mismo GUID, independientemente del PID que se use

ClassGuid={4D36E97E-E325-11CE-BFC1-08002BE10318}

en cambio veo que el instalador que usa J1M (picusb.inf) es:

ClassGuid={4D36E911-E325-11CE-BFC1-08002BE10318}

¿existe algún patrón o fórmula para calcular el GUID a usar en estos drivers?, porque al fin y al cabo lo que se instala es mchpusb.sys que es el que usa el Win para acceder al usb


En la wikipedia sale la explicación del GUID.  Existe una api que genera esos numeros. interesante, leí por ahí que al parecer existe un orden respecto a los 8 primeros digitos, estuve probando con una combinación generada "aleatoriamente" por la api y no tuve problemas. Otra opción que le añadiré a la versión 2. Voy por el 98% dentro de poco la subo. Quedó Carteluo  8)

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado PalitroqueZ

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5429
    • Electrónica Didacta
Re: Automatiza la Configuración de tus datos para enumerar un PIC 18Fxx5x
« Respuesta #22 en: 08 de Febrero de 2008, 12:26:10 »
¡¡la segunda versión recien salida del horno!!



Ensayé, con un pic 18f4550 real y con windows 2000 SP4 y windows XP SP2 la parte de mpusbapi.dll con resultados satisfactorios.

para redundar un poco, el historial de cambios:


Historial:

 v2.0 01-feb-08

 - añadida nuevas opciones:
   - Crear una clase aparte solo para el dispositivo.
   - incluir un ícono a esa clase creada.
   - mejor estructuración de código fuente.
   - al cerrar el programa se guardan los datos de todos los campos.
   - al abrir el programa se cargan los datos de todos los campos, guardados
     con anterioridad.

 ---------------------------------------------------------------------------
 v1.0 versión inicial 09-ene-08

 
Una breve explicación:

existe un botón de opciones avanzadas, donde tenemos mas cosas por configurar. por ejemplo el clasguid, es posible crear uno nuevo, de manera de tener multitud de clases de device en el mismo ordenador, cada uno con su ícono elegido.

el classdesc es lo que aparecerá en el administrador de dispositivo cuando se conecté el device

el dato por defecto son los datos que incluye el programa como cuando lo probamos la primera vez, a la vez que sirve de plantilla si la ponemos metiendo datos erroneos.

cuando cerramos el programa se guardan todos los datos introducidos en un archivo llamado enum_picusb.ini, incluyendo el ícono, de manera que al abrir la próxima vez se cargaran dichos datos

xxxxxxx


Nota importante:

ya salió una nueva actualización del MCHPUSB Driver el cual modifica unas lineas del inf y los .sys para adecuarse al Win vista/vista64

Este programa trabaja sobre la versión anterior v1.00.005 y ha sido probado bajo Win2K y WinXP



Como siempre les ruego que me notifiquen los errores que encuentren, pasé varios dias depurando detalles (ahora entiendo lo que siente tratar de encontrar fallos en programas largos) y ya no le ví ninguno, puedo estar equivocado porque una sola persona no encuentra todos los detalles.
 
En fin ahí una herramienta mas que sirve para nuestros proyectos, además que tienen el código fuente y de allí pueden mirar como se trabaja en Basic.
 
« Última modificación: 12 de Marzo de 2009, 17:44:00 por PalitroqueZ »
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: Automatiza la Configuración de tus datos para enumerar un PIC 18Fxx5x
« Respuesta #23 en: 08 de Febrero de 2008, 12:34:03 »
Gracias por compartir tú tiempo y este pedazo programa con todo el foro!! Realmente es una genialidad!! Ganas tengo de verlo preparado para el nuevo driver ;)

un saludo y nuevamente... GRACIAS!

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Automatiza la Configuración de tus datos para enumerar un PIC 18Fxx5x
« Respuesta #24 en: 10 de Febrero de 2008, 21:54:22 »
 :shock: perfecto

Ole, como dice Nocturno, grande Pali :-/ :-/ :-/
.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1338
Re: Automatiza la Configuración de tus datos para enumerar un PIC 18Fxx5x
« Respuesta #25 en: 12 de Febrero de 2008, 22:39:18 »
Que gran programa Palitroquez! Esto te facilita la vida en un monton!  :D 

Yo me baje la DDK que uso J1M para la DLL que exporta el icono de la clase pero no pude compilar. Y esto me servira de maravilla! Muchas gracias  :-/

Citar
Este programa trabaja sobre la versión anterior v1.00.005 y ha sido probado bajo Win2K y WinXP
Lo has probado en la ultima version? Es la que tengo ahora. Espero no haya errores.


saludos!

Desconectado PalitroqueZ

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5429
    • Electrónica Didacta
Re: Automatiza la Configuración de tus datos para enumerar un PIC 18Fxx5x
« Respuesta #26 en: 13 de Febrero de 2008, 13:20:13 »
...
Citar
Este programa trabaja sobre la versión anterior v1.00.005 y ha sido probado bajo Win2K y WinXP
Lo has probado en la ultima version? Es la que tengo ahora. Espero no haya errores.
...

nop, en lo que terminé la versión 2, me enteré que microchip sacó una actualización  :?.

supongo que no debería haber problema alguno con el nuevo mchpusb.sys, porque el mchpusb.inf en escencia cambia las lineas para el driver que usará el vista 32/64

de todas maneras en cuanto tenga un chance veré si hago una revisión del programita.

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1338
Re: Automatiza la Configuración de tus datos para enumerar un PIC 18Fxx5x
« Respuesta #27 en: 25 de Marzo de 2008, 01:47:58 »
Hola. Por no tener problemas me quedo con la version anterior. Por ahora que aun estoy testeando todo  :mrgreen:

Queria preguntarte... ¿Que es esa opcion de Ubicacion? Viendo las propiedades desde el admi. de dispositivos sale una descripcion del dispositivo diciendo "Ubicacion 0:", y entre parentesis el nombre del dispositivo, el especificado en el pic. Ocea, con el ejemplo J1M, sale esto:

Ubicacion: Ubicacion 0 (J1M PicUSB)

Con esa opcion en tu programa cambio eso de "ubicacion 0"??, en que afecta??,...

Gracias.
Un saludo.

Desconectado PalitroqueZ

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5429
    • Electrónica Didacta
Re: Automatiza la Configuración de tus datos para enumerar un PIC 18Fxx5x
« Respuesta #28 en: 25 de Marzo de 2008, 12:20:56 »
no, no afecta en nada, solo sirve para darle una identificación personalizada.

en el programa, se cambia exactamente donde dice "Ubicación:"  :mrgreen:


Es una pena no publicar la nueva versión, la tengo 99% lista, el uno por ciento restante son los ensayos que tengo que hacer para ver si funciona, pero es un hecho que lo subiré en lo que esté listo.

La diferencia que noto de la nueva versión respecto a la vieja, es el uso con los procesadores 64 bits


La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1338
Re: Automatiza la Configuración de tus datos para enumerar un PIC 18Fxx5x
« Respuesta #29 en: 25 de Marzo de 2008, 20:48:19 »
Eso de ubicacion es esos 0000 que aparece siempre? Asi se identifican cada dispositivo de una misma GUID? Y si se repite esa misma ubicacion?  :shock:
Ah, y si cambio eso de ubicacion, nada pasa en el .inf. Es acaso interno o algo parecido? Porque en el .inf no sale nisiquiera el nombre default que le pones (YO PICUSB)

Porcierto, en el .inf que se crea, en String Definitions... INSTDISK="Microchip Technology, Inc. Installation Disc". Este dato no es modificable, porque? que hace?

Disculpa tantas preguntas  :lol:
Gracias nuevamente por compartir tan grandioso programa!

Un saludete!  :-/


 

anything