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.