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

START=30
USE_PROCD=1

apply_ac_uci_settings() {
sn=`hostname`
case "${sn:0:2}" in
6H|6M)
	acconnector=${sn:3:1}	
	#hw spec
	touch /etc/config/accontroller
	uci set accontroller.internal.logical_connector=$sn.mennekes
	uci set accontroller.relays=relays                                         
	uci set accontroller.relays.accontactor='accontactor'
	uci set accontroller.relays.accontactor_schuko='none'
	#depends on sn
	if [ "$acconnector" == "H" ]
	then
	uci set accontroller.relays.aclockconnector='aclockholder'
	uci set accontroller.relays.aclockenable='none' 
	uci set accontroller.relays.acunlockconnector='acunlockholder'
	else
	uci set accontroller.relays.aclockconnector='none'
	uci set accontroller.relays.aclockenable='none' 
	uci set accontroller.relays.acunlockconnector='none'
	fi
	uci set accontroller.relays.aclockholder='aclockholder' 
	uci set accontroller.relays.acunlockholder='acunlockholder' 
	uci set accontroller.leds=leds                                             
	uci set accontroller.leds.red='r'                                      
	uci set accontroller.leds.green='g'                                    
	uci set accontroller.leds.blue='b'                                     
	uci set accontroller.pilot=pilot                                           
	uci set accontroller.pilot.pwm_chip='0'                                    
	uci set accontroller.pilot.pwm_device='1'
	uci set accontroller.pilot.adc_device_type='iio'                                  
	uci set accontroller.pilot.adc_device='2'                                  
	uci set accontroller.pilot.vmax_channel='1'                                
	uci set accontroller.pilot.vmin_channel='2'                                
	uci set accontroller.ac=ac                                      
	uci set accontroller.ac.adc_device='0'                        
	uci set accontroller.ac.r_channel='9'
	uci set accontroller.ac.s_channel='10'                                    
	uci set accontroller.ac.t_channel='11'                                    
	uci set accontroller.ac.pwm_chip='255'                                       
	uci set accontroller.ac.pwm_device='255'                                     
	uci set accontroller.gpio_inputs=gpio_inputs                               
	uci set accontroller.gpio_inputs.input_device='gpio_keys'                 
	uci set accontroller.gpio_inputs.door_code='18'                           
	uci set accontroller.gpio_inputs.manual_emergency_stop_code='8' 
	uci set accontroller.gpio_inputs.r_code='255'                               
	uci set accontroller.gpio_inputs.s_code='255'                               
	uci set accontroller.gpio_inputs.t_code='255'                               
	uci set accontroller.gpio_inputs.schuko_code='255'
	uci set accontroller.gpio_inputs.schukocontactor_check_code='255'
	uci set accontroller.gpio_inputs.magnetotermico_code='255'                    
	uci set accontroller.gpio_inputs.ac_holder_code='25'
	uci set accontroller.gpio_inputs.error_varistor_code='255'
	uci set accontroller.gpio_inputs.cfgs_code='0x108, 0x107, 0x106, 0x105'
	uci set accontroller.proximity=proximity                         
	#depends on sn
	if [ "$acconnector" == "H" ]
	then
	uci set accontroller.proximity.adc_device_type='iio'                                  
	uci set accontroller.proximity.adc_device='2'
	uci set accontroller.proximity.vproximity_channel='3' 
	else
	uci set accontroller.proximity.adc_device='255'
	uci set accontroller.proximity.vproximity_channel='255' 
	fi
	#hw limits
	uci set accontroller.internal.max_current=63
        uci set accontroller.internal.min_current=6
	uci set accontroller.internal.nominal_current=63
	uci set accontroller.internal.deferred_current=63
	uci set accontroller.session.max_proximity_current=63
	uci commit accontroller
	;;
