| #!/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 |