git-svn-id: svn+ssh://asterix.ieap.uni-kiel.de/home/subversion/stephan/solo/eda/cospi/host@9326 bc5caf13-1734-44f8-af43-603852e9ee25
39 lines
833 B
Awk
Executable file
39 lines
833 B
Awk
Executable file
#! /usr/bin/awk -f
|
|
|
|
BEGIN {
|
|
maxP = 1050
|
|
minP = -100
|
|
}
|
|
|
|
/^H/{ t=$2 }
|
|
|
|
/^P/ {
|
|
Word1 = strtonum($2)
|
|
Word2 = strtonum($3)
|
|
Word3 = strtonum($4)
|
|
Word4 = strtonum($5)
|
|
D1 = strtonum($6)
|
|
D2 = strtonum($7)
|
|
|
|
if (D2<10) next
|
|
|
|
C1 = rshift(Word1, 1)
|
|
C2 = or(lshift(and(Word3, 0x3f), 6), and(Word4, 0x3f))
|
|
C3 = rshift(Word4, 6)
|
|
C4 = rshift(Word3, 6)
|
|
C5 = or(lshift(and(Word1, 1), 10), rshift(Word2, 6))
|
|
C6 = and(Word2, 0x3f)
|
|
|
|
UT1 = 8*C5+20224
|
|
dT = D2 - UT1
|
|
Temperature = 0.1*(200 + dT*(C6+50)/1024)
|
|
|
|
OFF = C2*4 + ((C4-512)*dT)/4096
|
|
SENS = C1 + (C3*dT)/1024 + 24576
|
|
X = (SENS * (D1-7168))/16384 - OFF
|
|
Pressure = 0.1*(X*10/32 + 2500)
|
|
|
|
if (Pressure >= minP && Pressure <= maxP) {
|
|
printf "P%s %u %6.2f %7.2f\n", $1, t, Temperature, Pressure
|
|
}
|
|
}
|