블루투스 연결을 사용하여 웨어러블 장치를 IDE에 연결하려고합니다. 전에는 Windows OS에서 작동하도록 만들었지 만 Linux Mint로는 제대로 작동하지 않으려 고 노력하고 있습니다. 제대로 작동하도록 만들면 상황이 더욱 악화되어 스스로를 명확하게 설명하려고 노력할 것입니다. 가능한 한.블루투스 RFCOMM 연결 리눅스
초에
첫 번째 문제는, 나는 rfcomm0 포트에 처리에서 연결할 수 있었지만 그것은 단지 내가 255 컨텐츠 바이트 보냈다. 예를 들어, myPort.write (0x03)와 같은 명령을 보내서 웨어러블 장치의 스트리밍 샘플을 가져온 경우, 그 장치는 나에게 255 바이트를 보냈습니다. 같은 프로그램이지만 창에서 실행 중입니다. 장치에 요청한 모든 데이터가 있으므로 rfcomm0 포트에 문제가 있어야합니다. 제은/etc/블루투스이 닮은 : 06 : 66 : 42 : 10 : 44, I는 연결할 수 있었다 관리자로 처리를 실행하는 장치가 이미 RFCOMM 바인드 0 00 일, 페어링 된
rfcomm0 {
# Automatically bind the device at startup
bind yes;
# Bluetooth address of the device
device 00:06:66:42:10:44;
# RFCOMM channel for the connection
channel 1;
# Description of the connection
comment "Example Bluetooth device";
}
포트 (내가 말했듯이 올바른 데이터를받지 못함). 나는 정말로 시리얼 포트에서 새로운 것이지만 내 추측은 아마 채널 번호 1이 맞지 않을 것입니다. 어떤 채널을 사용해야하는지 어떻게 알 수 있습니까?
SECOND PROBLEM
를 해결하려고 I는 RFCOMM 해제 rfcomm0 사용 (RFCOMM 바인드 다시 0 0시 6분 결합 후 채널 0 (다른 하나를 테스트하기 위해) 및 설정 rfcomm0 파일을 변경 : 66 : 42 : 10 : 44 0, 확인은 다른 채널에 연결하게) 내가 연결을 시도 할 때이 오류가 계속 처리를 실행 : 실제로 존재하는이 포트에 대한
Error opening serial port /dev/rfcomm0: Port not found
파일을. 나는/dev/rfcomm0에 파일의 허가 마스크를 crw-rw-rw- 1 root dialout 216, 0 4 월 30 일 17:04/dev/rfcomm0으로 설정했다.
rfcomm0: 00:06:66:42:10:44 channel 0 clean
그래서 ... 어떤 도움 : 나는 명령 RFCOMM을 사용하는 경우
는 나에게이 있습니다?
안부
편집
I는 채널 0에 RFCOMM 연결하면 두 번째 문제가 발생합니다. 그래서 :
-Channel 0 -> Port not found
-Channel 1 -> Bytes with 255.
-Channel X -> Nothing.
그냥 Windows에서 동일한 코드가 잘 작동 기억합니다.
2
확인 편집, 착용 할 수있는 디바이스가 나는 방법 DRAW (메시지를 보낼 때 정보 바이트를 보내 주 ... 내가 뭔가를 얻고 것) buuuut 이런 종류의 내가해야하기 때문에 짜증 그것을 설정 방법에서해라. (그리기 방법에서 StartStreaming에 메시지를 보내는 것은 의미가 없다. 항상이 메시지를 보낸다.)
편집 3
이 ... 시간이 문제가 될 것으로 보인다 내가 설정 기능에서이 작업을 수행하는 경우 :
for(int i = 0; i < 50; i++){
delay(200);
getSampleRate();
}
난 그냥 4 ~ 5 배 답변 패키지를 얻을 ... 나는 정말로 무슨 일이 일어나고 있는지 전혀 모른다.
void setup()
{
size(windowW, windowH);
smooth();
// List all the available serial ports:
println(Serial.list());
try {
myPort = new Serial(this, Serial.list()[0], 115200);
} catch (Exception e) {
println(e.getMessage());
connectionError = true;
}
delay(2000);
/*
for(int i = 0; i < 50000; i++){
delay(200);
getSampleRate();
}
*/
}
void draw(){
background(255);
}
// Called whenever there is something available to read
void serialEvent(Serial port) {
int bytesAvailable = myPort.available();
for(int i = 0; i < bytesAvailable; i++){
println("Byte:", port.read());
}
}
최종 편집
음, 많은 테스트를 연구 한 후에 나는 문제가 단지 리눅스에서 블루투스를 사용하여 포트 연결에 대한 생각 :
이 전체 코드입니다. 나는 Windows와 MAC에서 동일한 코드를 시도했는데 모든 것이 잘 돌아 간다. ...