1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HANDLE handle = CreateFile(
"\\\\.\\USB#Vid_067b&Pid_2305#5&36c701f9&0&10#{a5dcbf10-6530-11d2-901f-00c04fb951ed}",
GENERIC_WRITE, // | GENERIC_READ,
FILE_SHARE_WRITE, // | FILE_SHARE_READ,
NULL,
OPEN_EXISTING, // OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, // | FILE_FLAG_SEQUENTIAL_SCAN,
NULL
);
// message d'erreur
// si Ok " Opération réussie "
// si Erreur " Le fichier spécifié est introuvable "
ShowMessage(SysErrorMessage(GetLastError()));
DWORD written;
// Paquet Jeton (TOKEN)
char command1[6] = {0x01, // SYNC
0x87, // PID OUT 0001->1000 complement 1110->0111 envoye 10000111->0X87
0x80, // ADDR 01->0x80
0x40, // ENDP 02->40
0xB8, // CRC5 1D->B8
0x01}; // EOF
// Paquet Donnees (DATA)
char command2[6] = {0x01, // SYNC
0xC3, // DATA0
0x01, // donnees envoyees
0xE4, // CRC16 02->40 FD->BF - A727->E4E5
0xE5,
0x01}; // EOF
// Paquet de control (HANDSHAKE)
char command3[3] = {0x01, // SYNC
0x4B, // ACK
0x01}; // EOF
// WriteFile &gOverlapped
int a = WriteFile(handle, command1, 6, &written, NULL);
// message d'erreur
//ShowMessage(SysErrorMessage(GetLastError()));
a = WriteFile(handle, command2, 6, &written, NULL);
// message d'erreur
//ShowMessage(SysErrorMessage(GetLastError()));
a = WriteFile(handle, command3, 3, &written, NULL);
// message d'erreur
//ShowMessage(SysErrorMessage(GetLastError()));
CloseHandle( handle );
} |
Partager