IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Delphi Bluetooth android


Sujet :

Delphi

  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 46
    Par défaut Delphi Bluetooth android
    Bonjour, j'ai différentes fonctions SendData et ReceiveData et j'aimerai faire en sorte que la fonction ReceiveData me retourne la valeur String seulement quand on lui envoie un truc. Un peu comme le while(Serial3.available()) de l'arduino.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    function TBTMethod.SendData( nPair:integer; sData:string ) : Boolean;
    var
      ToSend: TBytes;
      LDevice: TBluetoothDevice;
    begin
      result := FALSE;
      if ManagerConnected then
      try
        if (FSocket = nil) or ( ItemIndex <> nPair ) then
        begin
          if nPair > -1 then
          begin
            //-----------Pour la connexion
            LDevice := FPairedDevices[ nPair ] as TBluetoothDevice;
            FSocket := LDevice.CreateClientSocket( StringToGUID( FServiceGUID ), False);
            //-----------Pour la connexion
            if FSocket <> nil then
            begin
              ItemIndex := nPair;
              FSocket.Connect;
              ToSend := TEncoding.UTF8.GetBytes( sData );
              FSocket.SendData(ToSend);  // FSocket.ReceiveData
              result := TRUE;
            end
            else
              ShowMessage('Out of time -15s-');
          end
          else
            ShowMessage('No paired device selected');
        end
     
        else
        begin
          ToSend := TEncoding.UTF8.GetBytes( sData );
          FSocket.SendData(ToSend);
          result := TRUE;
        end;
     
      except
          on E : Exception do
          begin
            ShowMessage(E.Message);
            FreeAndNil(FSocket);
          end;
        end;
    end;
     
    //---------------------------------------------------------------------------------------
    // nPair : Paired Device List No
    function TBTMethod.Receivedata( nPair:integer) : String ;
    var
      ToReceive: TBytes;
      StrReceive : String;
      LDevice: TBluetoothDevice;
    begin
      result := '';
      if ManagerConnected then
      try
        if (FSocket = nil) or ( ItemIndex <> nPair ) then
        begin
          if nPair > -1 then
          begin
            //-----------Pour la connexion
            LDevice := FPairedDevices[ nPair ] as TBluetoothDevice;
            FSocket := LDevice.CreateClientSocket( StringToGUID( FServiceGUID ), False);
            //-----------Pour la connexion
            if FSocket <> nil then
            begin
              ItemIndex := nPair;
              FSocket.Connect;
    //          ToReceive := TEncoding.UTF8.GetBytes( sData );
              ToReceive := FSocket.ReceiveData;;  //TBytes
              //StrReceive := ByteToStr(ToReceive);
              StrReceive := TEncoding.UTF8.GetString(ToReceive);
              result := StrReceive;                                    //Probleme renvoie un 3??????? en plus
            end
            else
              ShowMessage('Out of time -15s-Sorry-');
          end
          else
            ShowMessage('No paired device selected');
        end
     
        else
        begin
          ToReceive := FSocket.ReceiveData;;  // FSocket.ReceiveData
          StrReceive := ByteToStr(ToReceive);
          result := StrReceive;
        end;
     
      except
          on E : Exception do
          begin
            ShowMessage(E.Message);
            FreeAndNil(FSocket);
          end;
        end;
    end;

  2. #2
    Membre confirmé
    Homme Profil pro
    Programmeur
    Inscrit en
    Octobre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Programmeur
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Octobre 2015
    Messages : 80
    Par défaut
    Bonjour,

    je ne sais pas si je comprends bien la question. J'ai utilisé un temps TBluetoothSocket.SendData et TBluetoothSocket.ReadData mais cette dernière est deprecated... Cela va vite avec FMX et Android à ce niveau. Tu as quelle version de Delphi ? Il y a peu de doc sur la question, mais peut-être, peux-tu t'inspirer comme il est précisé dans la page suivante des codes figurant dans ton C:\Users\Public\Documents\Embarcadero\Studio\XX\Samples\Object Pascal\Mobile Samples\Device Sensors and Services\Bluetooth. Sans certitudes.

    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tutoriel delphi xe8 Android
    Par devalender dans le forum Débuter
    Réponses: 2
    Dernier message: 19/08/2015, 10h40
  2. Lancement Delphi Xe5 Android
    Par John Colibri dans le forum Delphi
    Réponses: 10
    Dernier message: 16/09/2013, 14h40
  3. Interaction entre delphi et android
    Par vince1177 dans le forum Bases de données
    Réponses: 6
    Dernier message: 18/10/2012, 10h40
  4. Bluetooth & Android
    Par tuno5 dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 12/05/2011, 16h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo