Spanish ¿Como enviar un valor numerico por Bluetooth?

Discussion in 'Spanish Forum' started by MRGSoft, Mar 19, 2015.

  1. MRGSoft

    MRGSoft New Member

    Hola:
    Quiero realizar una aplicacion que mande por Bluetooth el valor numerico de una variable de un byte y no doy con ello, solo consigo que me lo mande como si fueran caracteres de texto. Me explico, si la variable toma el valor de 128 que envie un byte con el valor 128, y no me envie tres bytes con el valor "1", "2" y "8". No se si me he explicado correctamente.
    De ante mano muchas gracias por vuestra ayuda, soy demasiado novato con el B4A.
     
  2. JoanRPM

    JoanRPM Active Member Licensed User

    Hola.

    Yo el BT lo hago siempre desde un servicio.
    Aqui tienes un sencillo ejemplo de como enviar unos cuantos Bytes.

    En el servicio BlueTooth (SrvBT):
    Code:
    Sub Process_Globals

        
    Dim OutputStream1 As OutputStream
        
    Dim Serial1 As Serial
        
    Dim buffer_tx(20As Byte
    End Sub

    Sub Service_Create
        Serial1.Initialize(
    "Serial1")
        Serial1.Connect(MAC_Address)        
    'por ejem: "00:06:7A:46:3F:25"
    End Sub

    Sub Service_Start (StartingIntent As Intent)

        
    If Serial1.IsEnabled = False Then
            
    ToastMessageShow("Bluetooth deshabilitado."True)
        
    Else
            Serial1.Listen 
    'listen for incoming connections
        End If
    End Sub

    Sub Serial1_Connected (Success As Boolean)

        
    If Success Then
            
    ToastMessageShow("Connexion correcta."False)
        OutputStream1 = Serial1.OutputStream
            BT_connected = 
    True
        
    Else
            BT_connected = 
    False
            
    ToastMessageShow("Error de conexió." & LastException.Message, False)
            
    Log("Error de conexió." & LastException.Message)
        
    End If
    End Sub

    Sub Send_txd(n_bytes as int)

        OutputStream1.WriteBytes(buffer_tx, 
    0, n_bytes)
    End Sub
    En main:

    Code:
    If BT_connected = True Then
        SrvBT.buffer_tx(
    0) = 250
        SrvBT.buffer_tx(
    1) = 20
        SrvBT.buffer_tx(
    2) = 8
        SrvBT.buffer_tx(
    3) = 150
        SrvBT.Send_txd(
    4)        'envia 4 bytes al BT
    End If
    Espero que te ayude.
    Saludos.
     
    dar2o3 likes this.
  3. MRGSoft

    MRGSoft New Member

    Muchas gracias, trabajare con tu ejemplo haber si lo consigo.
    Saludos
     
  4. benji

    benji Active Member Licensed User

    una vez que el dispositivo BT esta conectado, en mi caso una impresora, envio directo la info como Hex

    Code:
    str1Byte = Conv.StringToBytes(str1,"UTF8")
            str2Byte = Conv.StringToBytes(str2,
    "UTF8")
            str4Byte = Conv.StringToBytes(str4,
    "UTF8")
            str5Byte = Conv.StringToBytes(str5,
    "UTF8")
            str6Byte = Conv.StringToBytes(str6,
    "UTF8")
            str7Byte = Conv.StringToBytes(str7,
    "UTF8")
            str8Byte = Conv.StringToBytes(str8,
    "UTF8")
            str9Byte = Conv.StringToBytes(AuxContacto,
    "UTF8")
            str10Byte = Conv.StringToBytes(AuxContacto2,
    "UTF8")
            str11Byte = Conv.StringToBytes(AuxFono,
    "UTF8")
            str12Byte = Conv.StringToBytes(str9,
    "UTF8")
                       
            StrOut = Main.serial1.OutputStream
               
            strbyte(
    0) = 0x1B
            strbyte(
    1) = 0x4A
            strbyte(
    2) = 0x35
            strbyte3(
    0) = 0x1B
            strbyte3(
    1) = 0x4A
            strbyte3(
    2) = 0x31
            strbyte2(
    0) = 0x0A
            strbyte4(
    0) = 0x1B
            strbyte4(
    1) = 0x40
               
        
    '        *************************************
            StrOut.WriteBytes(strbyte4,0,strbyte4.Length)
            ByteBig(
    0) = 0x1D
            ByteBig(
    1) = 0x21
            ByteBig(
    2) = 0x10
            ByteBig(
    3) = 0x01
            BWByte(
    0) = 0x1D
            BWByte(
    1) = 0x42
            BWByte(
    2) = 0x31
            StrOut.WriteBytes(ByteBig,
    0,ByteBig.Length)
            
    'StrOut.WriteBytes(BWByte,0,BWByte.Length)
            StrOut.WriteBytes(str1Byte,0,str1Byte.Length)
            StrOut.Flush
    Eso imprime "letras y numeros"...
    si quieres mas detalles, pregunta no mas...
     
    dar2o3 likes this.
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice