0

そのため、C# で serialport オブジェクトを介してデバイスと通信しようとしています。デバイスは、コマンド文字列の一部として送信されるマスク値を探しています。たとえば、文字列の 1 つは「SETMASK:{}」のようなものになります。ここで、{} は符号なし 8 ビット マスクです。

端末 (BRAY など) を使用してデバイスと通信すると、デバイスを動作させることができます。たとえば、BRAY 端末では、文字列 SETMASK:$FF はマスクを 0xFF に設定します。ただし、C#でこれを行う方法を理解することはできません。

Data がマスク値で、CMD が周囲の文字列 ("SETMASK:" in this case") である次の関数を既に試しました。

public static string EmbedDataInString(string Cmd, byte Data)
    {
        byte[] ConvertedToByteArray = new byte[(Cmd.Length * sizeof(char)) + 2];
        System.Buffer.BlockCopy(Cmd.ToCharArray(), 0, ConvertedToByteArray, 0, ConvertedToByteArray.Length - 2);

        ConvertedToByteArray[ConvertedToByteArray.Length - 2] = Data;

        /*Add on null terminator*/
        ConvertedToByteArray[ConvertedToByteArray.Length - 1] = (byte)0x00;

        Cmd = System.Text.Encoding.Unicode.GetString(ConvertedToByteArray);

        return Cmd;
    }
4

2 に答える 2