2015-08-31 2 views
2

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

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}; 
     } 

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

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

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

+0

Что это нужно делать с JavaScript? –

+1

Вы ищете это? http://stackoverflow.com/questions/5647328/c-sharp-convert-a-string-of-hex-values-to-hex – Hammerstein

+0

Это не javascript. – CodingGorilla

ответ

0

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

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}; 
} 

Вы, вероятно, нужно будет добавить некоторые проверки, если эти данные правильно, так как он АМСВО от пользователя,

+0

Привет, Алекс, но он все еще дает me error «Строка ввода не в правильном формате», поскольку мы пытаемся преобразовать 0xff в байт. Я пробовал с NumberStyle.AllowHexSpecifier, но не работал –

Смежные вопросы