자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi 블루투스 송수신 질문이 있습니다.
2018.03.23 21:22
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
밑에 블루투스 질문글에서 제공해주신 예제를 보고(http://c2design5sh.blogspot.kr/2015/08/BTAcc.html)
블루투스로 데이터 전송을 성공했는데 데이터를 수신받는 예제나 참고자료를 얻을 수 있을까요?
댓글 3
Delphi 블루투스 송수신 질문이 있습니다.
2018.03.23 21:22
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
밑에 블루투스 질문글에서 제공해주신 예제를 보고(http://c2design5sh.blogspot.kr/2015/08/BTAcc.html)
블루투스로 데이터 전송을 성공했는데 데이터를 수신받는 예제나 참고자료를 얻을 수 있을까요?
HM-10 블루투스 모듈을 이용하신 것 같습니다.
데이터 주고받는 UUID는 {0000FFE1-0000-1000-8000-00805F9B34FB} 가 되겠지요?
보내는 것은 성공하셨다고 하니, 수신하는 부분에 대하여 알려 드립니다.
HM-10은 송수신시 사용하는 UUID가 같기 때문에, 동일한 UUID를 사용하면 됩니다.
제가 작업했던 것 요약해서 보여드리면.. (실행은 안됩니다. 개인 상황에 맞추어 수정하셔야 합니다)
TConnectionInfo = record
ServiceUUID: TBluetoothUUID;
ReadUUID: TBluetoothUUID;
WriteUUID: TBluetoothUUID;
end;
TDevice = class
private
oDevice: TBluetoothLEDevice;
FConnectionInfo: TConnectionInfo;
FWeightGattService: TBluetoothGattService;
FWeightReadCharacteristic: TBluetoothGattCharacteristic;
FWeightWriteCharacteristic: TBluetoothGattCharacteristic;
fucntion GetService: Boolean;
procedure DoCharacteristicRead(const Sender: TObject;
const ACharacteristic: TBluetoothGattCharacteristic;
AGattStatus: TBluetoothGattStatus);
end;
const
BLE: [0..0] of TConnectionInfo = ( // HM10
(
ServiceUUID : '{0000FFE0-0000-1000-8000-00805F9B34FB}';
ReadUUID : '{0000FFE1-0000-1000-8000-00805F9B34FB}';
WriteUUID : '{0000FFE1-0000-1000-8000-00805F9B34FB}';
)
function TDevice.GetService: Boolean;
begin
result := False;
FWeightGattService := oDevice.GetService(FConnectionInfo.ServiceUUID);
// Write Characteristic은 설정하셨을 것이고요...
FWeightWriteCharacteristic := FWeightGattService.GetCharacteristic(FConnectionInfo.WriteUUID);
// 이부분에서 Read Characteristic을 설정해 주서야 합니다.
FWeightReadCharacteristic := FWeightGattService.GetCharacteristic(FConnectionInfo.ReadUUID);
// 데이터를 수신받을 함수를 세팅합니다.
if FWeightReadCharacteristic <> nil then
oDevice.OnCharacteristicRead := DoCharacteristicRead;
end;
end;
end;
도움이 되시길...