Hitta formel 4byte till värde
Re: Hitta formel 4byte till värde
Men varför svarar du inte på de frågor vi ställt, och nej det du gissade nu sist stämmer inte.
Re: Hitta formel 4byte till värde
Därför att han inte vet?
Frågan är ju hur de fyra bytesen blir värdet längst till höger, enhet har väl inget med det att göra? Det spelar ingen roll om det är 921 elefanter, 0x03ff0864 ska bli 921.
Frågan är ju hur de fyra bytesen blir värdet längst till höger, enhet har väl inget med det att göra? Det spelar ingen roll om det är 921 elefanter, 0x03ff0864 ska bli 921.
Re: Hitta formel 4byte till värde
Det förenklar ju det hela om man vet vad som faktiskt presenteras.
Problemet är ju också att vi inte vet vilken givare det är.
TS skrev att det troligen är en AMS-givare, då länkas man hit
https://www.sciosense.com/products/envi ... l-sensors/
I databladet för ENS161 kan man läsa
Och detta stämmer rätt dåligt med de data som presenterats
Problemet är ju också att vi inte vet vilken givare det är.
TS skrev att det troligen är en AMS-givare, då länkas man hit
https://www.sciosense.com/products/envi ... l-sensors/
I databladet för ENS161 kan man läsa
Kod: Markera allt
eTVOC 0 – 65,000 1 ppb
Re: Hitta formel 4byte till värde
Det spelar väl ingen som helst roll? Frågan handlar ju om att läsa ut de där 4 bytesen och kunna presentera dem som det värde som står längst till höger. Givaren sitter ju på andra sidan sidan av mikrocontrollern?
- MadModder
- Co Admin
- Inlägg: 30067
- Blev medlem: 6 september 2003, 13:32:07
- Ort: MadLand (Enköping)
- Kontakt:
Re: Hitta formel 4byte till värde
Men han läser ju inte data från givaren skrev han, utan från MCU. Högst troligen har MCU räknat om från 0-65000 till något helt annat, som sen skickas via wifi. Det är den datan som undersöks.
Re: Hitta formel 4byte till värde
Jo, men varför skicka 4 byte, när man bara får två.
Jag tror att TS har tolkat data fel.
Det vore intressant att se hela datapaketet och hans tolkning av det.
Jag tror att TS har tolkat data fel.
Det vore intressant att se hela datapaketet och hans tolkning av det.
Re: Hitta formel 4byte till värde
MCU kan ha gjort nån konvertering, den vet vi inget om, MCU är en black box. Men jag antar att värdet som står till höger är nåt som presenteras av nån annan enhet (som får data via WiFi?), den enheten tolkar alltså dessa 4 byte till det värde som presenteras. Och det är den tolkningen som behöver lösas.
Re: Hitta formel 4byte till värde
Eller också så är det inte alls de 4 byte som presenteras som faktisk tolkas.
Re: Hitta formel 4byte till värde
Men OM det var en digital givare så borde det finnas ett vettigt samband mellan värdena. Men kanske givaren är analog och mcun kokar ihop värdet baserat på AD-värden???
Re: Hitta formel 4byte till värde
Det som skickas från mcu till "wifi-nätet" skulle kunna vara ett 32 bit float värde, och då kan bitarna hoppa runt ganska mycket även för små justeringar i värdet.
Vad är det normalt i andra änden av wifi nätet? Vad är det som har tolkat det till det som kallas "values"?
Vad är det normalt i andra änden av wifi nätet? Vad är det som har tolkat det till det som kallas "values"?
Re: Hitta formel 4byte till värde
Nä, vem vet. Vi har ju inte en aning om hur de där 4 bytsen är kodade...
Re: Hitta formel 4byte till värde
Och det hade ju hjälpt om TS ville beskriva hela systemet, vilka data som visas och vad som visar dem osv, samt hela datapaketet
Re: Hitta formel 4byte till värde
Om man leker lite med siffrorna kan man få tex
Där bara två värden som sticker ut. Är tabellen rätt?
Kod: Markera allt
computed actual error
909.00 909 0.00
920.72 921 -0.28
932.43 932 0.43
940.55 941 -0.45
951.35 964 -12.65
898.18 998 -99.82
1225.35 1226 -0.65
Kod: Markera allt
data = []
with open('data.txt') as fh:
for line in fh:
data.append(tuple(map(int, line.rstrip('\n').split())))
data = sorted(data, key=lambda x: x[4])
print("computed actual error")
for a, b, c, d, e in data:
x = (a * 65536 + b * 256 + d) / (3 * 65536 + 242 * 256 + 94) * 909
print("%8.2f %4d % 6.2f" % (x, e, x - e))