Pb driver USB

thedebutant11 Messages postés 7 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 9 avril 2009 - 27 mars 2009 à 12:41
thedebutant11 Messages postés 7 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 9 avril 2009 - 9 avril 2009 à 16:40
Bonjour,
Je voudrais savoir, si quelqu'un à déja créer un driver USB sous borland, ou si vous auriez réussi à trouver des infos sur usbprint.sys  (son code) car je ne trouve rien de très intéressant..

Cordialement

2 réponses

thedebutant11 Messages postés 7 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 9 avril 2009
9 avril 2009 à 08:51
Bonjour,
finalenement je n'est pas créer un driver, je contrôle grâce à createfile mon convertisseur USB port parallèle qui fonctionne bien. Mais quand je veut faire une simple écriture avec Writefile, le pb c'est que je suis obligé d'intercaller un reset_soft (je ne sais pas exactement ce qu'il fait) entre chaque écriture pour que sur le port parallèle je puisse voir les valeur envoyer.
Le driver utilisé est USBprint et la config. du port parallèle est:
connection Busy et PE à la masse via une resistance
connection SLCT et ERROR à INIT via une resistance
voici ce que je suis obligé de faire:

char command12 = 0x55;
char command22 = 0xAA;
char command32 = 0x04;

/*Marche que la première fois si le programme n'arrive pas jusqu'au reset*/
bool a = WriteFile(USBhandle, &command12, 1, &written, NULL);
ShowMessage(SysErrorMessage(GetLastError())+" command12 0x01");    

 a = WriteFile(USBhandle, &command22, 1, &written, NULL);           DeviceIoControl(  USBhandle,
                IOCTL_USBPRINT_SOFT_RESET, //Renvoie true si OK
                NULL,
                0,
                &temp,
                255,
                &written,
                NULL
                );
// message d'erreur
ShowMessage(SysErrorMessage(GetLastError())+" reset");


 a = WriteFile(USBhandle, &command22, 1, &written, NULL);
// message d'erreur
ShowMessage(SysErrorMessage(GetLastError())+" command2");
DeviceIoControl(  USBhandle,
                IOCTL_USBPRINT_SOFT_RESET, //Renvoie true si OK
                NULL,
                0,
                &temp,
                255,
                &written,
                NULL
                );


a = WriteFile(USBhandle, command3, 3, &written, NULL);
// message d'erreur
ShowMessage(SysErrorMessage(GetLastError())+" command3");


bool IoctlReset = DeviceIoControl(  USBhandle,
                                IOCTL_USBPRINT_SOFT_RESET, 
                                NULL,
                                0,
                                &temp,
                                255,
                                &written,
                                NULL
                              );
// message d'erreur
ShowMessage(SysErrorMessage(GetLastError())+" RESET");

Si ce n'est pas clair n'hésitez pas à me le dire.
0
thedebutant11 Messages postés 7 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 9 avril 2009
9 avril 2009 à 16:40
Ou sinon, à la place des reset il faut mettre à 0 la ligne Busy. Mais je ne vois pas comment le commander logiciellement sachant que je ne sais écrire que sur les broches de données (D0 à D7). Mais les broches de données sont passées au niveau 1 à busy donc je pense rester bloquer. 
0
Rejoignez-nous