Перейти к содержанию
  • Регистрация
  • 0
Авторизация  
M1shQa

Прием данных по BT

Вопрос

Как организовать правильный прием сообщений через блютус? В стандартном classic примере нету приема. Попробовал метод.ReceiveData; - работает, но морозит (ожидаемо) приложение. Сделал отдельный поток (тут я совсем новичок) и первый раз сообщение получается нормально , код примерно такой:

Цитата

ReceiveBytes:=FSocket.ReceiveData;
ReceiveString := TEncoding.UTF8.GetString(ReceiveBytes);
Memo1.Lines.Add(ReceiveString);

Как постоянно принимать что-либо без фриза приложения, может есть примеры какие?Причем оно и в потоке не всегда срабатывает, но если срабатывает, то только один раз. Пробовал добавить конструкцию repeat until terminated; - не помогло.

Цитата

procedure Reciever.Execute;
 begin
 repeat
 Synchronize(Viv);
 until terminated;
 end;

Может поток нужно как то перезапускать? или использовать что то другое?

UPD. Нашел функцию ресив дата

Цитата

function ReceiveData: TBytes; overload; inline;
var
receives:string;
begin
Form1.DisplayR.Lines.Add('БУМ!');
ReceiveS := TEncoding.UTF8.GetString(ReceiveData);
Form1.DisplayR.Lines.Add(ReceiveS);
end;

Но проблема та же, после первого получения - приложение нормально отправляет текст, но не получает его.

Изменено пользователем MikeWuzHere

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

  • 0

Переделал потоки (Один принимает данные, другой синхронит и отображает на мемо) , но всегда срабатывает эксепшн. Даже не знаю уже как принять данные так, чтоб приложение не фризилось.

UPD. В примере Классик БТ апп нашел функцию  procedure TServerConnectionTH.Execute; КОТОРАЯ И ДОЛЖНА ОТВЕЧАТЬ ЗА ПРИЕМ ТЕКСТА, но она как и ожидалось не работает, вообще.

Может есть какой ивент On Receive?

 

Изменено пользователем MikeWuzHere

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Свой обработчик приема пишется с секундамерами  и т.п.
по другому никак ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...