Здравствуйте
Правильно ли я понимаю, что штатной функции для переключении сим карт не предусмотрено и гвоздями прибито всегда использовать карту в слоте 1?
строка
gpio_set_value $WB_GPIO_GSM_SIMSELECT 0
в /usr/lib/wb-utils/wb-gsm-common.sh
если хочется иметь две сим и возможность переключаться, то надо
- написать свой вариант /usr/bin/wb-gsm
- написать свою вариацию gsm_init из /usr/lib/wb-utils/wb-gsm-common.sh которая будет делать gpio_set_value $WB_GPIO_GSM_SIMSELECT 1
сам себе отвечаю
хачим скрипты
файл /usr/lib/wb-utils/wb-gsm-common.sh
вписываем выше gsm_init
CURRENT_SIM_NUM=0
CURRENT_SIM_NUM_FILE=/tmp/.simnum
function read_current_sim_num() {
if [[ -f "$CURRENT_SIM_NUM_FILE" ]]; then
CURRENT_SIM_NUM=`cat $CURRENT_SIM_NUM_FILE`
fi
}
function toggle_sim() {
read_current_sim_num
CURRENT_SIM_NUM=$((1 - $CURRENT_SIM_NUM))
switch_off
sleep 1
gsm_init
sleep 1
restart_if_broken
}
в функции gsm_init в конце заменяем gpio_set_value $WB_GPIO_GSM_SIMSELECT 0
на
read_current_sim_num
gpio_set_value $WB_GPIO_GSM_SIMSELECT $CURRENT_SIM_NUM
файл /usr/bin/wb-gsm в case “$1” in вписываем
"toggle_sim" )
toggle_sim
;;
всё, теперь можно вызывать wb-gsm toggle_sim и будет меняться активная карта со слота 1 на 2 и обратно
текущее состояние созхарятся во временном файле /tmp/.simnum который лежит на /tmp директории и будет удалён при ребуте, так что на чистую всегда будет использовать первый слот
Да, можно так.
Про переключение описано тут: GSM/GPRS — Wiren Board
На практике использующие больше одной карты имеют, как правило свой софт.