6S|6W)
	sn=`uci get ingeteam.@ingeteam[0].serialnumber`
	factory_code=`uci get ingeteam.@ingeteam[0].factory_code`
	leftconnector=${factory_code:10:2}
	rightconnector=${factory_code:12:2}
	leftdcleakage=${factory_code:15:1}
	rightdcleakage=${factory_code:16:1}

	#hw spec
	touch /etc/config/accontrollerleft
	uci set accontrollerleft.internal.logical_connector=$sn.mennekesleft
	uci set accontrollerleft.relays=relays                                         
	uci set accontrollerleft.relays.accontactor='enablerelayleft'   
	uci set accontrollerleft.relays.accontactor_schuko='none'               
	uci set accontrollerleft.relays.aclockconnector='lockleft'                     
	uci set accontrollerleft.relays.aclockenable='enableleft'
	uci set accontrollerleft.relays.acunlockconnector='none'                     
	uci set accontrollerleft.relays.aclockholder='none' 
	uci set accontrollerleft.relays.acunlockholder='none' 
	uci set accontrollerleft.diff=diff                                         
	uci set accontrollerleft.diff.difftest='difftestleft'                          
	uci set accontrollerleft.leds=leds                                             
	uci set accontrollerleft.leds.red='rleft'                                      
	uci set accontrollerleft.leds.green='gleft'                                    
	uci set accontrollerleft.leds.blue='bleft'                                     
	uci set accontrollerleft.pilot=pilot                                           
	uci set accontrollerleft.pilot.pwm_chip='0'                                    
	uci set accontrollerleft.pilot.pwm_device='0' 
	uci set accontrollerleft.pilot.adc_device_type='iio'                                 
	uci set accontrollerleft.pilot.adc_device='0'
	uci set accontrollerleft.pilot.vmax_channel='0'                                
	uci set accontrollerleft.pilot.vmin_channel='1'                                
	uci set accontrollerleft.ac=ac                                      
	uci set accontrollerleft.ac.adc_device='255'                        
	uci set accontrollerleft.ac.r_channel='255'
	uci set accontrollerleft.ac.s_channel='255'                                    
	uci set accontrollerleft.ac.t_channel='255'                                    
	uci set accontrollerleft.ac.pwm_chip='1'                                       
	uci set accontrollerleft.ac.pwm_device='0'                                     
	uci set accontrollerleft.gpio_inputs=gpio_inputs                               
	uci set accontrollerleft.gpio_inputs.input_device='keyspolled'                 
	uci set accontrollerleft.gpio_inputs.door_code='20'                           
	uci set accontrollerleft.gpio_inputs.manual_emergency_stop_code='255'          
	uci set accontrollerleft.gpio_inputs.r_code='35'                               
	uci set accontrollerleft.gpio_inputs.s_code='36'                               
	uci set accontrollerleft.gpio_inputs.t_code='37'                               
	uci set accontrollerleft.gpio_inputs.schuko_code='255'
	uci set accontrollerleft.gpio_inputs.schukocontactor_check_code='255'
	uci set accontrollerleft.gpio_inputs.magnetotermico_code='255' 
	uci set accontrollerleft.gpio_inputs.ac_holder_code='255'
        uci set accontrollerleft.gpio_inputs.error_varistor_code='47'
	uci set accontrollerleft.gpio_inputs.cfgs_code='none'
	uci set accontrollerleft.proximity=proximity
	uci set accontrollerleft.proximity.adc_device_type='iio'                                  
	uci set accontrollerleft.proximity.adc_device='0'
	uci set accontrollerleft.proximity.vproximity_channel='2' 
	#hw limits
	uci set accontrollerleft.internal.max_current=32
        uci set accontrollerleft.internal.min_current=6
	uci set accontrollerleft.internal.nominal_current=32
	uci set accontrollerleft.internal.deferred_current=32
	uci set accontrollerleft.session.max_proximity_current=32
	#depends on sn
	if [ "$leftconnector" == "C1" ]
	then
	uci set accontrollerleft.proximity.adc_device='255'
	uci set accontrollerleft.proximity.vproximity_channel='255'
	elif [ "$leftconnector" == "C2" ]
	then
	uci set accontrollerleft.proximity.adc_device='255'
	uci set accontrollerleft.proximity.vproximity_channel='255'
	elif [ "$leftconnector" == "42" ]
	then
	uci set accontrollerleft.proximity.adc_device='255'
	uci set accontrollerleft.proximity.vproximity_channel='255'
	elif [ "$leftconnector" == "52" ]
	then
	uci set accontrollerleft.proximity.adc_device='255'
	uci set accontrollerleft.proximity.vproximity_channel='255'
	elif [ "$leftconnector" == "72" ]
	then
	uci set accontrollerleft.proximity.adc_device='255'
	uci set accontrollerleft.proximity.vproximity_channel='255'
    elif [ "$leftconnector" == "5E" ]
    then
    uci set accontrollerleft.proximity.adc_device='255'
    uci set accontrollerleft.proximity.vproximity_channel='255'
	elif [ "$leftconnector" == "51" ]
	then
	uci set accontrollerleft.proximity.adc_device='255'
	uci set accontrollerleft.proximity.vproximity_channel='255'
	elif [ "$leftconnector" == "N3" ]
	then
	uci set accontrollerleft.internal.logical_connector=$sn.scameleft
	uci set accontrollerleft.proximity.adc_device='255'
	uci set accontrollerleft.proximity.vproximity_channel='255'
	uci set accontrollerleft.internal.max_current=16
	uci set accontrollerleft.internal.nominal_current=16
	uci set accontrollerleft.internal.deferred_current=16
	uci set accontrollerleft.session.max_proximity_current=16
	elif [ "$leftconnector" == "N4" ]
	then
	uci set accontrollerleft.internal.logical_connector=$sn.schukoleft
	uci set accontrollerleft.gpio_inputs.schuko_code='31'
	uci set accontrollerleft.pilot.adc_device='255'
	uci set accontrollerleft.pilot.vmax_channel='255'
	uci set accontrollerleft.pilot.vmin_channel='255'
	uci set accontrollerleft.proximity.adc_device='255'
	uci set accontrollerleft.proximity.vproximity_channel='255'
	uci set accontrollerleft.internal.max_current=10
	uci set accontrollerleft.internal.nominal_current=10
	uci set accontrollerleft.internal.deferred_current=10
	uci set accontrollerleft.session.max_proximity_current=10
	elif [ "$leftconnector" == "N7" ]
	then
	uci set accontrollerleft.internal.logical_connector=$sn.schukoleft
	uci set accontrollerleft.gpio_inputs.schuko_code='31'
	uci set accontrollerleft.pilot.adc_device='255'
	uci set accontrollerleft.pilot.vmax_channel='255'
	uci set accontrollerleft.pilot.vmin_channel='255'
	uci set accontrollerleft.proximity.adc_device='255'
	uci set accontrollerleft.proximity.vproximity_channel='255'
	uci set accontrollerleft.internal.max_current=10
	uci set accontrollerleft.internal.nominal_current=10
	uci set accontrollerleft.internal.deferred_current=10
	uci set accontrollerleft.session.max_proximity_current=10
	fi
	if [ "$leftdcleakage" == "D" ]
	then
	uci set accontrollerleft.gpio_inputs.error_diff_code='21'
	uci set accontrollerleft.gpio_inputs.error_diff_DC_code='22'
	uci set accontrollerleft.gpio_inputs.error_diff_AC_code='23'
	else
	uci set accontrollerleft.gpio_inputs.error_diff_code='255'
	uci set accontrollerleft.gpio_inputs.error_diff_DC_code='255'
	uci set accontrollerleft.gpio_inputs.error_diff_AC_code='255'
	fi
	#commit all
	uci commit accontrollerleft			
	#hw spec
	touch /etc/config/accontrollerright
	uci set accontrollerright.internal.logical_connector=$sn.mennekesright
	uci set accontrollerright.relays=relays                                         
	uci set accontrollerright.relays.accontactor='enablerelayright'    
	uci set accontrollerright.relays.accontactor_schuko='none'              
	uci set accontrollerright.relays.aclockconnector='lockright'                     
	uci set accontrollerright.relays.aclockenable='enableright'
	uci set accontrollerright.relays.acunlockconnector='none'                     
	uci set accontrollerright.relays.aclockholder='none' 
	uci set accontrollerright.relays.acunlockholder='none' 
	uci set accontrollerright.diff=diff                                         
	uci set accontrollerright.diff.difftest='difftestright'                     
	uci set accontrollerright.leds=leds                                             
	uci set accontrollerright.leds.red='rright'                                      
	uci set accontrollerright.leds.green='gright'                                    
	uci set accontrollerright.leds.blue='bright'                                     
	uci set accontrollerright.pilot=pilot                                           
	uci set accontrollerright.pilot.pwm_chip='2'
	uci set accontrollerright.pilot.pwm_device='0' 
	uci set accontrollerright.pilot.adc_device_type='iio'                                 
	uci set accontrollerright.pilot.adc_device='0'
	uci set accontrollerright.pilot.vmax_channel='3'                                
	uci set accontrollerright.pilot.vmin_channel='4'                                
	uci set accontrollerright.ac=ac                                      
	uci set accontrollerright.ac.adc_device='255'                        
	uci set accontrollerright.ac.r_channel='255'
	uci set accontrollerright.ac.s_channel='255'                                    
	uci set accontrollerright.ac.t_channel='255'                                    
	uci set accontrollerright.ac.pwm_chip='1'                                       
	uci set accontrollerright.ac.pwm_device='0'                                     
	uci set accontrollerright.gpio_inputs=gpio_inputs                               
	uci set accontrollerright.gpio_inputs.input_device='keyspolled'                 
	uci set accontrollerright.gpio_inputs.door_code='20'                           
	uci set accontrollerright.gpio_inputs.manual_emergency_stop_code='255'          
	uci set accontrollerright.gpio_inputs.r_code='38'                               
	uci set accontrollerright.gpio_inputs.s_code='44'                               
	uci set accontrollerright.gpio_inputs.t_code='45'                               
	uci set accontrollerright.gpio_inputs.schuko_code='255'
	uci set accontrollerright.gpio_inputs.schukocontactor_check_code='255'
	uci set accontrollerright.gpio_inputs.magnetotermico_code='255'                  
	uci set accontrollerright.gpio_inputs.ac_holder_code='255'
        uci set accontrollerright.gpio_inputs.error_varistor_code='46'
	uci set accontrollerright.gpio_inputs.cfgs_code='none'
	uci set accontrollerright.proximity=proximity                         
	uci set accontrollerright.proximity.adc_device_type='iio'                                  
	uci set accontrollerright.proximity.adc_device='0'
	uci set accontrollerright.proximity.vproximity_channel='5' 
	#hw limits
	uci set accontrollerright.internal.max_current=32
        uci set accontrollerright.internal.min_current=6
	uci set accontrollerright.internal.nominal_current=32
	uci set accontrollerright.internal.deferred_current=32
	uci set accontrollerright.session.max_proximity_current=32
	#depends on sn
	if [ "$rightconnector" == "C1" ]
	then
	uci set accontrollerright.proximity.adc_device='255'
	uci set accontrollerright.proximity.vproximity_channel='255'
	elif [ "$rightconnector" == "C2" ]
	then
	uci set accontrollerright.proximity.adc_device='255'
	uci set accontrollerright.proximity.vproximity_channel='255'
	elif [ "$rightconnector" == "42" ]
	then
	uci set accontrollerright.proximity.adc_device='255'
	uci set accontrollerright.proximity.vproximity_channel='255'
	elif [ "$rightconnector" == "52" ]
	then
	uci set accontrollerright.proximity.adc_device='255'
	uci set accontrollerright.proximity.vproximity_channel='255'
	elif [ "$rightconnector" == "72" ]
	then
	uci set accontrollerright.proximity.adc_device='255'
	uci set accontrollerright.proximity.vproximity_channel='255'
    elif [ "$rightconnector" == "5E" ]
    then
    uci set accontrollerright.proximity.adc_device='255'
    uci set accontrollerright.proximity.vproximity_channel='255'
	elif [ "$rightconnector" == "51" ]
	then
	uci set accontrollerright.proximity.adc_device='255'
	uci set accontrollerright.proximity.vproximity_channel='255'
	elif [ "$rightconnector" == "N3" ]
	then
	uci set accontrollerright.internal.logical_connector=$sn.scameright
	uci set accontrollerright.proximity.adc_device='255'
	uci set accontrollerright.proximity.vproximity_channel='255'
	uci set accontrollerright.internal.max_current=16
	uci set accontrollerright.internal.nominal_current=16
	uci set accontrollerright.internal.deferred_current=16
	uci set accontrollerright.session.max_proximity_current=16
	elif [ "$rightconnector" == "N4" ]
	then
	uci set accontrollerright.internal.logical_connector=$sn.schukoright
	uci set accontrollerright.gpio_inputs.schuko_code='32'
	uci set accontrollerright.pilot.adc_device='255'
	uci set accontrollerright.pilot.vmax_channel='255'
	uci set accontrollerright.pilot.vmin_channel='255'
	uci set accontrollerright.proximity.adc_device='255'
	uci set accontrollerright.proximity.vproximity_channel='255'
	uci set accontrollerright.internal.max_current=10
	uci set accontrollerright.internal.nominal_current=10
	uci set accontrollerright.internal.deferred_current=10
	uci set accontrollerright.session.max_proximity_current=10
	elif [ "$rightconnector" == "N5" ]
	then
	uci set accontrollerright.internal.logical_connector=$sn.schukomennekesright
	uci set accontrollerright.gpio_inputs.schuko_code='32'
	uci set accontrollerright.gpio_inputs.schukocontactor_check_code='33'
	uci set accontrollerright.gpio_inputs.magnetotermico_code='19'
	uci set accontrollerright.relays.accontactor_schuko='enablerelayschukoright'
	elif [ "$rightconnector" == "N7" ]
	then
	uci set accontrollerright.internal.logical_connector=$sn.schukoright
	uci set accontrollerright.gpio_inputs.schuko_code='32'
	uci set accontrollerright.pilot.adc_device='255'
	uci set accontrollerright.pilot.vmax_channel='255'
	uci set accontrollerright.pilot.vmin_channel='255'
	uci set accontrollerright.proximity.adc_device='255'
	uci set accontrollerright.proximity.vproximity_channel='255'
	uci set accontrollerright.internal.max_current=10
	uci set accontrollerright.internal.nominal_current=10
	uci set accontrollerright.internal.deferred_current=10
	uci set accontrollerright.session.max_proximity_current=10
	elif [ "$rightconnector" == "S5" ]
	then
	uci set accontrollerright.internal.logical_connector=$sn.schukomennekesright
	uci set accontrollerright.gpio_inputs.schuko_code='32'
	uci set accontrollerright.gpio_inputs.schukocontactor_check_code='33'
	uci set accontrollerright.gpio_inputs.magnetotermico_code='19'
	uci set accontrollerright.relays.accontactor_schuko='enablerelayschukoright'
	fi
	if [ "$rightdcleakage" == "D" ]
	then
	uci set accontrollerright.gpio_inputs.error_diff_code='24'
	uci set accontrollerright.gpio_inputs.error_diff_DC_code='25'
	uci set accontrollerright.gpio_inputs.error_diff_AC_code='30'
	else
	uci set accontrollerright.gpio_inputs.error_diff_code='255'
	uci set accontrollerright.gpio_inputs.error_diff_DC_code='255'
	uci set accontrollerright.gpio_inputs.error_diff_AC_code='255'
	fi
	#commit all
	uci commit accontrollerright
	;;
