Получите ответ через Bluetooth SPP в качестве клиента - Tizen. NET - PullRequest
0 голосов
/ 26 января 2020

Я пытаюсь получить ответы через BT SPP для моего клиентского устройства, подключенного к серверу. После создания клиентского сокета и инициирования соединения Client = device.CreateSocket(ServiceUuid); Client.ConnectionStateChanged += ClientConnectionStateChanged; device.ConnectionStateChanged += DeviceConnectionStateChanged; device.CreateBond();

я вызываю метод connect в обратном вызове соединения Client.Connect();, а затем подписываюсь на событие OnDataReceived Client.DataReceived += OnDataReceived;

Теперь все работает но OnDataReceived никогда не вызывается, как будто данные не возвращаются. Но так как я также контролирую сервер, который работает на дополнительном устройстве, я знаю, что данные отправляются обратно, так почему они не получены?

1 Ответ

0 голосов
/ 28 января 2020

Пожалуйста, ознакомьтесь с приведенным ниже тестовым кодом для функции DataReceived ().

[https://review.tizen.org/gerrit/gitweb?p=test / tct / csharp / api.git; a = blob; f = tct-suite-vs / Tizen .Bluetooth.Manual.Tests / testcase / TSIBluetoothServerSocket.cs; h = a52a38bb2ce46e384ca24897c27a694173d47fff; hb = refs /heads / tizen] [1]

303         public async Task DataReceived_CLIENT_EVENT()
304         {
305             try
306             {
307                 /* We can't occupy the precondition, if BT feature is not supported in Manual TC */
308                 if (_isBluetoothSupported == false)
309                 {
310                     BluetoothHelper.DisplayLabel("DataReceived_CLIENT_EVENT");
311                     await ManualTest.WaitForConfirm();
312                     return;
313                 }
314 
315                 BluetoothSetup.CreateClientSocketUtil();
316                 if (BluetoothSetup.Client == null)
317                 {
318                     ManualTest.DisplayCustomLabel("Precondition failed: Test device should be paired to the remote device.");
319                     await ManualTest.WaitForConfirm();
320                     return;
321                 }
322 
323                 await BluetoothSetup.ConnectSocketUtil();
324                 BluetoothSetup.Client.DataReceived += (sender, args) =>
325                 {
326                     Log.Info(Globals.LogTag, "DataReceived in client: "+args.Data.Data);
327                     BluetoothHelper.DisplayPassLabel("DataReceived_SERVER_EVENT");
328                 };
329                 await ManualTest.WaitForConfirm();

И, пожалуйста, проверьте, является ли результат успешным; или нет в обратном вызове ConnectionStateChanged.

...