Impression TSPL Bluetooth avec Windev mobile

Commet on se connecte à une imprimante Bluetooth avec Windev Mobile ?

Je viens de passer un peu de temps sur un projet simple et compliqué à la fois. Je voulais imprimer sur une imprimante BT à partir d’une application.

Voila le code pour se connecter :

Connexion au BT
gsNomSocketBT = "SOCKET_BT" // Nom unique 
SI PAS SocketExiste(gsNomSocketBT) ALORS
SI SocketConnecteBluetooth(gsNomSocketBT, "SerialPortServiceClass_UUID", gsMAC_BT) = Faux ALORS
SI SocketCréeBluetooth(gsNomSocketBT,"SerialPortServiceClass_UUID") = Faux ALORS
Erreur("Impossible de créer le socket Bluetooth", ErreurInfo(errComplet))
SINON
ToastAffiche("Connecté")
FIN
FIN
FIN

Dans la global gsMAC de type texte il faut la MAC Address du périphérique que l’on souhaite connecter.
Pour connaitre l’adresse MAC il faut faire une recherche de périphériques.
Lors de la première connexion, Android va demander l’autorisation à se connecter à ce dernier, il faut le faire.
Elles sera demandée à chaque démarrage du périphérique.

Pour faire une recherche des périphériques BT afin de récupérer les MAC address des périphériques proche:

Liste Periph BT
sListePériphériques est une chaîne = BTListePériphérique(btListeDétaillée,btEtatTous)
perif est une chaîne

SI sListePériphériques <> "" ALORS
POUR TOUTE CHAÎNE perif DE sListePériphériques SÉPARÉE PAR RC
Trace(perif)
FIN
FIN

Maintenant que vous êtes connecter on peut imprimer ou écrire sur le socket

Voila le code:

Impression ou écriture
bufferImpression est une chaîne

SI SocketExiste(gsNomSocketBT) ALORS
SI SocketEcrit(gsNomSocketBT, UnicodeVersAnsi(bufferImpression) ) = Vrai ALORS
ToastAffiche("Impression...")
SINON
ToastAffiche("Not sended")
Trace(ErreurInfo())
FIN
FIN

Mais ce qui semble simple là ne l’est pas, il y a 3 trucs qui peuvent poser problème.

  1. Le type de données envoyées, pour mon cas une imprimante. Ça ne fonctionne que si on est en AINSI !
  2. Les droits : Vous devez avoir sélectionné tout Bluetooth, jusque là c’est normal, mais sous Android il faut aussi ajouter Internet sinon ça ne fonctionnera pas !
  3. Pour les impressions en TSPL, mon cas d’usage, j’avais mes étiquettes qui sortaient en multiples exemplaires, en fin de compte il faut juste un retour ligne après le PRINT !

Voila un exemple de bufferImpresion qui inclus un bout de code en TSPL:

TSPL
bufferImpression = [
SIZE 50 mm, 30 mm
CLS
TEXT 50,20,"1",0,1,1,"Test impression"
BARCODE 60,60,"EAN13",80,1,0,3,3,"123456789012"
TEXT 120,170,"1",0,2,2,"123456"
TEXT 260,210,"1",0,1,1,"16/01/2025"
PRINT 1,1

]

 

Et pour se déconnecter :

Deconnexion
SI SocketExiste(gsNomSocketBT) ALORS
SocketFerme(gsNomSocketBT)
ToastAffiche("Disconnected")
FIN

 

Finalement c’est simple non ?

Soyez le premier à commenter

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.


*





Enter Captcha Here :