Отправка unsigned short с классом System.IO.Ports с использованием C ++ / CLR? - PullRequest
0 голосов
/ 11 февраля 2020

В настоящее время я использую C ++ / CLI для связи с последовательным портом, но у меня есть некоторые проблемы при записи данных для регистрации. У меня такая структура, и

    typedef struct {
    unsigned short  startCharacter, 
    length;
    unsigned int    data[5], 
    checksum; 
} message;

Я хочу отправлять его членов по одному после получения ответа из реестра. По этой ссылке https://docs.microsoft.com/en-gb/dotnet/api/system.io.ports.serialport?view=netframework-4.8 этот метод имеет 3 перегрузки и ни одного из этого возьмите unsigned short в качестве параметра.

Write(String)   

Write(Byte[], Int32, Int32) 

Write(Char[], Int32, Int32)

Мой вопрос: могу ли я использовать Byte [] или Char [] для отправки unsigned short или unsigned int, и нужно ли мне каждый раз создавать что-то подобное перед отправкой данных?

array<unsigned char>^ startCharacterMessage=array<unsigned char>(2);

System::Runtime::InteropServices::Marshal::Copy( IntPtr( ( void * ) startCharacter), startCharacterMessage, 0, dataSize );

serial->Write(startCharacterMessage,0,2);
...