pm5: simplified and structured
This commit is contained in:
parent
a80bd12e4a
commit
1b339ae6d0
|
@ -1,5 +1,5 @@
|
||||||
little endian
|
little endian
|
||||||
: byte[offset]
|
: byte[offset*32]
|
||||||
Magic : byte[1]
|
Magic : byte[1]
|
||||||
WorkoutType : uint8
|
WorkoutType : uint8
|
||||||
: byte[10]
|
: byte[10]
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
big endian
|
|
||||||
: byte[offset]
|
|
||||||
SplitDistance : uint16
|
|
||||||
SplitHeartRate : uint8
|
|
||||||
SplitSPM : uint8
|
|
||||||
: byte[28]
|
|
|
@ -14,3 +14,9 @@ HeaderTotalDistance : uint32
|
||||||
HeaderSPM : uint8
|
HeaderSPM : uint8
|
||||||
: byte[1]
|
: byte[1]
|
||||||
HeaderSplitSize : uint16
|
HeaderSplitSize : uint16
|
||||||
|
: byte[18]
|
||||||
|
: byte[splitNo*32]
|
||||||
|
SplitDistance : uint16
|
||||||
|
SplitHeartRate : uint8
|
||||||
|
SplitSPM : uint8
|
||||||
|
: byte[28]
|
|
@ -5,46 +5,66 @@ cmd="laymanshex"
|
||||||
accTable="LogDataAccessTbl.bin"
|
accTable="LogDataAccessTbl.bin"
|
||||||
storage="LogDataStorage.bin"
|
storage="LogDataStorage.bin"
|
||||||
|
|
||||||
function assignVariables {
|
assignVariables='while read -r line; do typeset -x "$line"; done <<< '
|
||||||
while read -r line; do
|
|
||||||
typeset -g "$line"
|
function printNonEmpty {
|
||||||
done <<< "$1"
|
varname='$'"$1"
|
||||||
|
eval "val=$varname"
|
||||||
|
if [ "$val" != "" ]; then
|
||||||
|
echo "$1=$val"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
i=0
|
function printSplit {
|
||||||
while : ; do
|
outputSplit="$($cmd -nopadding -fvar=offset=$1,splitNo=$2 $storage-Workout$3.layhex $storage 2> /dev/null)"
|
||||||
offset=$(($i*32))
|
status=$?
|
||||||
output="$($cmd -nopadding -fvar=offset=$offset $accTable.layhex $accTable 2>/dev/null)"
|
if [ $status -eq 0 ]; then
|
||||||
status=$?
|
eval "$assignVariables $outputSplit"
|
||||||
if [ $status -ne 0 ]; then
|
echo
|
||||||
break
|
echo "Split $(($2+1))"
|
||||||
else
|
echo "----------"
|
||||||
assignVariables "$output"
|
printNonEmpty "SplitDuration"
|
||||||
echo "Workout $Index"
|
printNonEmpty "SplitDistance"
|
||||||
echo "============="
|
printNonEmpty "SplitHeartRate"
|
||||||
outputHeader="$($cmd -nopadding -fvar=offset=$Offset $storage-HeaderWorkout$WorkoutType.layhex $storage 2>/dev/null)"
|
printNonEmpty "SplitSPM"
|
||||||
status=$?
|
|
||||||
if [ $status -eq 0 ]; then
|
|
||||||
assignVariables "$outputHeader"
|
|
||||||
echo "TotalDuration=$HeaderTotalDuration"
|
|
||||||
echo "TotalDistance=$HeaderTotalDistance"
|
|
||||||
echo "SplitSize=$HeaderSplitSize"
|
|
||||||
echo "SPM=$HeaderSPM"
|
|
||||||
j=0
|
|
||||||
while [ "$j" -lt "$NoSplits" ]; do
|
|
||||||
splitOffset=$((Offset+50+j*32))
|
|
||||||
outputSplit="$($cmd -nopadding -fvar=offset=$splitOffset $storage-FrameWorkout$WorkoutType.layhex $storage 2>/dev/null)"
|
|
||||||
status=$?
|
|
||||||
if [ $status -eq 0 ]; then
|
|
||||||
echo
|
|
||||||
echo "Split $((j+1))"
|
|
||||||
echo "----------"
|
|
||||||
echo "$outputSplit"
|
|
||||||
fi
|
|
||||||
j=$((j+1))
|
|
||||||
done
|
|
||||||
echo
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
i=$((i+1))
|
}
|
||||||
done
|
|
||||||
|
function printWorkout {
|
||||||
|
echo "Workout $1"
|
||||||
|
echo "============="
|
||||||
|
outputHeader="$($cmd -nopadding -fvar=offset=$2,splitNo=0 $storage-Workout$3.layhex $storage 2> /dev/null)"
|
||||||
|
status=$?
|
||||||
|
if [ $status -eq 0 ]; then
|
||||||
|
eval "$assignVariables $outputHeader"
|
||||||
|
printNonEmpty "HeaderTotalDuration"
|
||||||
|
printNonEmpty "HeaderTotalDistance"
|
||||||
|
printNonEmpty "HeaderSplitSize"
|
||||||
|
printNonEmpty "HeaderSPM"
|
||||||
|
j=0
|
||||||
|
while [ "$j" -lt "$NoSplits" ]; do
|
||||||
|
printSplit $2 $j $3
|
||||||
|
j=$((j+1))
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function printAll {
|
||||||
|
i=0
|
||||||
|
while : ; do
|
||||||
|
offset=$(($i))
|
||||||
|
output="$($cmd -nopadding -fvar=offset=$offset $accTable.layhex $accTable 2>/dev/null)"
|
||||||
|
status=$?
|
||||||
|
if [ $status -ne 0 ]; then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
eval "$assignVariables $output"
|
||||||
|
printWorkout $Index $Offset $WorkoutType
|
||||||
|
fi
|
||||||
|
i=$((i+1))
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
printAll
|
||||||
|
|
Loading…
Reference in New Issue
Block a user