rpirena/sethat.awk
stephan 0cfaf9be43 refix mag vector offset bug, file_epoch
git-svn-id: svn+ssh://asterix.ieap.uni-kiel.de/home/subversion/stephan/solo/eda/cospi/host@9338 bc5caf13-1734-44f8-af43-603852e9ee25
2025-04-11 14:35:36 +00:00

74 lines
1.4 KiB
Awk
Executable file

#! /usr/bin/gawk -i
BEGIN {
file_epoch = 0
}
/^H/ { Time= $2 - 3 + file_epoch }
function magc(d) {
if (d >= 0x8000)
d -= 0x10000
return d / 0x2000
}
function accc(d) {
if (d >= 0x8000)
d -= 0x10000
return d / 0x4000
}
function tempc(d) {
if (d >= 0x8000)
d -= 0x10000
return d / 0x100
}
function adcc(d) {
if (d >= 0x8000)
d -= 0x10000
return d * 0.4/0x8000
}
function isI() {
return Time && /^ID/
}
isI() {
Time += 2
mag_status = $4
mag[0][0] = magc($5)
mag[0][1] = magc($6)
mag[0][2] = magc($7)
mag_temp = tempc($8)
acc_status_aux = $9
acc_adc[0] = adcc($10)
acc_adc[1] = adcc($11)
acc_temp = tempc($12)
for (i=1; i<=18; i++) {
mag[i][0] = magc($(10 + 3*i))
mag[i][1] = magc($(11 + 3*i))
mag[i][2] = magc($(12 + 3*i))
}
acc_status_fifo = $67
acc_status = $68
for (i=0; i<=20; i++) {
acc[i][0] = accc($(69 + 3*i))
acc[i][1] = accc($(70 + 3*i))
acc[i][2] = accc($(71 + 3*i))
}
mag[19][0] = magc($132)
mag[19][1] = magc($133)
mag[19][2] = magc($134)
}
function pr() {
printf "IS %d 0x%04x 0x%04x 0x%04x 0x%04x %.2f %.2f %.4f %.4f\n", Time, \
mag_status, acc_status, acc_status_aux, acc_status_fifo, \
mag_temp, acc_temp, acc_adc[0], acc_adc[1]
for (i=0; i<20; i++) {
printf "IV %.1f %7.4f %7.4f %7.4f %7.4f %7.4f %7.4f\n", Time+i/10, \
mag[i][0], mag[i][1], mag[i][2], \
acc[i][0], acc[i][1], acc[i][2]
}
}