German BLE2 TI Sensor Tag

MaFu

Well-Known Member
Licensed User
Longtime User
1:1 Übersetzt wäre das:
B4X:
Dim temperatureSign As Byte = Bit.And(Bit.ShiftRight(rawData(4), 7), 1)
Dim temperatureBase As Int = Bit.And(rawData(4), 0x7f)
Dim temperatureFraction As Float = rawData(5) / 100.0
temperature = temperatureBase + temperatureFraction
If temperatureSign = 1 Then
    temperature = temperature * -1
End If

Und die Kurzfassung mit gleichem Ergebnis:
B4X:
Dim temperatureSign As Boolean = Bit.And(rawData(4), 0x80) <> 0
temperature = Bit.And(rawData(4), 0x7f) + (rawData(5) / 100.0)
If temperatureSign Then
    temperature = -temperature
End If
 

Wolli013

Well-Known Member
Licensed User
Longtime User
@MaFu
Perfekt wie immer!
Vielen Dank nochmal für deine Unterstützung!
Endlich gehn auch Minusgrade.
 

aliazhar

New Member
Licensed User
Hello Wolli013,
is it possible to share complete codes for this project including the basic designer?
 

Wolli013

Well-Known Member
Licensed User
Longtime User
@aliazhar
Nein es ist Teil eines Gesamtprojektes welches ich nichtkomplett teilen möchte.
Kann dich aber bei Fragen gerne Unterstützen soweit es mir möglich ist.
 

aliazhar

New Member
Licensed User
@aliazhar
Nein es ist Teil eines Gesamtprojektes welches ich nichtkomplett teilen möchte.
Kann dich aber bei Fragen gerne Unterstützen soweit es mir möglich ist.

Danke dir. das ist toll, ich verstehe das total.
Alles was ich brauche ist ein Fenster, das die vom Temperatursensor extrahierten Daten zeigt.
Wenn Sie feststellen können, welche Variablen zur Anzeige der Daten verbunden werden müssen, kann ich das in einem Designer anhängen.
Ich bin total neu bei B4A ...(getting a hang of it...this sounds better in english ;) )
Bitte helfen Sie, wenn Sie oder jemand anderes können.
 

Wolli013

Well-Known Member
Licensed User
Longtime User
Du brauchst doch nur ein Label im Designer erstellen und dann die Werte den Label zuordnen und azeigen lassen.
Sonst ist alles zuvor beschrieben.


B4X:
Sub Manager_DataAvailable (ServiceId As String, Characteristics As Map)
 
        Private tem,hum As Int
        Private temp1,temp2,hum1 As Float
        Dim ArrayBytes() As Byte = Characteristics.Get("f000aa21-0451-4000-b000-000000000000")
 
        tem = Bit.Or(Bit.And(Bit.ShiftLeft(ArrayBytes(1), 8), 0x0000ff00), Bit.And(ArrayBytes(0), 0x000000ff))
        hum = Bit.Or(Bit.And(Bit.ShiftLeft(ArrayBytes(3), 8), 0x0000ff00), Bit.And(ArrayBytes(2), 0x000000ff))
 
        temp1 = (tem/65536)*165-40 ' = Grad
        temp2 = ((temp1*9.0)/5.0)+32.0 ' = Fahrenheit
        hum1 = (hum/65536)*100 ' = Relative Luftfeuchtigkeit
 
         Log("Temperatur-Grad = " & NumberFormat(temp1, 1, 2))
          Log("Temperatur-Fahrenheit = " & NumberFormat(temp2, 1, 2))
           Log("Relative-Feuchte = " & NumberFormat(hum1, 1, 2))
          
'Mittelwert aller 10 Ergebnisse.
 Zaehler = Zaehler + 1
 Twert = Twert + temp1
  Fwert = Fwert + hum1
If Zaehler = 10 Then
 temp1 = Twert / 10
  hum1 = Fwert / 10
   If hum1 > 100 Then hum1 = 100
    BlueATemperatur = NumberFormat(temp1, 1, 2) 'Übergabedaten
    BlueALuftfeuchtigkeit = NumberFormat(hum1, 1, 2) 'Übergabedaten
    Zaehler = 0
   Twert = 0
  Fwert = 0
End If
 
End Sub
 

aliazhar

New Member
Licensed User
Danke für deine hilfe !
Ich werde es heute versuchen und sehen, ob ich es zusammenstellen kann.
Ich habe den ganzen Thread gelesen.
Ich werde teilen, wo ich hin komme.
 

aliazhar

New Member
Licensed User
Wie lassen sich alle Sensordaten anzeigen?
Wie kann ich auf Daten von allen Sensoren zugreifen?
genau wie bei der Demoanwendung ...
 
Top