BitArray 변환에 대한 다른 게시물을 읽었으며 여러 가지를 시도했지만 원하는 결과를 제공하지 못했습니다.BitArray를 작은 바이트 배열로 변환합니다.
내 상황이 그렇듯이 LED 스트립을 제어하는 일부 C# 코드가 있습니다. (2 색 X3 용 스트립 포지션
6 (최대 48 드레서의 LED)를
7지도 사이 I가 선택하는 대부분의 28 비트로
1 비트를 필요로하는 스트립 0- 하나의 명령을 실행하려면 127 value for color)
그 구조체에 대한 BitArray를 만들고 예를 들어 세미 배열을 반값식으로 채 웁니다.
BitArray ba = new BitArray(28);
for(int i = 0 ;i < 28; i++)
{
if (i % 3 == 0)
ba.Set(i, true);
else
ba.Set(i, false);
}
은 지금은 4 바이트 (마지막 4 비트가 정지 신호를 할 수 있습니다)에 그 28 비트 스틱, 그리고 마지막으로 나는 LED 스트립에 USB를 통해 문자열을 보낼 수 있도록 문자열로 돌려 싶다.
내가 시도한 모든 방법은 각 1과 0을 목표가 아닌 리터럴 char로 변환합니다.
C#에서이 비트 압축을 수행하는 간단한 방법이 있습니까?
byte[] bytes = new byte[4];
ba.CopyTo(bytes, 0);
또는 :
감사합니다. 나는 실제로 문자열 표현에 관심이 없다. 현재 사용하는 시스템은 문자열 인코딩을 사용하여 통신하지만 17 바이트를 보내면 동일한 정보가 전달됩니다. LibUsbDotNet의 send 메소드가 요청하기 때문에 문자열로만 변환합니다. 이번 주말에 제공 한 솔루션으로 작업하여 전송을 최적화 할 수 있는지 알아 보겠습니다. – RGroppa