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 :

App Android bluetooth Receive


Sujet :

Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    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
    Points : 45
    Points
    45
    Par défaut App Android bluetooth Receive
    Bonjour, je fais une application android bluetooth sur delphi et j'aimerais savoir comment gérer la réception de données. J'ai une fonction le permettant mais il faut que je la lance avec un boutton pour recevoir les données. Quelqu'un aurait une solution? Voilà l'annexe bluetooth.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par Albertus14 Voir le message
    Bonjour, je fais une application android bluetooth sur delphi...

    Quelle Version de Delphi ?
    Quel protocole Bluetooth ? Classique ? "Low Energy" ?
    Philippe.

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    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
    Points : 45
    Points
    45
    Par défaut
    J'utilise Delphi XE8 et niveau bluetooth, j'utilise le classique. Tout le code bluetooth est dans le fichier joint dans le premier message. La réception fonctionne bien quand je l'active mais j'aimerai quel s'active et quel affiche des quel reçois quelque chose

  4. #4
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Citation Envoyé par Albertus14 Voir le message
    J'utilise Delphi XE8 et niveau bluetooth, j'utilise le classique. Tout le code bluetooth est dans le fichier joint dans le premier message. La réception fonctionne bien quand je l'active mais j'aimerai quel s'active et quel affiche des quel reçois quelque chose
    Le composant TBluetoothSocket n'est pas doté d’évènement du style OnReceive ou OnSent. Donc AMHA, il faut gérer les échanges dans un thread secondaire synchronisé avec le thread principal...
    Philippe.

  5. #5
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    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
    Points : 45
    Points
    45
    Par défaut
    Pour moi, un thread, c'est une interruption, comment ça marche avec la méthode receive d'un bluetooth?

  6. #6
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Citation Envoyé par Albertus14 Voir le message
    Pour moi, un thread, c'est une interruption, comment ça marche avec la méthode receive d'un bluetooth?
    Principe à affiner : un thread pour une connexion qui se charge des envois et réceptions et notifie via les évènements le thread principal dès qu'une action est faite...
    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
      TBluetoothThreadReceiveDataEvent = procedure(Sender: TObject; const nPair: Integer; const Data: String) of object;
      TBluetoothThreadDataSentEvent = procedure(Sender: TObject; const nPair: Integer; const Result: Boolean) of object;
     
      TBluetoothThread = class(TThread)
      private
        // De quoi gérer le bluetooth
        // ...
        FOnReceiveData: TBluetoothThreadReceiveDataEvent;
        FOnDataSent: TBluetoothThreadDataSentEvent;
        // ...
      public
        // ...
        property OnReceiveData: TBluetoothThreadReceiveDataEvent read FOnReceiveData write FOnReceiveData;
        property OnReceivedata: TBluetoothThreadDataSentEvent read FOnDataSent write FOnDataSent;
        // ...
      end;
    Philippe.

  7. #7
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    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
    Points : 45
    Points
    45
    Par défaut
    Dans le btconfig, est ce que la fonction que j'ai refaite receive est correcte? Je les refaites de la même façon que pour le SendData?

  8. #8
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    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
    Points : 45
    Points
    45
    Par défaut
    Voiçi ma fonction directement :
    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
    // 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 := FSocket.ReceiveData;;  //TBytes
              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 := TEncoding.UTF8.GetString(ToReceive);
          result := StrReceive;
        end;
     
      except
          on E : Exception do
          begin
            ShowMessage(E.Message);
            FreeAndNil(FSocket);
          end;
        end;
    end;
    //-------------------------------------------------------------------------------------
    Elle ne me semble pas correcte, mais je ne vois pas le problème, peut être est ce que je déclare de nouveau les sockets pour la réception.
    Merci,

  9. #9
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    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
    Points : 45
    Points
    45
    Par défaut
    Bonjour, j'ai réussi à faire ce que je voulais en reprenant l'exemple donné dans les samples mobiles bluetooth de delphi. Le problème qui se présente à moi maintenant est que pour que l'application puisse recevoir des informations par bluetooth, il faut suivre une procédure précise qui est : Créer le serveur de réception "Create text service", puis là est le problème, c'est que le client "émetteur" doit se connecter au serveur de réception mais mon émetteur est ici une arduino bluetooth avec un module HC06. Donc comment l'arduino peut elle se connecter à l'application. Je ne sais pas si quelqu'un aurait une explication .. Merci

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

Discussions similaires

  1. licence app android
    Par Jérémy Lefevre dans le forum Android
    Réponses: 3
    Dernier message: 21/05/2012, 16h45
  2. Web Service : Authentification (App Android)
    Par ltime dans le forum REST
    Réponses: 0
    Dernier message: 21/09/2011, 10h38
  3. App Android PDA
    Par fascino dans le forum Android
    Réponses: 1
    Dernier message: 17/08/2011, 01h56
  4. android bluetooth protocol RFCOMM
    Par lavienormale dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 26/04/2011, 18h08
  5. identification depuis app android
    Par altair8080 dans le forum Android
    Réponses: 0
    Dernier message: 17/11/2009, 19h53

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