Selaa lähdekoodia

添加light ring测试脚本

qidong.liu 4 viikkoa sitten
vanhempi
sitoutus
599e00a019
1 muutettua tiedostoa jossa 88 lisäystä ja 0 poistoa
  1. 88 0
      test_app/light_ring_ctl.sh

+ 88 - 0
test_app/light_ring_ctl.sh

@@ -0,0 +1,88 @@
+#!/bin/bash
+
+# 检查参数个数
+if [ $# -ne 4 ]; then
+    echo "Usage: $0 <0-2> <0-4095> <0-4095> <0-4095>"
+    exit 1
+fi
+
+# 赋值参数
+# bus 0-/dev/i2c-0	1-/dev/i2c-1
+bus=0
+
+# param1 0-第0个LED	1-第1个LED	2-第2个LED
+param1=$1
+
+# param2 red
+param2=$2
+param2=$((4095 - ${param2}))
+
+# param3 green
+param3=$3
+param3=$((4095 - ${param3}))
+
+# param4 blue
+param4=$4
+param4=$((4095 - ${param4}))
+
+# 验证第一个参数范围 0-2
+if ! [[ "$param1" =~ ^[0-2]$ ]]; then
+    echo "Error: First parameter must be 0, 1, or 2"
+    exit 1
+fi
+
+# 验证后面三个参数范围 0-4095
+for i in 2 3 4; do
+    val=${!i}
+    if ! [[ "$val" =~ ^[0-9]+$ ]] || [ "$val" -lt 0 ] || [ "$val" -gt 4095 ]; then
+        echo "Error: Parameter $i must be an integer between 0 and 4095"
+        exit 1
+    fi
+done
+
+# 拆分函数:将 0-4095 的值拆成两个字节(高8位和低8位)
+split_into_bytes() {
+    local value=$1
+    local high_byte=$(( (value >> 8) & 0xFF ))
+    local low_byte=$(( value & 0xFF ))
+    echo "$high_byte $low_byte"
+}
+
+read high1 low1 <<< $(split_into_bytes $param2)
+read high2 low2 <<< $(split_into_bytes $param3)
+read high3 low3 <<< $(split_into_bytes $param4)
+
+echo "param1:${param1}"
+echo "high1:${high1} low1:${low1}"
+echo "high1:${high2} low1:${low2}"
+echo "high1:${high3} low1:${low3}"
+
+
+reg_06=$((0x06 + ${param1} * 12))
+reg_07=$((0x07 + ${param1} * 12))
+reg_08=$((0x08 + ${param1} * 12))
+reg_09=$((0x09 + ${param1} * 12))
+reg_0a=$((0x0a + ${param1} * 12))
+reg_0b=$((0x0b + ${param1} * 12))
+reg_0c=$((0x0c + ${param1} * 12))
+reg_0d=$((0x0d + ${param1} * 12))
+reg_0e=$((0x0e + ${param1} * 12))
+reg_0f=$((0x0f + ${param1} * 12))
+reg_10=$((0x10 + ${param1} * 12))
+reg_11=$((0x11 + ${param1} * 12))
+
+# echo "${reg_06} ${reg_07} ${reg_08} ${reg_09} ${reg_0a} ${reg_0b} ${reg_0c} ${reg_0d} ${reg_0e} ${reg_0f} ${reg_10} ${reg_11} "
+
+i2cset -y ${bus} 0x40 $reg_06 0
+i2cset -y ${bus} 0x40 $reg_07 0
+i2cset -y ${bus} 0x40 $reg_08 $low1
+i2cset -y ${bus} 0x40 $reg_09 $high1
+i2cset -y ${bus} 0x40 $reg_0a 0
+i2cset -y ${bus} 0x40 $reg_0b 0
+i2cset -y ${bus} 0x40 $reg_0c $low2
+i2cset -y ${bus} 0x40 $reg_0d $high2
+i2cset -y ${bus} 0x40 $reg_0e 0
+i2cset -y ${bus} 0x40 $reg_0f 0
+i2cset -y ${bus} 0x40 $reg_10 $low3
+i2cset -y ${bus} 0x40 $reg_11 $high3
+