6Z)
	factory_code=`uci get ingeteam.@ingeteam[0].factory_code`
	emergency_button=${factory_code:29:1}
	acSocket=${factory_code:5:1}
	if [ "$acSocket" != "N" ]
        then
		#hw spec
		touch /etc/config/accontroller
		uci set accontroller.internal.logical_connector=$sn.mennekes
		
		uci set accontroller.relays=relays                                         
		uci set accontroller.relays.accontactor='accontactor'
		uci set accontroller.relays.accontactor_schuko='none'
		uci set accontroller.relays.aclockconnector='aclockconnector'
                uci set accontroller.relays.aclockenable='disabletestdiff_ac'
		uci set accontroller.relays.acunlockconnector='none'
                uci set accontroller.relays.aclockholder='none'
		uci set accontroller.relays.acunlockholder='none' 
		
		uci set accontroller.leds=leds                                             
		uci set accontroller.leds.red='r_ac'                                      
		uci set accontroller.leds.green='g_ac'                                    
		uci set accontroller.leds.blue='b_ac'
		                                     
		uci set accontroller.pilot=pilot                                           
		uci set accontroller.pilot.pwm_chip='0'                                    
		uci set accontroller.pilot.pwm_device='3' 
		uci set accontroller.pilot.adc_device_type='ads7828'                                 
		uci set accontroller.pilot.adc_device='2'                                  
		uci set accontroller.pilot.vmax_channel='0'                                
		uci set accontroller.pilot.vmin_channel='2'    
		                            
		uci set accontroller.ac=ac                                      
		uci set accontroller.ac.adc_device='255'                        
		uci set accontroller.ac.r_channel='255'
		uci set accontroller.ac.s_channel='255'                                    
		uci set accontroller.ac.t_channel='255'                                    
		uci set accontroller.ac.pwm_chip='255'                                       
		uci set accontroller.ac.pwm_device='255' 
		                                    
		uci set accontroller.gpio_inputs=gpio_inputs                               
		uci set accontroller.gpio_inputs.input_device='gpio_keys'                 
		uci set accontroller.gpio_inputs.door_code='17'                           
        if [ "$emergency_button" -ge "2" ]; then
            uci set accontroller.gpio_inputs.manual_emergency_stop_code='255'
        else
           uci set accontroller.gpio_inputs.manual_emergency_stop_code='18'
        fi
		uci set accontroller.gpio_inputs.r_code='37'                               
		uci set accontroller.gpio_inputs.s_code='38'                               
		uci set accontroller.gpio_inputs.t_code='39'                               
		uci set accontroller.gpio_inputs.schuko_code='255'
		uci set accontroller.gpio_inputs.schukocontactor_check_code='255'
		uci set accontroller.gpio_inputs.magnetotermico_code='255'                    
		uci set accontroller.gpio_inputs.ac_holder_code='255'
		uci set accontroller.gpio_inputs.error_varistor_code='255'
		uci set accontroller.gpio_inputs.cfgs_code='0x108, 0x107, 0x106, 0x105'
		
		uci set accontroller.proximity=proximity                         
		uci set accontroller.proximity.adc_device_type='ads7828'                                 
		uci set accontroller.proximity.adc_device='2'
		uci set accontroller.proximity.vproximity_channel='4' 

		#hw limits
		uci set accontroller.internal.max_current=32
                uci set accontroller.internal.min_current=6
		uci set accontroller.internal.nominal_current=32
		uci set accontroller.internal.deferred_current=32
		uci set accontroller.session.max_proximity_current=32
		
		uci commit accontroller
        fi
        ;;
