Проблемы при передаче данных с телефона Android на последовательное устройство с использованием компонента Bluetooth - PullRequest
0 голосов
/ 11 октября 2018

извините, если мой заголовок не очень точный.

Я пытаюсь перенести байтовые данные с телефона Android на последовательное устройство.Как вы можете видеть ниже, данные, которые я хочу отправить, являются байтовым массивом со значениями Hex.если я отправлю их так, как я делаю прямо сейчас, на мониторе последовательного порта RealTerm отображаются значения, отличные от отправленных (F0 F0 FC F3).

void __fastcall Blue::send(Byte * data, int len)
{
    TBytes DataToSend;
    DataToSend.set_length(1);

    for(int i = 0; i < len; i++)
    {
        DataToSend= ToBytes(data[i]);
        if(!btSocket->Connected)
            btSocket->Connect();
        btSocket->SendData(toSend);
    }
}

int Bluetooth::sendMessage(void *data, unsigned short len)
{
    Byte bff[4] = {'\AA', '\x55', '\xA5', '\x5A'};
    unsigned short crc;

    crc = util->calcCRC((unsigned long)data, len / 2);

    send(bff, 4);
    send((Byte *)data, len);
    return 0;
}

Таким образом я получаю соединение

TBluetoothSocket* Bluetooth::getBtSocket()
{
    if(btSocket == NULL)
    {
        TBluetoothDevice * lDevice = fPairedDevices->Items[Form1->ComboBoxPairedDevices->ItemIndex];
        btSocket = lDevice->CreateClientSocket(StringToGUID(ServiceGUI), false);
    }
    return btSocket;
}

поэтому первое, что я делаю, это отправляю bff как начальную последовательность, а затем я хочу отправить остальные данные, используя последовательную связь.btSocket - это просто TBluetoothSocket.

Как бы глупо это ни звучало, на самом деле это была скорость передачи данных.

1 Ответ

0 голосов
/ 11 октября 2018

Установите правильную скорость передачи в вашем RealTerm;)

...