#!/bin/sh

# Modem initialisation script for Simcom 5360 module
# Author: dylan@kses.net
# 2014-11-11


MODEM_LOG=/var/log/simcom.log
GNXIO=/usr/bin/gnxio
GNXID=/usr/bin/gnxid

MODEM=$2
KEY=$1

. /usr/share/kses/hwinit/functions



function init_modem
{
    
    echo -n "Modem power OFF "
    gnxio_toggle GSM_ON low
    echo -n "GPS power OFF "
    gnxio_toggle GPS_OFF high
    
    echo -n "Waiting 10s .."	
    sleep 10
    echo "OK"
    
    echo -n "Modem power ON "
	gnxio_toggle GSM_ON high
    echo -n "GPS power ON "
	gnxio_toggle GPS_OFF low
	
    echo -n "Waiting 2s .."	
    sleep 10
    echo "OK"
    
    echo -n "Ignition start "
    gnxio_toggle GSM_IGT high
    sleep 2
    echo -n "Ignition release "
    gnxio_toggle GSM_IGT low

    echo -n "Waiting for ${MODEM} ."
    while [[ ! -c "${MODEM}" ]] ; do
	sleep 1
	echo -n "."
    done
    echo " OK"

    modem_rx 

    MODEM_CMD="ATI"
    echo -n "Modem reset (${MODEM_CMD}) ... "
    modem_txrx "${MODEM_CMD}"
    echo "${RX_RESULT}"
    if [[ ${RX_RESULT} != "OK" ]] ; then
	error "No reply to ${MODEM_CMD} from modem"
	exit 1
    fi

    sleep 1



    MODEM_CMD="ATZ"
    echo -n "Modem reset (${MODEM_CMD}) ... "
    modem_txrx "${MODEM_CMD}"
    echo "${RX_RESULT}"
    if [[ ${RX_RESULT} != "OK" ]] ; then
	error "No reply to ${MODEM_CMD} from modem"
	exit 1
    fi

    sleep 1
    
#    MODEM_CMD="AT+CGPS=1"
#    echo -n "Activate GPS (${MODEM_CMD}) ... "
#    modem_txrx "${MODEM_CMD}"
#    echo "${RX_RESULT}"
#    if [[ ${RX_RESULT} != "OK" ]] ; then
# 	 error "Could not activate GPS"
#    fi
    
#    sleep 1
    
#    MODEM_CMD="AT+IPR=4000000"
#    echo -n "Set baud to maximum (${MODEM_CMD}) ... "
#    modem_txrx "${MODEM_CMD}"
#    echo "${RX_RESULT}"
#    if [[ ${RX_RESULT} != "OK" ]] ; then
#	error "Could not set baudrate"
#	exit 1
#    fi

}

if [[ ${KEY} == "GNX_GSM" ]] ; then 
echo "Begin modem initialisation"
echo $(date "+%Y-%m-%d %T") 

init_modem
else
echo "The GPS will setup with the GSM"
fi
exit 0
