데이터를위한 여러 직렬 포트를 폴링하고 결과를 데이터베이스에 저장하는 realbasic 콘솔 어플리케이션을 작성하고 있습니다.realbasic 살아있는 지 알기 위해 시리얼 포트를 테스트합니다.
나의 초기 아이디어는 포트를 열고 데이터를 읽은 다음 다시 닫는 것이 었습니다. 문제는 직렬 포트를 여는 데 최대 4 초가 걸릴 수 있으며 최대 8 개의 포트를 읽을 필요가 있습니다. 포트의 개폐는 각 사이클마다 실용적이지 않습니다.
직렬 장치가 열려있는 포트에서 연결이 끊어져서 문제가 발생할 가능성이 높습니다.
포트가 열린 상태인지 여부를 감지하여 연결된 장치가 사라진 것을 감지하면 포트를 열린 상태로두고 닫은 다음 다시 열 수 있습니다.
편집
직렬 포트는 블루투스 라디오를 말하고, 블루투스 시리얼 포트 인 마이크로 컨트롤러 차례 회담한다. 블루투스 장치가 범위를 벗어나 효과적으로 직렬 포트를 열어두기 전까지는 듣고 시작하는 모든 문자가 시작과 끝 문자가 있습니다.
물론 포트를 닫고 다시 열어도되지만 장치가 여전히 블루투스 시리얼 포트에 연결되어 있는지 감지하고 싶습니다.
또한 OSX의 직렬 포트에서 serial.close()를 호출하면 일시적인 정지 (바탕 화면 커서가 멈추는 경우)가 발생하며 100 % CPU 사용이 의심됩니다. 이는 Windows에서 발생하지 않기 때문에 포트는 1 분에 10 개의 블루투스 장치에서 데이터를 폴링 할 때 열어야하는 작업입니다.
직렬 포트를 여는 데 최대 4 초가 걸리기 때문에 SPP 직렬 연결 대신 블루투스 라디오에 직접 HID 연결을 사용하는 것이 가장 좋은 해결책이지만, 아무도 실제와 연결하지 않은 것처럼 보입니다. 전에는 블루투스 HID 장치가 없으므로 정보 나 도움이 필요하지 않습니다.
어떤 OS가 필요합니까? –
안녕, 토마스, 윈도우 및 OSX 플랫폼. 시리얼은 여전히 상대적으로 느리다. 가장 좋은 해결책은 블루투스 장치를 HID 장치로 얘기하는 것이지만, 전에는 (비 -USB) HID 장치에 연결하기 위해 realbasic을 사용한 적이 없다. – crankshaft
사용자 공간 장치 처리기를 설치하려면 RB 플러그인을 작성하거나 RB에서 대화하는 데몬을 작성해야합니다. 어느 쪽이든, 당신은 순수한 RB에서 이것을 할 수 없을 것입니다. –