2015-01-05 2 views
-3

직렬 포트를 통해 다음 바이트 배열을 전달하려고합니다. 직렬 포트를 통해 바이트 배열 전달

array[j].abc = 2; 
array[j].def = 4; 
array[j].gh = 6; 
array[j].ij = 0; 
array[j].jl = 1; 
array[j].fg= 1; 
array[j].bh = 2; 

나는 내가 번호로받을 수있는 방법

byte[] wtbin = TestSerializer.StructureToByteArray(array[j]); 
byte[] bharr = new byte[1]; 
bharr[0] = wtbin[i]; 

serialPort1.Write(bharr, 0, 1); 

을 수행하지만하여 SerialPort 등 B, B와 같은 문자로 수신과 바이트 배열을 통과?

+0

당신은 "*하여 SerialPort가 * 수신"으로 무엇을 의미합니까

Encoding.ASCII.GetString(buffer); 

희망을 사용할 수 있습니까? 직렬 포트는 데이터를 처리하지 않습니다. –

+0

@CommuSoft : 데이터를보기 위해 'PUTTY.Exe'를 사용했습니다. 여기에서는 퍼티의 값이 B와 같음을 의미합니다. – DPM

답변

1

serialPort.Write() 메소드에 전체 바이트 배열 (일반적으로 버퍼라고 함)을 전달할 수 있습니다. 대신 당신이하는 일은 단일 바이트를 메서드에 전달하는 것입니다. 당신은 MSDN - SerialPort Write에하여 SerialPort에 대한 자세한 내용을보실 수 있습니다

serialport1.Write(wtbin, 0, wtbin.Length); 

: 귀하의 경우 메소드의 호출은 다음과 같을 것이다. 또한 ASCII 텍스트가 아닌 바이트를 보내고 있다는 것을 명심하십시오. 보내는 사람에 따라 PUTTY가 다른 것을 표시 할 수 있습니다. 바이트 배열 (버퍼) 다시 ASCII로 변환하기 위해, 당신이 도움이 :)

관련 문제