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

START=30
USE_PROCD=1

#validate_powermeterd_section() {
#}

#powermeterd_config() {
#}

reload_service() {
    config_load powermeterd
}

service_triggers()
{
    procd_add_reload_trigger "powermeterd"
}

start_service() {
sn=`hostname`

    case "${sn:0:2}" in
    6H|6M|6J|6K)
        uci set powermeterd.OCMF.GI="RAPID50"
        uci set powermeterd.internal.modbus_interface='/dev/ttyS2'
        uci set powermeterd.internal.modbus_baudrate='9600'
        uci set powermeterd.fan.fan_type='999'
        uci set powermeterd.fan.maximum_speed='0'
        uci set powermeterd.gpio_inputs.fan_status_key='255'
        uci set powermeterd.gpio_inputs.input_device='gpio_keys'
        uci set powermeterd.gpio_inputs.left_groundfault_key='255'
        uci set powermeterd.gpio_inputs.right_groundfault_key='255'
        uci set powermeterd.relays.left_insulation_monitor_reset=none
        uci set powermeterd.relays.right_insulation_monitor_reset=none
        ;;
    6S|6W)
        uci set powermeterd.OCMF.GI="FUSION"
        uci set powermeterd.internal.modbus_interface='/dev/ttymxc2'
        uci set powermeterd.internal.modbus_baudrate='9600'
        uci set powermeterd.fan.fan_type='999'
        uci set powermeterd.fan.maximum_speed='0'
        uci set powermeterd.gpio_inputs.fan_status_key='255'
        uci set powermeterd.gpio_inputs.input_device='keyspolled'
        uci set powermeterd.gpio_inputs.left_groundfault_key='255'
        uci set powermeterd.gpio_inputs.right_groundfault_key='255'
        uci set powermeterd.relays.left_insulation_monitor_reset=none
        uci set powermeterd.relays.right_insulation_monitor_reset=none
        ;;
    6Z)
        uci set powermeterd.OCMF.GI="RAPID180"
        uci set powermeterd.internal.modbus_interface='/dev/ttyS2'
        uci set powermeterd.internal.modbus_baudrate='38400'
        uci set powermeterd.fan.fan_type='999'
        uci set powermeterd.fan.maximum_speed='0'
        uci set powermeterd.gpio_inputs.fan_status_key='255'
        uci set powermeterd.gpio_inputs.input_device='gpio_keys'
        uci set powermeterd.gpio_inputs.left_groundfault_key='23'
        uci set powermeterd.gpio_inputs.right_groundfault_key='25'
        uci set powermeterd.relays.left_insulation_monitor_reset=benderleft_reset
        uci set powermeterd.relays.right_insulation_monitor_reset=benderright
        ;;
    6L)
        uci set powermeterd.OCMF.GI="RAPIDST"
        uci set powermeterd.internal.modbus_interface='/dev/ttyS2'
        uci set powermeterd.internal.modbus_baudrate='38400'
        uci set powermeterd.fan.fan_type='999'
        uci set powermeterd.fan.maximum_speed='0'
        uci set powermeterd.gpio_inputs.fan_status_key='255'
        #uci set powermeterd.fan.fan_type='0'
        #uci set powermeterd.fan.maximum_speed='2950'
        #uci set powermeterd.gpio_inputs.fan_status_key='4'
        uci set powermeterd.gpio_inputs.left_groundfault_key='255'
        uci set powermeterd.gpio_inputs.right_groundfault_key='255'
        uci set powermeterd.gpio_inputs.input_device='gpio_keys'
        uci set powermeterd.relays.left_insulation_monitor_reset=none
        uci set powermeterd.relays.right_insulation_monitor_reset=none

    ;;
    6Y)
        uci set powermeterd.OCMF.GI="RAPID60"
        uci set powermeterd.internal.modbus_interface='/dev/ttymxc1'
        uci set powermeterd.internal.modbus_baudrate='38400'
        uci set powermeterd.fan.fan_type='999'
        uci set powermeterd.fan.maximum_speed='0'
        uci set powermeterd.gpio_inputs.fan_status_key='255'
        uci set powermeterd.gpio_inputs.input_device='gpio_keys'
        uci set powermeterd.gpio_inputs.left_groundfault_key='23'
        uci set powermeterd.gpio_inputs.right_groundfault_key='25'
        uci set powermeterd.relays.left_insulation_monitor_reset=none
        uci set powermeterd.relays.right_insulation_monitor_reset=none
        ;;
    esac

    uci set powermeterd.OCMF.GS=${sn}
    uci set powermeterd.OCMF.GV="`uci get ingeteam.@ingeteam[0].release`"
    uci set powermeterd.OCMF.CI=${sn}

    uci commit powermeterd
    procd_open_instance
    procd_set_param command /usr/sbin/powermeterd

    #respawn automatically if something died, be careful
    procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-2} ${respawn_retry:-0}
    #reload
    procd_set_param file /etc/config/powermeterd
    #log printfs
    procd_set_param stdout 1
    procd_set_param stderr 1
    procd_set_param user root

    procd_close_instance
}

#stop_service() {
#}

