#!/bin/sh
###
#
#              Initialize USB serial gadget
#
##
. /usr/local/bin/telem/functions
. /usr/local/etc/telem/hw/usb_interfaces

hw_run=/usr/local/etc/telem/hw-run.xml


start() {
    logg "Detect COM ports - "

    test -f $hw_run && { logg "Already done"; exit 0; }

    local hw_version=base

    local rtc_board="/sys/bus/usb/devices/1-1.1:1.1"
    local com8_ftdi1="/sys/bus/usb/devices/1-1.3:1.0"
    local com8_ftdi2="/sys/bus/usb/devices/1-1.4:1.0"

    local rtc=0
    local com8_1=0
    local com8_2=0
    local lan=0

    # wait for device, detecting usb eth may take up to 3 seconds after reboot
    local counter=6
    while [ $counter -gt 0 ]; do
        [ -e "$USB_eth3" ] && [ -e "$USB_eth4" ] && { lan=1; break; }
        counter=$(( $counter - 1 ))
        sleep 1
    done
    
    [ -e $rtc_board ] && rtc=1
    [ -e $com8_ftdi1 ] && com8_1=1
    [ -e $com8_ftdi2 ] && com8_2=1
    
    local state="$rtc$lan$com8_1$com8_2"
    
    logg "detected: $state"
    
    case $state in
        0011) hw_version=com8     ;;
        0100) hw_version=lan      ;;
        0111) hw_version=full-lan ;; # same as com8-lan
        1000) hw_version=rtc      ;;
        1011) hw_version=full     ;;
        *) hw_version=base  ;;
    esac

    local hw_file=/usr/local/etc/telem/hw-${hw_version}.xml

    ln -s $hw_file $hw_run
    
    logg "'$hw_version' - "
    
    logg "OK"

    exit 0
}

case "$1" in
  start)
    start
      ;;
  reset|detect|restart|reload)
    logg "Removing old hardware definition"
    ! rm -f $hw_run
    start
      ;;
  stop)
      ;;
  *)
      echo $"Usage: $0 {start|reset|detect|restart}"
      exit 1
esac

exit $?
