procedure TServerConnectionTH.Connect(index: integer);
begin
if (ServerConnectionTH = nil) and ManagerConnected then
begin
FAdapter := FBluetoothManager.CurrentAdapter;
if (FSocket = nil) or (ItemIndex <> index) then
begin
if index > -1 then
begin
LDevice := FPairedDevices[index] as TBluetoothDevice;
FSocket := LDevice.CreateClientSocket(StringToGUID(ServiceGUI), False);
if FSocket <> nil then
begin
ItemIndex := index;
FSocket.Connect;
Start;
end;
end;
end;
end;
end;
Всё отлично работает, проблемы начинаются если разнести устройства и связь обрывается.
Вопрос
Андрей Рулин
Сделал работу с BLueTooth , как в примере
https://www.programmersforum.ru/showthread.php?t=312413
procedure TServerConnectionTH.Connect(index: integer); begin if (ServerConnectionTH = nil) and ManagerConnected then begin FAdapter := FBluetoothManager.CurrentAdapter; if (FSocket = nil) or (ItemIndex <> index) then begin if index > -1 then begin LDevice := FPairedDevices[index] as TBluetoothDevice; FSocket := LDevice.CreateClientSocket(StringToGUID(ServiceGUI), False); if FSocket <> nil then begin ItemIndex := index; FSocket.Connect; Start; end; end; end; end; end;
Всё отлично работает, проблемы начинаются если разнести устройства и связь обрывается.
После этого они уже между собой знаться не хотят и выдаётся сообщение 'IOException: Broken Pipe' .
Иногда восстановления связи даже после однократного перезапуска программы не происходит.
Кто-то решал подобную задачу?
Ссылка на комментарий
8 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.