58 lines
1.9 KiB
Bash
58 lines
1.9 KiB
Bash
#!/vendor/bin/sh
|
|
if [ -z "$2" ]
|
|
then
|
|
echo "usage is $0 input-calibration output_calibration"
|
|
exit 0
|
|
fi
|
|
OUTPUT_CALIB="$2"
|
|
if [ ! -f "$OUTPUT_CALIB" ]; then
|
|
touch $OUTPUT_CALIB
|
|
chmod 0600 $OUTPUT_CALIB
|
|
file="$1"
|
|
while IFS=, read -r f1 f2
|
|
do
|
|
case $f1 in
|
|
"UWB_cal_tx_xtal_reg_final_value")
|
|
if [ $((0x$f2)) -gt 63 ]; then
|
|
f2=63
|
|
fi
|
|
echo 'xtal_trim=0x'$f2 >> $OUTPUT_CALIB
|
|
;;
|
|
"UWB_TX1RX1_CH5_tx_ant_delay_cal_data")
|
|
echo 'ant0.ch5.prf64.ant_delay=0x'$f2 >> $OUTPUT_CALIB
|
|
;;
|
|
"UWB_TX1RX1_CH5_rx_ant_delay_cal_data")
|
|
echo 'ant1.ch5.prf64.ant_delay=0x'$f2 >> $OUTPUT_CALIB
|
|
;;
|
|
"UWB_TX1RX1_CH9_tx_ant_delay_cal_data")
|
|
echo 'ant0.ch9.prf64.ant_delay=0x'$f2 >> $OUTPUT_CALIB
|
|
;;
|
|
"UWB_TX1RX1_CH9_rx_ant_delay_cal_data")
|
|
echo 'ant1.ch9.prf64.ant_delay=0x'$f2 >> $OUTPUT_CALIB
|
|
;;
|
|
"UWB_RX2_CH5_cal_pdoa_data")
|
|
# float value * 2048
|
|
#/vendor/bin/sh does not support "bc"
|
|
base=2048
|
|
ones=${f2%%.*}
|
|
dec=${f2#*.}
|
|
ones="$(($ones*$base))"
|
|
if [ ${#dec} -eq 2 ]; then
|
|
dec="$(($dec*$base/100))"
|
|
echo 'ant1.ant3.ch5.pdoa_offset='$(($ones+$dec)) >> $OUTPUT_CALIB
|
|
fi
|
|
;;
|
|
"UWB_RX2_CH9_cal_pdoa_data")
|
|
base=2048
|
|
ones=${f2%%.*}
|
|
dec=${f2#*.}
|
|
ones="$(($ones*$base))"
|
|
if [ ${#dec} -eq 2 ]; then
|
|
dec="$(($dec*$base/100))"
|
|
echo 'ant1.ant3.ch9.pdoa_offset='$(($ones+$dec)) >> $OUTPUT_CALIB
|
|
fi
|
|
esac
|
|
done <"$file"
|
|
exit 0
|
|
fi
|