자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi [질문] 블루투스 송,수신...
2016.12.28 11:50
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
델파이 시애틀로 개발중입니다.
블루투스를 이용한 데이타(TEXT)를 송.수신 하려고 합니다
(테스트 환경)
PC(windows) ---- (블루투스연결)---- > 블루투스 모듈 2.0 ----- (RS232 연결)----- > PC(Windows)
문제가 되는 부분 이라고 예상되는 부분
procedure TServerConnectionTH.execute;
var
ASocket: TBluetoothSocket;
Msg: string;
begin
while not Terminated do
try
ASocket := nil;
while not Terminated and (ASocket = nil) do
ASocket := FServerSocket.Accept(100);
if(ASocket <> nil) then
begin
FSocket := ASocket;
while not Terminated do
begin
FData := ASocket.ReadData;
if length(FData) > 0 then
Synchronize(procedure
begin
Form1.DisplayR.Lines.Add(TEncoding.UTF8.GetString(FData));
Form1.DisplayR.GoToTextEnd;
end);
sleep(100);
end;
end;
except
on E : Exception do
begin
Msg := E.Message;
Synchronize(procedure
begin
Form1.DisplayR.Lines.Add('Server Socket closed: ' + Msg);
Form1.DisplayR.GoToTextEnd;
end);
end;
end;
end;
이내용은 제공되는 기본예제인 Classic Bluetooth Basic app와 동일 합니다.
PC와 블루투스모듈 (블루투스 연결 후 )
PC에서 블루투스 모듈로 ( TEXT를 송신을 하면 ) 블루투스 모듈에서 PC(RS232)로 RX 로 수신은 정상적으로 됩니다.
문제점
PC(RX232) 로 블루투스 모듈로 (TEXT를 송신을 하면 ) 블루투스 모듈을 통해서 PC(블루투스) 수신을 할려고 하는데
해당부분에서
while not Terminated and (ASocket = nil) do
ASocket := FServerSocket.Accept(100);
무한루프를 돌며, 소켓에 값이 전달이 되지 않습니다. (디버깅을 해서 보아도 스레드의 값은 NIL .....)
/// 하지만 From1.Fscockt.Readdata의 값은 NIL 이 아닌 필자가 보낸 Text를 가지고 있습니다.
이해를 잘못하고 있는것인지 '';.... 모르겠네요 ..
첨부파일은 소스입니다.
목적 : PC와 블루투스모듈과 블루투스 연결되어 데이터 송,수신 될수 있도록 하려고 합니다.
안드로이드(핸드폰,테블릿)과 블루투스 모듈과 블루트스 연결하여 데이터 송,수신 할려고 합니다.
댓글 2
Delphi [질문] 블루투스 송,수신...
2016.12.28 11:50
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
델파이 시애틀로 개발중입니다.
블루투스를 이용한 데이타(TEXT)를 송.수신 하려고 합니다
(테스트 환경)
PC(windows) ---- (블루투스연결)---- > 블루투스 모듈 2.0 ----- (RS232 연결)----- > PC(Windows)
문제가 되는 부분 이라고 예상되는 부분
procedure TServerConnectionTH.execute;
var
ASocket: TBluetoothSocket;
Msg: string;
begin
while not Terminated do
try
ASocket := nil;
while not Terminated and (ASocket = nil) do
ASocket := FServerSocket.Accept(100);
if(ASocket <> nil) then
begin
FSocket := ASocket;
while not Terminated do
begin
FData := ASocket.ReadData;
if length(FData) > 0 then
Synchronize(procedure
begin
Form1.DisplayR.Lines.Add(TEncoding.UTF8.GetString(FData));
Form1.DisplayR.GoToTextEnd;
end);
sleep(100);
end;
end;
except
on E : Exception do
begin
Msg := E.Message;
Synchronize(procedure
begin
Form1.DisplayR.Lines.Add('Server Socket closed: ' + Msg);
Form1.DisplayR.GoToTextEnd;
end);
end;
end;
end;
이내용은 제공되는 기본예제인 Classic Bluetooth Basic app와 동일 합니다.
PC와 블루투스모듈 (블루투스 연결 후 )
PC에서 블루투스 모듈로 ( TEXT를 송신을 하면 ) 블루투스 모듈에서 PC(RS232)로 RX 로 수신은 정상적으로 됩니다.
문제점
PC(RX232) 로 블루투스 모듈로 (TEXT를 송신을 하면 ) 블루투스 모듈을 통해서 PC(블루투스) 수신을 할려고 하는데
해당부분에서
while not Terminated and (ASocket = nil) do
ASocket := FServerSocket.Accept(100);
무한루프를 돌며, 소켓에 값이 전달이 되지 않습니다. (디버깅을 해서 보아도 스레드의 값은 NIL .....)
/// 하지만 From1.Fscockt.Readdata의 값은 NIL 이 아닌 필자가 보낸 Text를 가지고 있습니다.
이해를 잘못하고 있는것인지 '';.... 모르겠네요 ..
첨부파일은 소스입니다.
목적 : PC와 블루투스모듈과 블루투스 연결되어 데이터 송,수신 될수 있도록 하려고 합니다.
안드로이드(핸드폰,테블릿)과 블루투스 모듈과 블루트스 연결하여 데이터 송,수신 할려고 합니다.
클래식 블루투스 사용에 대한 자료가 있습니다. 한 번 참조하시기 바랍니다.
http://blog.hjf.pe.kr/383