#!/bin/sh /etc/rc.common
# Copyright (C) 2013 OpenWrt.org
# Copyright (C) 2023 Yannick Chabanois (Ycarus) for OpenMPTCProuter

START=00
USE_PROCD=1

log() {
	logger -t "z8102" "$@"
}

modem1()
{
	# sim 1
	#i=461
	#echo $i > /sys/class/gpio/export
	#echo "out" > /sys/class/gpio/gpio${i}/direction
	#echo "0" > /sys/class/gpio/gpio${i}/value
	if [ -e /sys/class/gpio/sim1/value ]; then
		echo "0" > /sys/class/gpio/sim1/value
	elif [ -f /usr/bin/gpiofind ]; then
		gpioset `gpiofind "sim1"`=0
	else
		gpioset -t0 sim1=0
	fi

	# stop modem 1
	#i=459
	#echo $i > /sys/class/gpio/export
	#echo "out" > /sys/class/gpio/gpio${i}/direction
	#echo "0" > /sys/class/gpio/gpio${i}/value
	if [ -e /sys/class/gpio/modem1/value ]; then
		echo "0" > /sys/class/gpio/modem1/value
	elif [ -f /usr/bin/gpiofind ]; then
		gpioset `gpiofind "modem1"`=0
	else
		gpioset -t0 modem1=0
	fi

	sleep 1
	# run modem 1
	#i=459
	#echo "1" > /sys/class/gpio/gpio${i}/value
	if [ -e /sys/class/gpio/modem1/value ]; then
		echo "1" > /sys/class/gpio/modem1/value
	elif [ -f /usr/bin/gpiofind ]; then
		gpioset `gpiofind "modem1"`=1
	else
		gpioset -t0 modem1=1
	fi
}
modem2()
{
	# sim 2
	#i=462
	#echo $i > /sys/class/gpio/export
	#echo "out" > /sys/class/gpio/gpio${i}/direction
	#echo "0" > /sys/class/gpio/gpio${i}/value
	if [ -e /sys/class/gpio/sim2/value ]; then
		echo "0" > /sys/class/gpio/sim2/value
	elif [ -f /usr/bin/gpiofind ]; then
		gpioset `gpiofind "sim2"`=0
	else
		gpioset -t0 sim2=0
	fi

	# stop modem 2
	#i=460
	#echo $i > /sys/class/gpio/export
	#echo "out" > /sys/class/gpio/gpio${i}/direction
	#echo "0" > /sys/class/gpio/gpio${i}/value
	if [ -e /sys/class/gpio/modem2/value ]; then
		echo "0" > /sys/class/gpio/modem2/value
	elif [ -f /usr/bin/gpiofind ]; then
		gpioset `gpiofind "modem2"`=0
	else
		gpioset -t0 modem2=0
	fi

	sleep 1
	# run modem 2
	#i=460
	#echo "1" > /sys/class/gpio/gpio${i}/value
	if [ -e /sys/class/gpio/modem2/value ]; then
		echo "1" > /sys/class/gpio/modem2/value
	elif [ -f /usr/bin/gpiofind ]; then
		gpioset `gpiofind "modem2"`=1
	else
		gpioset -t0 modem2=1
	fi
}
start_service()
{
	modem="$1"
	if [ -z "$modem" ]; then
		log "Enable SIMs and reboot modems..."
		modem1
		modem2
	elif [ "$modem" = "modem1" ]; then
		log "Enable SIM1 and reboot modem1..."
		modem1
	elif [ "$modem" = "modem2" ]; then
		log "Enable SIM2 and reboot modem2..."
		modem2
	fi
}