From c85025d971997acbccad05545c3dfab92dd96e6b Mon Sep 17 00:00:00 2001 From: Victor Liu Date: Tue, 15 Feb 2022 08:19:10 -0800 Subject: [PATCH] uwb: add calibration script to device folder copy calibration script in uwb make Bug: 219611318 Test: builds Signed-off-by: Victor Liu Change-Id: I3d75f4cbdc046082c7ce005e58a2b68e1d65ddfe --- uwb/calibration/init.uwb.calib.sh | 57 ++++++++++++++++++++++++++ uwb/calibration/init.uwb.calib.xtal.sh | 25 +++++++++++ uwb/uwb.mk | 3 +- 3 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 uwb/calibration/init.uwb.calib.sh create mode 100644 uwb/calibration/init.uwb.calib.xtal.sh diff --git a/uwb/calibration/init.uwb.calib.sh b/uwb/calibration/init.uwb.calib.sh new file mode 100644 index 00000000..a604885a --- /dev/null +++ b/uwb/calibration/init.uwb.calib.sh @@ -0,0 +1,57 @@ +#!/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 diff --git a/uwb/calibration/init.uwb.calib.xtal.sh b/uwb/calibration/init.uwb.calib.xtal.sh new file mode 100644 index 00000000..c0dc8640 --- /dev/null +++ b/uwb/calibration/init.uwb.calib.xtal.sh @@ -0,0 +1,25 @@ +#!/vendor/bin/sh +# only use xtal_trim from factory calibration +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 + ;; + esac + done <"$file" + exit 0 +fi diff --git a/uwb/uwb.mk b/uwb/uwb.mk index 72663b41..58cdc3cf 100644 --- a/uwb/uwb.mk +++ b/uwb/uwb.mk @@ -35,7 +35,8 @@ PRODUCT_COPY_FILES += \ $(LOCAL_UWB_CAL_DIR)/UWB-calibration-tj.conf:$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration-tj.conf \ $(LOCAL_UWB_CAL_DIR)/UWB-calibration-tm.conf:$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration-tm.conf \ $(LOCAL_UWB_CAL_DIR)/UWB-calibration-ua.conf:$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration-ua.conf \ - $(LOCAL_UWB_CAL_DIR)/UWB-calibration-uz.conf:$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration-uz.conf + $(LOCAL_UWB_CAL_DIR)/UWB-calibration-uz.conf:$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration-uz.conf \ + $(LOCAL_UWB_CAL_DIR)/init.uwb.calib.xtal.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.uwb.calib.sh \ PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.uwb.xml:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/permissions/android.hardware.uwb.xml