Перейти к содержанию
Fire Monkey от А до Я

zheka1980

Пользователи
  • Постов

    15
  • Зарегистрирован

  • Посещение

Активность репутации

  1. Like
    zheka1980 получил реакцию от Anatoliy в Странности с чтением данных по TBuetooth   
    TBytes FData; FData=Socket->ReceiveData(100); len_rx=FData.Length; Memo1->Lines->Add(len_rx); Memo1->Lines->Add(TEncoding::UTF8->GetString(FData)); len_rx=0; if(len_rx == 0) { TArray__1<System::Byte> * buffer = new TArray__1<System::Byte>; buffer->set_length(6); (*buffer)[0] = 'r'; (*buffer)[1] = 'e'; (*buffer)[2] = 's'; (*buffer)[3] = 'e'; (*buffer)[4] = 't'; (*buffer)[5] = 0x0D; Socket->SendData(*buffer); delete buffer; } Вышеприведенный код запускается по таймеру каждую секунду - командой "reset" целевое устройство отправляется в перезагрузку, после чего отвечает, мол здесь я.
    То есть вначале проверяется нет ли чего в буфере приема (не ответило ли целевое устройство), а если ответа нет, команда на ресет подается повторно.
    То что len_rx принудительно сбрасывается в ноль - не обращайте внимания, это временно для отладки.
     
    Так вот, что меня смущает - количество байт в FData, почему то всегда равно размеру buffer
    Я было подумал, что где-то я эти переменные приравниваю друг к другу - ан нет. То, что оказывается в FData, является правильными данными, то есть тем, что шлет целевое устройство в ответ.
    В чем причина? И чем отлиючаются ReadData и ReceiveData? Это буфера или нет? Как они работают? Что-то не густо информации в интернете.
     
    Вот дока http://docwiki.embarcadero.com/Libraries/Berlin/en/System.Bluetooth.TBluetoothSocket.ReadData
    но она как-то не сильно помогает.
     
  2. Like
    zheka1980 получил реакцию от Anatoliy в Как отследить работу диалога сопряжения с блютус?   
    Хм... для меня явилось откровением, что оказывается сопряжение то и не требуется чтобы подключиться  к устройству...
    У меня до этого была какая-то библиотека на Java, так она вообще работала только лишь с сопряженными устройствами. Что и сбило меня с толку.
    Попробовал без сопряжения- сокет создается, данные гонятся.
    Так что можно считать, что проблема исчерпана.
×
×
  • Создать...