6Y)
        factory_code=`uci get ingeteam.@ingeteam[0].factory_code`
        acSocket=${factory_code:9:1}
	emergency_button=${factory_code:26:1}
        if [ "$acSocket" != "N" ]
        then
                #hw spec
                touch /etc/config/accontroller
                uci set accontroller.internal.logical_connector=$sn.mennekes

                uci set accontroller.relays=relays
                uci set accontroller.relays.accontactor='accontactor'
                uci set accontroller.relays.accontactor_schuko='none'
                uci set accontroller.relays.aclockconnector='aclockconnector'
                uci set accontroller.relays.aclockenable='aclockenable'
                uci set accontroller.relays.acunlockconnector='none'
                uci set accontroller.relays.aclockholder='none'
                uci set accontroller.relays.acunlockholder='none'

                uci set accontroller.leds=leds
                uci set accontroller.leds.red='r_ac'
                uci set accontroller.leds.green='g_ac'
                uci set accontroller.leds.blue='b_ac'

                uci set accontroller.pilot=pilot
                uci set accontroller.pilot.pwm_chip='3'
                uci set accontroller.pilot.pwm_device='0'
                uci set accontroller.pilot.adc_device_type='ads7828'
                uci set accontroller.pilot.adc_device='4'
                uci set accontroller.pilot.vmax_channel='0'
                uci set accontroller.pilot.vmin_channel='2'

                uci set accontroller.ac=ac
                uci set accontroller.ac.adc_device='255'
                uci set accontroller.ac.r_channel='255'
                uci set accontroller.ac.s_channel='255'
                uci set accontroller.ac.t_channel='255'
                uci set accontroller.ac.pwm_chip='255'
                uci set accontroller.ac.pwm_device='255'

                uci set accontroller.gpio_inputs=gpio_inputs
                uci set accontroller.gpio_inputs.input_device='gpio_keys'
                uci set accontroller.gpio_inputs.door_code='17'
                uci set accontroller.gpio_inputs.manual_emergency_stop_code='18'
		[ "$emergency_button" == "N" ] && {
                	uci set accontroller.gpio_inputs.manual_emergency_stop_code='255'
		}
                uci set accontroller.gpio_inputs.r_code='51'
                uci set accontroller.gpio_inputs.s_code='52'
                uci set accontroller.gpio_inputs.t_code='53'
                uci set accontroller.gpio_inputs.schuko_code='255'
                uci set accontroller.gpio_inputs.schukocontactor_check_code='255'
                uci set accontroller.gpio_inputs.magnetotermico_code='255'
                uci set accontroller.gpio_inputs.ac_holder_code='255'
                uci set accontroller.gpio_inputs.error_varistor_code='255'
                uci set accontroller.gpio_inputs.cfgs_code='0x108, 0x107, 0x106, 0x105'

                uci set accontroller.proximity=proximity
                uci set accontroller.proximity.adc_device_type='ads7828'
                uci set accontroller.proximity.adc_device='4'
                uci set accontroller.proximity.vproximity_channel='4'

                #hw limits
                uci set accontroller.internal.max_current=32
                uci set accontroller.internal.min_current=6
                uci set accontroller.internal.nominal_current=32
                uci set accontroller.internal.deferred_current=32
                uci set accontroller.session.max_proximity_current=32

                uci commit accontroller
        fi
        ;;
