#!/bin/sh /etc/rc.common

START=20

. /etc/init.d/v2g

boot() {
FBSTRING=${FBSTRING}
which ${FBSTRING} || {
FBSTRING=fb-test-string
}

	SN=$(hostname)
	case $SN in
	"04M"*)
	logger "04M..."
	;;
	"6H"* | "6J"* | "6K"* | "6L"* | "6M"*)
        [ ! -d /sys/class/leds/dincable ] && {
		${FBSTRING} 20 20 "NO GPIO EXPANSOR! - REBOOT IN 5 MINUTES" 65535 128
		logger "NO GPIO EXPANSOR! - REBOOT IN 5 MINUTES"
		(echo 1 > /sys/class/gpio/pioC29/value
		echo 1 > /sys/class/gpio/pioC30/value
		sleep 5 
		echo 0 > /sys/class/gpio/pioC29/value
		echo 0 > /sys/class/gpio/pioC30/value
		sleep 300
		reboot
		) &
		exit
		#reboot
        }
        [ ! -d /sys/bus/iio/devices/iio:device1 ] && {
		${FBSTRING} 20 20 "NO EXTERNAL ADC!" 65535 128
		sleep 2
		exit
		#reboot
        }
        [ ! -d /sys/bus/iio/devices/iio:device2 ] && {
		${FBSTRING} 20 20 "NO EXTERNAL ADC!" 65535 128
		sleep 1
		logger "retry max1363 ko"
		rmmod max1363
		modprobe max1363
		sleep 1
        	[ ! -d /sys/bus/iio/devices/iio:device2 ] && {
			exit
			#reboot
        	}
        }
	sw_version=`uci get ingeteam.@ingeteam[0].release`
	${FBSTRING} 20 20 "ALL HW OK! $sw_version" 65535 128
	sleep 2
	dd if=/dev/zero | tr "\000" "\377" > /dev/fb0 
	fbv -d 1 /etc/ingeteam/ingeteam_logo_color.jpg 
	;;
        "6Z"*)
        [ ! -d /sys/class/leds/cable_left ] && {
                alarm_text="NO GPIO EXPANSOR! - REBOOT IN 5 MINUTES"
                ${FBSTRING} 20 20 "${alarm_text}" 65535 128
                logger ${alarm_text}
                printf "${alarm_text}" > /tmp/hmi_text
                (echo 1 > /sys/class/gpio/pioC29/value
                echo 1 > /sys/class/gpio/pioC30/value
                sleep 5
                echo 0 > /sys/class/gpio/pioC29/value
                echo 0 > /sys/class/gpio/pioC30/value
                sleep 300
                reboot
                ) &
                exit
                #reboot
        }
        [ ! -d /sys/class/hwmon/hwmon1 ] && {
                alarm_text="NO EXTERNAL ADC!"
                ${FBSTRING} 20 20 "${alarm_text}" 65535 128
                printf "${alarm_text}" > /tmp/hmi_text
                sleep 2
                exit
                #reboot
        }
        [ ! -d /sys/class/hwmon/hwmon2/ ] && {
                alarm_text="NO EXTERNAL ADC!"
                ${FBSTRING} 20 20 "${alarm_text}" 65535 128
                printf "${alarm_text}" > /tmp/hmi_text
                sleep 2
                exit
                #reboot
        }
	discover_ccs_connectors_rapid1xx_st
        [ "$ccsconnectors" == "1" ]  && {
	ifconfig eth2 
        [ "$?" != "0" ] && {
                alarm_text="NO PLC ETH2! - REBOOT IN 2 MINUTES"
                ${FBSTRING} 20 20 "${alarm_text}" 65535 128
                logger ${alarm_text}
                printf "${alarm_text}" > /tmp/hmi_text
                (sleep 120
		save_reboot "plc sync: bad signature, restart"
                reboot 
		) &
                exit
        }
	}
        [ "$ccsconnectors" == "2" ]  && {
	ifconfig eth3 
        [ "$?" != "0" ] && {
                alarm_text="NO PLC ETH3! - REBOOT IN 2 MINUTES"
                ${FBSTRING} 20 20 "${alarm_text}" 65535 128
                logger ${alarm_text}
                printf "${alarm_text}" > /tmp/hmi_text
                (sleep 120
		save_reboot "plc sync: bad signature, restart"
                reboot 
		) &
                exit
        }
	}
        sw_version=`uci get ingeteam.@ingeteam[0].release`
        alarm_text="ALL HW OK! $sw_version"
        ${FBSTRING} 20 20 "${alarm_text}" 65535 128
        printf "${alarm_text}" > /tmp/hmi_text
        sleep 2
        dd if=/dev/zero | tr "\000" "\377" > /dev/fb0
        fbv -d 1 /etc/ingeteam/ingeteam_logo_color.jpg
        ;;
	"6W"* | "6S"*)
        [ ! -d /sys/class/leds/plcresetleft ] && {
		${FBSTRING} 20 20 "NO GPIO EXPANSOR!" 65535 128
		sleep 2
		exit
		#reboot
        }
        [ ! -d /sys/bus/iio/devices/iio:device0 ] && {
		${FBSTRING} 20 20 "NO EXTERNAL ADC!" 65535 128
		sleep 2
		exit
		#reboot
        }
        [ ! -d /sys/bus/iio/devices/iio:device1 ] && {
		${FBSTRING} 20 20 "NO INTERNAL ADC!" 65535 128
		sleep 2
		exit
		#reboot
        }

	${FBSTRING} 20 20 "ALL HW OK!" 65535 128
	sleep 1
	dd if=/dev/zero | tr "\000" "\377" > /dev/fb0 
	fbv -k -d 1 /etc/ingeteam/ingeteam_logo_color.jpg 
	;;
        "6Y"*)
        [ ! -d /sys/class/leds/cable_left ] && {
                alarm_text="NO GPIO EXPANSOR! - REBOOT IN 5 MINUTES"
                ${FBSTRING} 20 20 "${alarm_text}" 65535 128
                logger ${alarm_text}
                printf "${alarm_text}" > /tmp/hmi_text
                (sleep 300
                reboot
                ) &
                exit
                #reboot
        }
	for n in `seq 0 1 4` 
	do
        [ ! -d /sys/class/hwmon/hwmon$n ] && {
                alarm_text="NO EXTERNAL ADC!"
                ${FBSTRING} 20 20 "${alarm_text}" 65535 128
                printf "${alarm_text}" > /tmp/hmi_text
                sleep 2
                exit
                #reboot
        }
	done
	discover_ccs_connectors_rapid6x
        [ "$ccsconnectors" == "1" ]  && {
	ifconfig eth2 
        [ "$?" != "0" ] && {
                alarm_text="NO PLC ETH2! - REBOOT IN 2 MINUTES"
                ${FBSTRING} 20 20 "${alarm_text}" 65535 128
                logger ${alarm_text}
                printf "${alarm_text}" > /tmp/hmi_text
                (sleep 120
		save_reboot "plc sync: bad signature, restart"
                reboot 
		) &
                exit
        }
	}
        [ "$ccsconnectors" == "2" ]  && {
	ifconfig eth3 
        [ "$?" != "0" ] && {
                alarm_text="NO PLC ETH3! - REBOOT IN 2 MINUTES"
                ${FBSTRING} 20 20 "${alarm_text}" 65535 128
                logger ${alarm_text}
                printf "${alarm_text}" > /tmp/hmi_text
                (sleep 120
		save_reboot "plc sync: bad signature, restart"
                reboot 
		) &
                exit
        }
	}
	factory_code=`uci get ingeteam.@ingeteam[0].factory_code`
        acSocket=${factory_code:9:1}
        [ "$acSocket" != "N" ] && {
	acccsconnector=$((ccsconnectors+1+1))
	ifconfig eth$acccsconnector
        [ "$?" != "0" ] && {
		alarm_text="NO PLC $acccsconnecotr! - REBOOT IN 2 MINUTES"
                ${FBSTRING} 20 20 "${alarm_text}" 65535 128
                logger ${alarm_text}
                printf "${alarm_text}" > /tmp/hmi_text
                (sleep 120
		save_reboot "plc sync: bad signature, restart"
                reboot 
		) &
                exit
        }
	}

        sw_version=`uci get ingeteam.@ingeteam[0].release`
        alarm_text="ALL HW OK! $sw_version"
        ${FBSTRING} 20 20 "${alarm_text}" 65535 128
        printf "${alarm_text}" > /tmp/hmi_text
        sleep 2
        dd if=/dev/zero | tr "\000" "\377" > /dev/fb0
        fbv -d 1 /etc/ingeteam/ingeteam_logo_color.jpg
        (echo 1 > /sys/class/leds/output8/brightness && sleep 1 && echo 0 > /sys/class/leds/output8/brightness) &
        ;;
	*)
	${FBSTRING} 20 20 "WRONG SERIAL NUMBER!" 65535 128
	;;
	esac	
}
