#!/bin/sh

# Modem initialisation script for comms 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
{
    PWR=`${GNXIO} get GSM_OFF`
    if [[ "${PWR}" == "low" ]] ; then
	echo -n "Modem power OFF "
	gnxio_toggle GSM_OFF high
	sleep 2
    fi

    echo -n "Modem power ON "
    gnxio_toggle "GSM_OFF" "low"

    echo -n "Ignition start "
    gnxio_toggle GSM_IGT high
    sleep 1
    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="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

    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"
	exit 1
    fi

    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"
date "+%Y-%m-%d %T" >> "${MODEM_LOG}"

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