#!/bin/sh # Copyright (C) 2024 Tom at() { local at_port=$1 local new_str="${2/[$]/$}" local atcmd="${new_str/\"/\"}" #过滤空行 sms_tool_q -d $at_port at "$atcmd" } log2file() { local subject="$1" local msg="$2" local path="$3" #打印日志 local update_time=$(date +"%Y-%m-%d %H:%M:%S") echo "[${update_time}] ${subject}:${msg} " >> "${path}" } log2sys() { local subject="$1" local msg="$2" logger -t "$subject" "$msg" } m_debug () { [ -z "$debug_subject" ] && subject="modem_util" || subject="$debug_subject" [ -n "$direct_debug" ] && echo "$subject" "$1" if [ -n "$log_file" ];then log2file "$subject" "$1" "$log_file" else log2sys "$subject" "$1" fi } update_sim_slot() { . /lib/functions.sh board=$(board_name) case $board in HC,HC-G80*) sim_pin="/sys/class/gpio/sim/value" sim_pin_value=$(cat $sim_pin) [ "$sim_pin_value" == "0" ] && sim_slot="2" || sim_slot="1" #电平高表示SIM卡在卡槽1,电平低表示SIM卡在卡槽2 debug "update_sim_slot:sim_slot=$sim_slot" ;; huasifei,ws3006) sim_pin="/sys/class/gpio/dual_sim/value" #电平高则都在卡槽1,电平低则需要使用at查询 [ "$(cat $sim_pin)" == "1" ] && sim_slot="1" || at_get_slot ;; *) at_get_slot ;; esac } at_get_slot() { case $vendor in "quectel") at_res=$(at $at_port AT+QSIMDET? |grep +QSIMDET: |awk -F: '{print $2}') case "$at_res" in "1") sim_slot="1" ;; "2") sim_slot="2" ;; *) sim_slot="1" ;; *) sim_slot="1" ;; esac ;; "fibocom") at_res=$(at $at_port AT+GTDUALSIM? |grep +GTDUALSIM: |awk -F: '{print $2}') case $at_res in "0") sim_slot="1" ;; "1") sim_slot="2" ;; *) sim_slot="1" ;; *) sim_slot="1" ;; esac ;; *) at_q_res=$(at $at_port AT+QSIMDET? |grep +QSIMDET: |awk -F: '{print $2}') at_f_res=$(at $at_port AT+GTDUALSIM? |grep +GTDUALSIM: |awk -F: '{print $2}') [ "$at_q_res" == "1" ] && sim_slot="1" && return [ "$at_q_res" == "2" ] && sim_slot="2" && return [ "$at_f_res" == "0" ] && sim_slot="1" && return [ "$at_f_res" == "1" ] && sim_slot="2" && return sim_slot="1" ;; esac }