#!/bin/sh /etc/rc.common
#
# Copyright (C) 2014-2020, Lantronix, Inc. All Rights Reserved.
#           7535 Irvine Center Drive, Suite 100
#           Irvine, CA 92618 USA

# Permission to use, copy, modify this software for any
# purpose is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.

# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#


START=99
index=2
id=`cat /proc/device-tree/lantronix/product_id 2>/dev/null | tr -d '\n'`
sku=`cat /proc/device-tree/lantronix/hwcfg 2>/dev/null | tr -d '\n' | grep -eG526GP1AS1 -eG526GP12S1 -eG526GP17S1 -eG526GP1CS1`
if [[ "$sku" != "" || "$id" == "U7" ]]; then
        index=$((index-1))
fi
logger -p "user.info" "serialinit3"

kill_serial() {
	ps | egrep -i "serial /dev/ttyS5" | grep -v grep | awk '{print $1}' | xargs kill -9 2>/dev/null
}

boot() {    
    mode="`uci get serial$index.@configuration[0].mode`"
    if [[ "$mode" == "transparent" ]] || [[ "$mode" == "manageddevice" ]] || [[ "$mode" == "none" ]] || [[ "$mode" == "modbus" ]]
    then
        start
        rm -f /tmp/luci_message_tunnel*
        rm -f /tmp/luci_message_serial*
    fi
    return 0
}

start() {
    kill_serial
    /usr/sbin/serial3.sh $index 2>/dev/null
}

stop() {
	kill_serial
	return 0
}
reload() {
    mode="`uci get serial$index.@configuration[0].mode`"
    if [[ "$mode" != "modmaster" ]] && [[ "$mode" != "dlms" ]]
    then
        kill_serial
        start
    fi
}

