Я модифицирую существующий код, который отправляет и получает данные через USB. Данные вводятся в текстовое поле в формате ascii, преобразуются в необработанные данные ie '1' = 01h и затем отправляются в обработчик USB.
У меня есть следующий код для преобразования из строки в шестнадцатеричный код:
String^ TestString = TxDataTB->Text;
//Prepare a USB OUT data packet to send to the device firmware
//convert to a byte array
Encoding^ ascii = Encoding::GetEncoding("iso-8859-1");
array<Byte>^ TxHexData = ascii->GetBytes(TestString);
cli::pin_ptr<UCHAR> pin_ptr_n = &TxHexData[0];
UCHAR* ptr_n = pin_ptr_n;
//Now send the USB packet data in the OUTBuffer[] to the device firmware.
USBHandler->SendData(ptr_n, Msglength, PipeNo);
Это, кажется, делает работу хорошо, я проверил это с точкой останова (пока нет аппаратного обеспечения!). Я изо всех сил пытаюсь найти метод для преобразования полученных данных в строку ^ - getBytes, кажется, работает только с данными, которые уже находятся в закодированном формате; Кажется, что преобразование работает только с массивом ^, и я даже не могу найти способ преобразовать char [] в массив ^ Отправка данных в формате ascii в этом приложении невозможна