#!/bin/bash SUBDIR=Infrastructure ThisDev=Charger source Commons.sh source Drivers/UniPi.sh TheOscilloscope=RigolMSO5104Charger source Drivers/RigolMSO5.sh #192.168.2.34 #./Dirigent.sh -r "Charger RelayON 1" #./Charger.sh -r "RelayON 1" function BtShortCircuitsDisEngage() { RelayON 3; } function BtShortCircuitsEngage() { RelayOFF 3; } function CdShortCircuitsDisEngage() { RelayON 1; } function CdShortCircuitsEngage() { RelayOFF 1; } function HVlighON() { RelayON 7; } function HVlighOFF() { RelayOFF 7; } #**************************************** function PowerSupplyHVcontactorON() { RelayON 16; } function PowerSupplyHVcontactorOFF() { RelayOFF 16; } #function PowerSupplyHVcontactorON() { RelayON 13; } #Test na Gabove Zdroji #function PowerSupplyHVcontactorOFF() { RelayOFF 13; } #Test na Gabove Zdroji #**************************************** function BtHVrelayON() { RelayON 4 ; } function BtHVrelayOFF() { RelayOFF 4 ; } function CdHVrelayON() { RelayON 2 ; } function CdHVrelayOFF() { RelayOFF 2 ; } function ChargingResistor_I_DisEngage() { RelayON 15 ; } function ChargingResistor_I_Engage() { RelayOFF 15 ; } #function ChargingResistor_II_DisEngage() { RelayON 6 ; } #function ChargingResistor_II_Engage() { RelayOFF 6 ; } ChargingFlag=0 ChargingResistors=0 function RASPsOpenSession() { mkdir -p $SHM sshfs golem@Dirigent:$SHM/ $SHM/ LoadSetup "C:\RigolDS1.stp" echo OK } #./Charger.sh -r "PrepareDischarge 10 15" #./Charger.sh -r "PostDischarge" function PrepareDischarge() { $LogFunctionStart UBtRequest=$1;UCdRequest=$2 OpenOscDVMchannel 1 if [ $UBtRequest -gt 0 ]; then BtStatus=Charging; BtShortCircuitsDisEngage; BtHVrelayON; LogIt "Bt capacitor charging started" else LogIt "Bt capacitor charging not requested" BtStatus=Charged; fi if [ $UCdRequest -gt 0 ]; then CdStatus=Charging; CdShortCircuitsDisEngage; CdHVrelayON; LogIt "Cd capacitor charging started" else LogIt "Cd capacitor charging not requested" CdStatus=Charged; fi Relax;HVon;Relax if [ $UBtRequest -gt 200 ]; then ChargingResistorsAllOFF; fi #BtSlowLine=`echo "0.01725*$UBtRequest + 76.43956"|bc|xargs printf '%4.0f\n'` BtSlowLine=98 LogIt "U_Bt: $UBtRequest, Hrana: $BtSlowLine" CdSlowLine=98 LogIt "U_Et: $UCdRequest, Hrana: $CdSlowLine" while [ $BtStatus == Charging ] || [ $CdStatus == Charging ]; do PowSupVoltage=`ReadDVMOscilloscope RigolMSO5104Charger` LogIt "Charging ... HV=$PowSupVoltage V" if [ $PowSupVoltage -ge $UBtRequest ] && [ "$BtStatus" = "Charging" ]; then BtHVrelayOFF; BtStatus=Charged; LogIt "Bt capacitor charging finished @ $PowSupVoltage V" fi if [ $PowSupVoltage -ge $UCdRequest ] && [ "$CdStatus" = "Charging" ]; then CdStatus=Charged; CdHVrelayOFF; LogIt "Cd capacitor charging finished @ $PowSupVoltage V" fi if [ $PowSupVoltage -gt $(($UBtRequest*$BtSlowLine/100)) ] && [ $ChargingResistors == 0 ] && [ "$BtStatus" = "Charging" ]; then LogIt "Bt slow PowSup";ChargingResistorsAllON; fi if [ $CdStatus == Charging ] && [ $PowSupVoltage -gt $(($UCdRequest*$CdSlowLine/100)) ] && [ $ChargingResistors == 0 ] && [ "$CdStatus" = "Charging" ]; then LogIt "Cd slow PowSup";ChargingResistorsAllON;fi if [ "$CdStatus" = "Charged" ] && [ $ChargingResistors == 1 ] && [ $PowSupVoltage -lt $(($UBtRequest*$BtSlowLine/100)) ]; then LogIt "Bt boost PowSup";ChargingResistorsAllOFF;fi sleep 0.1 done HVoff $LogFunctionEnd echo OK } function PostDisch() { GoToSafeState $LogFunctionGoingThrough echo OK } function PostDischargeFinals() { $LogFunctionGoingThrough DVMDisable GetOscScreenShot > $SHM0/$SUBDIR/$ThisDev/ScreenShot.png killall netcat echo OK } function GoToSafeState() { HVoff; CdHVrelayOFF; BtHVrelayOFF; Relax; CdShortCircuitsEngage; BtShortCircuitsEngage; } function Emergency() { GoToSafeState $LogFunctionStart echo OK } function HVon() { $LogFunctionPassing HVlighON PowerSupplyHVcontactorON Relax } function HVoff() { PowerSupplyHVcontactorOFF $LogFunctionPassing HVlighOFF mRelax ChargingResistorsAllON } function ChargingResistorsAllOFF() { $LogFunctionStart ChargingResistors=0 ChargingResistor_I_DisEngage #ChargingResistor_II_DisEngage echo "Fast">$SHM/Charging } function ChargingResistorsAllON() { $LogFunctionStart ChargingResistors=1 ChargingResistor_I_Engage #ChargingResistor_II_Engage echo "Slow">$SHM/Charging } TASK=$1 COMMANDLINE=`echo $@|sed 's/-r //g'` case "$TASK" in "") RETVAL=1 ;; --raw_command|-r) $COMMANDLINE ;; --rsync) RsyncDeviceFromDirigent ;; esac