esac
}

#validate_accontroller_section() {
#}

#accontroller_config() {
#}

reload_service() {
	config_load accontroller
}

service_triggers()
{
	sn=`hostname`
	case "${sn:0:2}" in
        6H|6M)
		procd_add_reload_trigger "accontroller"
		;;
	6S|6W)
		procd_add_reload_trigger "accontrollerleft"
		procd_add_reload_trigger "accontrollerright"
		;;
        6Z)
                factory_code=`uci get ingeteam.@ingeteam[0].factory_code`
                acSocket=${factory_code:5:1}
                if [ "$acSocket" != "N" ]
                then
                    procd_add_reload_trigger "accontroller"
                fi
                ;;
        6Y)
                factory_code=`uci get ingeteam.@ingeteam[0].factory_code`
                acSocket=${factory_code:9:1}
                if [ "$acSocket" != "N" ]
                then
                    procd_add_reload_trigger "accontroller"
                fi
                ;;
	esac
}

start_service() {
	sn=`hostname`
	case "${sn:0:2}" in
        6H|6M)
                #apply ac uci settings
                apply_ac_uci_settings
                uci -c /tmp/.config/ set accontroller_rt.smartcharging.max_current=63
                uci -c /tmp/.config/ commit accontroller_rt

		procd_open_instance
		procd_set_param command /usr/sbin/accontroller
		#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/accontroller
		#log printfs
		procd_set_param stdout 1
		procd_set_param stderr 1
		procd_set_param user root
		procd_close_instance
		;;
	6S|6W)
		(cd /usr/sbin && ln -sf accontroller accontrollerleft && ln -sf accontroller accontrollerright)
                #apply ac uci settings
                apply_ac_uci_settings
                uci -c /tmp/.config/ set accontrollerleft_rt.smartcharging.max_current=32
                uci -c /tmp/.config/ commit accontrollerleft_rt
			
		procd_open_instance
		procd_set_param command /usr/sbin/accontrollerleft
		#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/accontrollerleft
		#log printfs
		procd_set_param stdout 1
		procd_set_param stderr 1
		procd_set_param user root
		procd_close_instance
		
                uci -c /tmp/.config/ set accontrollerright_rt.smartcharging.max_current=32
                uci -c /tmp/.config/ commit accontrollerright_rt
			
		procd_open_instance
		procd_set_param command /usr/sbin/accontrollerright
		#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/accontrollerright
		#log printfs
		procd_set_param stdout 1
		procd_set_param stderr 1
		procd_set_param user root
		procd_close_instance
		;;
        6Z)
                factory_code=`uci get ingeteam.@ingeteam[0].factory_code`
                acSocket=${factory_code:5:1}
                if [ "$acSocket" != "N" ]
                then
                    #apply ac uci settings
                    apply_ac_uci_settings
                    uci -c /tmp/.config/ set accontroller_rt.smartcharging.max_current=63
                    uci -c /tmp/.config/ commit accontroller_rt

                    procd_open_instance
                    procd_set_param command /usr/sbin/accontroller
                    #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/accontroller
                    #log printfs
                    procd_set_param stdout 1
                    procd_set_param stderr 1
                    procd_set_param user root
                    procd_close_instance
                fi
                ;;
        6Y)
                factory_code=`uci get ingeteam.@ingeteam[0].factory_code`
                acSocket=${factory_code:9:1}
                if [ "$acSocket" != "N" ]
                then
                    #apply ac uci settings
                    apply_ac_uci_settings
                    uci -c /tmp/.config/ set accontroller_rt.smartcharging.max_current=63
                    uci -c /tmp/.config/ commit accontroller_rt

                    procd_open_instance
                    procd_set_param command /usr/sbin/accontroller
                    #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/accontroller
                    #log printfs
                    procd_set_param stdout 1
                    procd_set_param stderr 1
                    procd_set_param user root
                    procd_close_instance
                fi
                ;;
        esac
}

#stop_service() {
#}

