Как передать динамическое значение в массив байтов

Вот мой код:

private void send_char_0(string R, string G, string B)
        {
            string r = R;
            string g = G;
            string b = B;
            string strData = null;
            int i = 0;
            byte[] data_array = new byte[3]{0xff,0xef,0xff};
        }

Я привел шестнадцатеричные значения в строке R, G, B соответственно, но когда я передаю их, byte[] data_array = new byte[3]{R,G,B}; -> строка ошибки не может быть преобразована в байт.

Итак, я попытался преобразовать dataarray[0] = Convert.ToByte(R), т.е. Convert.ToByte(0xff)--> ошибка Входная строка имеет неправильный формат, поскольку 0xff . должен иметь " ff», но мне нужно передать его как «oxff» на последовательный порт.

Любой может мне помочь


person Alok Sharma    schedule 31.08.2015    source источник
comment
Какое это имеет отношение к JavaScript?   -  person    schedule 31.08.2015
comment
Вы ищете это? stackoverflow.com/questions/5647328/   -  person tbddeveloper    schedule 31.08.2015
comment
Это не джаваскрипт.   -  person CodingGorilla    schedule 31.08.2015
comment
Почему вы передаете байты в виде строк в функцию?   -  person Alex Lebedev    schedule 31.08.2015
comment
Поскольку я беру значения R, G, B из пользовательского интерфейса через javascript в виде строки, и когда мне нужно передать байты данных в последовательный порт, мне нужно преобразовать 0xff из 255 для отправки в виде байтов.   -  person Alok Sharma    schedule 31.08.2015


Ответы (1)


Вы передаете строки в массив байтов. Попробуй это:

private void send_char_0(string R, string G, string B)
{
    byte r = byte.Parse(R,NumberStyles.HexNumber);
    byte g = byte.Parse(G,NumberStyles.HexNumber);
    byte b = byte.Parse(B,NumberStyles.HexNumber);
    byte[] data_array = new byte[3]{r,g,b};
 }

Вам, вероятно, потребуется добавить некоторую проверку правильности этих данных, так как они исходят от пользователя,

person Alex Lebedev    schedule 31.08.2015
comment
Привет Алекс, Но это все еще дает мне ошибку Входная строка имеет неправильный формат, так как мы пытаемся преобразовать 0xff в байт. Я пробовал с NumberStyle.AllowHexSpecifier, но не работал - person Alok Sharma; 31.08.2015