현재 SAS602을 사용하여 슬롯 머신과 인터페이스하기 위해 슬롯 어카운팅 시스템을 구현 중입니다. 이 프로토콜은 직렬 통신을 위해 비표준 9 비트 프로토콜을 사용합니다. 그래서 데이터는 시작 비트 + 8 데이터 비트 +1 스톱 비트 +1 웨이크 업 비트 (나의 경우 패리티 비트)Java를 사용하여 원시 직렬 데이터를 읽는 방법?
슬롯 머신은 웨이크 업 비트를 기반으로 주소 바이트와 데이터 바이트를 식별합니다. 설정되어 있으면 바이트는 주소이며 지워지고 데이터 바이트입니다.
9 비트 지원을 사용할 수없는 프로토콜에서도 언급되는데 이는 표식/공간 패리티를 사용하는 것이 좋습니다. 나는 jserialcom와 자바에 있고 슬롯 머신과 연결을 확립하고 데이터를 읽을 수 있었다. 그러나 jserialcomm 라이브러리 readbytes 원시 데이터를 스트립 및 나만 데이터 바이트 제공하기 때문에 데이터와 주소 바이트를 구별 할 수 없습니다. 패리티 비트 상태에 액세스 할 수 없습니다.
Java로 원시 11 비트 데이터를 가져올 수 있습니까? 심지어 가능할까요? 그렇다면 어떻게해야합니까?
라이브러리 또는 Linux 플랫폼을 엽니 다.
글쎄, 그 하나의 라이브러리가 당신에게 필요한 것을주지 않는다면; 나는 대안을 찾기 시작할 것입니다. 최악의 경우, 소스 코드를 조사해야합니다. 그 일의 자신의 버전을 생각해 내고 ... 당신에게 그것을 적응 시켜라. – GhostCat
나는 당신이 원시 소켓에 의지해야하고 당신 자신의 모든 지저분한 것들을 다루어야 할 것입니다. Slot 공급 업체가 그러한 라이브러리를 제공하지 않는다면, 다른 누구도 그렇게 생각하지 않을 것입니다. 투표가 종료 됨 - 적합하지 않음. – duffymo
* "데이터가 1 시작 비트 + 8 데이터 비트 + 1 정지 비트 + 1 깨우기 비트"* - 프레임 외부에 정보 비트가있는 것은 비현실적입니다 (즉, 정지 비트 이후). * UART/USART/SSC는 시작 및 정지 프레이밍 비트를 보존하지 않습니다. 고정 값이므로 정보가 없습니다. – sawdust