#!/bin/bash
# pc1.cgi
# Parsing of Profile Cycle 1

echo "$REMOTE_ADDR" >> hitlist

echo "Content-type: text/html"
echo ""

echo "<html><head></head><body><pre>"

if  [ "$REQUEST_METHOD" = "POST" ]; then
	QUERY_STRING=`cat -`
fi

# USE sed TO REPLACE & WITH TAB
LINE=`echo $QUERY_STRING | sed 's/&/	/g'`

# THIS FOR LOOP WAS TAKEN FROM UNIX AND LINUX SHELL SCRIPTING
for LOOP in $LINE
do
	NAME=`echo $LOOP | sed 's/=/ /g' | awk '{print $1}'`
	# replace % with \x in the string and replace all + with spaces
	TYPE=`echo $LOOP | sed 's/=/ /g' | awk '{print $2}' | sed -e 's/%\(\)/\\\x/g' | sed 's/+/ /g'`
	# USE printf IT DOES ALL THE HEX CONVERSION FOR YOU
		#display line
#		printf "${NAME}=${TYPE}\n"
		#parse line to be NAME=$TYPE
		#   THE STRING BELOW WILL PRESERVER WHITE SPACE CONTAINED IN THE $TYPE VARIABLE
		#   PASSING  printf"${NAME}=${TYPE}\n" TO eval WILL TRUNCATE THE STRING AFTER THE
		#   FIRST WHITE SPACE.
		VARS=`printf "${NAME}=\\${TYPE}\n"`
	#load the value of VARS into the script
	eval `printf $VARS`
done

#SORT OUT POINT=0 RADIUS=1 & CHAMFER=2 FOR
#P204-P208-P212-P216-P220-P224-P228-P232-P236-P240

#SET INCREMENTAL ASSIGNMENTS
#PCALL 9661, P2[45-55]

if [ "$PCALL9661P245" = "on" ]; then
	PCALL9661P245=1
else
	PCALL9661P245=0
fi
if [ "$PCALL9661P246" = "on" ]; then
	PCALL9661P246=1
else
	PCALL9661P246=0
fi
if [ "$PCALL9661P247" = "on" ]; then
	PCALL9661P247=1
else
	PCALL9661P247=0
fi
if [ "$PCALL9661P248" = "on" ]; then
	PCALL9661P248=1
else
	PCALL9661P248=0
fi
if [ "$PCALL9661P249" = "on" ]; then
	PCALL9661P249=1
else
	PCALL9661P249=0
fi
if [ "$PCALL9661P250" = "on" ]; then
	PCALL9661P250=1
else
	PCALL9661P250=0
fi
if [ "$PCALL9661P251" = "on" ]; then
	PCALL9661P251=1
else
	PCALL9661P251=0
fi
if [ "$PCALL9661P252" = "on" ]; then
	PCALL9661P252=1
else
	PCALL9661P252=0
fi
if [ "$PCALL9661P253" = "on" ]; then
	PCALL9661P253=1
else
	PCALL9661P253=0
fi
if [ "$PCALL9661P254" = "on" ]; then
	PCALL9661P254=1
else
	PCALL9661P254=0
fi
if [ "$PCALL9661P255" = "on" ]; then
	PCALL9661P255=1
else
	PCALL9661P255=0
fi

#SORT OUT POINT, RADIUS, & CHAMFER TO 0,1,&2 RESPECTIVELY
#P204,P208,P212,P216,P220,P224,P228,P232,P236,P240
#P204
if [ "$PCALL9861P204" = "POINT" ]; then
	PCALL9861P204="0"
	PCALL9861P205="0"
fi
if [ "$PCALL9861P204" = "RADIUS" ]; then
	PCALL9861P204="1"
fi
if [ "$PCALL9861P204" = "CHAMFER" ]; then
	PCALL9861P204="2"
else
	PCALL9861P204="0"
fi	
#P208
if [ "$PCALL9861P208" = "POINT" ]; then
	PCALL9861P208="0"
	PCALL9861P209="0"
fi
if [ "$PCALL9861P208" = "RADIUS" ]; then
	PCALL9861P208="1"
fi
if [ "$PCALL9861P208" = "CHAMFER" ]; then
	PCALL9861P208="2"
else
	PCALL9861P208="0"
fi	
#P212
if [ "$PCALL9861P212" = "POINT" ]; then
	PCALL9861P212="0"
	PCALL9861P213="0"
fi
if [ "$PCALL9861P212" = "RADIUS" ]; then
	PCALL9861P212="1"
fi
if [ "$PCALL9861P212" = "CHAMFER" ]; then
	PCALL9861P212="2"
else
	PCALL9861P212="0"
fi
#P216
if [ "$PCALL9861P216" = "POINT" ]; then
	PCALL9861P216="0"
	PCALL9861P217="0"
fi
if [ "$PCALL9861P216" = "RADIUS" ]; then
	PCALL9861P216="1"
fi
if [ "$PCALL9861P216" = "CHAMFER" ]; then
	PCALL9861P216="2"
else
	PCALL9861P216="0"
fi
#P220
if [ "$PCALL9861P220" = "POINT" ]; then
	PCALL9861P220="0"
	PCALL9861P221="0"
fi
if [ "$PCALL9861P220" = "RADIUS" ]; then
	PCALL9861P220="1"
fi
if [ "$PCALL9861P220" = "CHAMFER" ]; then
	PCALL9861P220="2"
else
	PCALL9861P220="0"
fi	
#P224
if [ "$PCALL9861P224" = "POINT" ]; then
	PCALL9861P224="0"
	PCALL9861P225="0"
fi
if [ "$PCALL9861P224" = "RADIUS" ]; then
	PCALL9861P224="1"
fi
if [ "$PCALL9861P224" = "CHAMFER" ]; then
	PCALL9861P224="2"
else
	PCALL9861P224="0"
fi	
#P228
if [ "$PCALL9861P228" = "POINT" ]; then
	PCALL9861P228="0"
	PCALL9861P229="0"
fi
if [ "$PCALL9861P228" = "RADIUS" ]; then
	PCALL9861P228="1"
fi
if [ "$PCALL9861P228" = "CHAMFER" ]; then
	PCALL9861P228="2"
else
	PCALL9861P228="0"
fi	
#P232
if [ "$PCALL9861P232" = "POINT" ]; then
	PCALL9861P232="0"
	PCALL9861P233="0"
fi
if [ "$PCALL9861P232" = "RADIUS" ]; then
	PCALL9861P232="1"
fi
if [ "$PCALL9861P232" = "CHAMFER" ]; then
	PCALL9861P232="2"
else
	PCALL9861P232="0"
fi	
#P236
if [ "$PCALL9861P236" = "POINT" ]; then
	PCALL9861P236="0"
	PCALL9861P237="0"
fi
if [ "$PCALL9861P236" = "RADIUS" ]; then
	PCALL9861P236="1"
fi
if [ "$PCALL9861P236" = "CHAMFER" ]; then
	PCALL9861P236="2"
else
	PCALL9861P236="0"
fi
#P240
if [ "$PCALL9861P240" = "POINT" ]; then
	PCALL9861P240="0"
	PCALL9861P241="0"
fi
if [ "$PCALL9861P240" = "RADIUS" ]; then
	PCALL9861P240="1"
fi
if [ "$PCALL9861P240" = "CHAMFER" ]; then
	PCALL9861P240="2"
else
	PCALL9861P240="0"
fi

# SET TO 0, EMPTY STRINGS IN POINT/RADIUS/CHAMFER.
#P205-P209-P213-P217-P221-P225-P229-P233-P237-P241

if [ "$PCALL9861P205" = "" ]; then
	PCALL9861P205="0"
fi
if [ "$PCALL9861P209" = "" ]; then
	PCALL9861P209="0"
fi
if [ "$PCALL9861P213" = "" ]; then
	PCALL9861P213="0"
fi
if [ "$PCALL9861P217" = "" ]; then
	PCALL9861P217="0"
fi
if [ "$PCALL9861P221" = "" ]; then
	PCALL9861P221="0"
fi
if [ "$PCALL9861P225" = "" ]; then
	PCALL9861P225="0"
fi
if [ "$PCALL9861P229" = "" ]; then
	PCALL9861P229="0"
fi
if [ "$PCALL9861P233" = "" ]; then
	PCALL9861P233="0"
fi
if [ "$PCALL9861P237" = "" ]; then
	PCALL9861P237="0"
fi
if [ "$PCALL9861P241" = "" ]; then
	PCALL9861P241="0"
fi 

#SET EMPTY AXIS VALUES TO 100000
#& ADJUST IMPLIED NUMBER TO EMPTY AXIS VALUES
#P200,P201,P202,P203,P206,P207,P210,P211,P214,P215,P218,P219
#P222,P223,P226,P227,P230,P231,P234,P235,P238,P239,P242,P243

##
## NOTE
##
## THIS NEXT SET OF CODE DOES NOT ALLOW FOR THE INCREMENTAL SWITCH
##
## /NOTE
##

#P200,P201,P202,P203,P206,P207,P210,P211
if [ "$PCALL9861P200" = "" ]; then
	PCALL9861P200="0"
fi
if [ "$PCALL9861P201" = "" ]; then
	PCALL9861P201="0"
fi
if [ "$PCALL9861P202" = "" ]; then
	if [ "$PCALL9861P203" = "" ]; then
	PCALL9861P202="100000"
	else
		PCALL9861P202=$PCALL9861P200
	fi
fi
if [ "$PCALL9861P203" = "" ]; then
	if [ "$PCALL9861P202" = "100000" ]; then 
		PCALL9861P203="100000"
	else
		PCALL9861P203=$PCALL9861P201
	fi
fi
if [ "$PCALL9861P206" = "" ]; then
	if [ "$PCALL9861P207" = "" ]; then 
		PCALL9861P206="100000"
	else
		PCALL9861P206=$PCALL9861P202
	fi
fi
if [ "$PCALL9861P207" = "" ]; then
	if [ "$PCALL9861P206" = "100000" ]; then 
		PCALL9861P207="100000"
	else
		PCALL9861P207=$PCALL9861P203
	fi
fi
if [ "$PCALL9861P210" = "" ]; then
	if [ "$PCALL9861P211" = "" ]; then 
		PCALL9861P210="100000"
	else
		PCALL9861P210=$PCALL9861P206
	fi
fi
if [ "$PCALL9861P211" = "" ]; then
	if [ "$PCALL9861P210" = "100000" ]; then 
		PCALL9861P211="100000"
	else
		PCALL9861P211=$PCALL9861P207
	fi
fi
#P214,P215,P218,P219,P222,P223,P226,P227
if [ "$PCALL9861P214" = "" ]; then
	if [ "$PCALL9861P215" = "" ]; then 
		PCALL9861P214="100000"
	else
		PCALL9861P214=$PCALL9861P210
	fi
fi
if [ "$PCALL9861P215" = "" ]; then
	if [ "$PCALL9861P214" = "100000" ]; then 
		PCALL9861P215="100000"
	else
		PCALL9861P215=$PCALL9861P211
	fi
fi
if [ "$PCALL9861P218" = "" ]; then
	if [ "$PCALL9861P219" = "" ]; then 
		PCALL9861P218="100000"
	else
		PCALL9861P218=$PCALL9861P214
	fi
fi
if [ "$PCALL9861P219" = "" ]; then
	if [ "$PCALL9861P218" = "100000" ]; then 
		PCALL9861P219="100000"
	else
		PCALL9861P219=$PCALL9861P215
	fi
fi
if [ "$PCALL9861P222" = "" ]; then
	if [ "$PCALL9861P223" = "" ]; then 
		PCALL9861P222="100000"
	else
		PCALL9861P222=$PCALL9861P218
	fi
fi
if [ "$PCALL9861P223" = "" ]; then
	if [ "$PCALL9861P222" = "100000" ]; then 
		PCALL9861P223="100000"
	else
		PCALL9861P223=$PCALL9861P219
	fi
fi
if [ "$PCALL9861P226" = "" ]; then
	if [ "$PCALL9861P227" = "" ]; then 
		PCALL9861P226="100000"
	else
		PCALL9861P226=$PCALL9861P222
	fi
fi
if [ "$PCALL9861P227" = "" ]; then
	if [ "$PCALL9861P226" = "100000" ]; then 
		PCALL9861P227="100000"
	else
		PCALL9861P227=$PCALL9861P223
	fi
fi

#P230,P231,P234,P235,P238,P239,P242,P243
if [ "$PCALL9861P230" = "" ]; then
	if [ "$PCALL9861P231" = "" ]; then 
		PCALL9861P230="100000"
	else
		PCALL9861P230=$PCALL9861P226
	fi
fi
if [ "$PCALL9861P231" = "" ]; then
	if [ "$PCALL9861P230" = "100000" ]; then 
		PCALL9861P231="100000"
	else
		PCALL9861P231=$PCALL9861P227
	fi
fi
if [ "$PCALL9861P234" = "" ]; then
	if [ "$PCALL9861P235" = "" ]; then 
		PCALL9861P234="100000"
	else
		PCALL9861P234=$PCALL9861P230
	fi
fi
if [ "$PCALL9861P235" = "" ]; then
	if [ "$PCALL9861P234" = "100000" ]; then 
		PCALL9861P235="100000"
	else
		PCALL9861P235=$PCALL9861P231
	fi
fi
if [ "$PCALL9861P238" = "" ]; then
	if [ "$PCALL9861P239" = "" ]; then 
		PCALL9861P238="100000"
	else
		PCALL9861P238=$PCALL9861P234
	fi
fi
if [ "$PCALL9861P239" = "" ]; then
	if [ "$PCALL9861P238" = "100000" ]; then 
		PCALL9861P239="100000"
	else
		PCALL9861P239=$PCALL9861P235
	fi
fi
if [ "$PCALL9861P242" = "" ]; then
	if [ "$PCALL9861P243" = "" ]; then 
		PCALL9861P242="100000"
	else
		PCALL9861P242=$PCALL9861P238
	fi
fi
if [ "$PCALL9861P243" = "" ]; then
	if [ "$PCALL9861P242" = "100000" ]; then 
		PCALL9861P243="100000"
	else
		PCALL9861P243=$PCALL9861P239
	fi
fi

#MACHINE SETTINGS ON PCALL 9861 P150,P152,PP154,P155,P153

#P150-GEAR RANGE
if [ "$PCALL9861P150" = "" ]; then
	PCALL9861P150="0"
fi
#P152-COOLANT OFF
if [ "$PCALL9861P152" = "on" ]; then
	PCALL9861P152="9"
else
	PCALL9861P152="8"
fi
#P153-PER AXIS MACHINE ALLOWANCE
if [ "$PCALL9861P153" = "CONSTANT" ]; then
	PCALL9861P153="0"
else
	PCALL9861P153="1"
fi
#P154-X AXIS MACHINE ALLOWANCE
if [ "$PCALL9861P154" = "" ];then
	PCALL9861P154="0"
fi
#P155-Z AXIS MACHINE ALLOWANCE
if [ "$PCALL9861P155" = "" ]; then
	PCALL9861P155="0"
fi

#PC1 FEED, SPEED, RPM, TOOL, DOC

# START X & Z
if [ "$PCALL9961X" = "" ]; then
	PCALL9961X="0"
fi
if [ "$PCALL9961Z" = "" ]; then
	PCALL9961Z="0"
fi
# SAFETY X & Z
if [ "$PCALL9961D" = "" ]; then
	PCALL9961D="0"
fi
if [ "$PCALL9961E" = "" ]; then
	PCALL9961E="0"
fi
# ROUGH METHOD
if [ "$PCALL9961A" = "AXIAL" ]; then
	PCALL9961A="0"
else
	PCALL9961A="1"
fi
# INFEED RATE
if [ "$PCALL9961J" = "" ]; then
	PCALL9961J="0"
fi
# RIGHT/LEFT
if [ "$PCALL9961K" = "RIGHT" ]; then
	PCALL9961K="0"
else
	PCALL9961K="1"
fi
# OD/ID
if [ "$PCALL9961M" = "OD" ]; then
	PCALL9961M="0"
else
	PCALL9961M="1"
fi
# DEPTH OF CUT
if [ "$PCALL9961C" = "" ]; then
	PCALL9961C="0"
fi
# ROUGH FEEDRATE
if [ "$PCALL9961F" = "" ]; then
	PCALL9961F="0"
fi
# ROUGH SPEED
if [ "$PCALL9961S" = "" ]; then
	PCALL9961S="0"
fi
# ROUGH TOOL
if [ "$PCALL9961T" = "" ]; then
	PCALL9961T="0"
fi
# ROUGH OFFSET
if [ "$PCALL9961Q" = "" ]; then 
	PCALL9961Q=$PCALL9961T
fi
# MACHINE ALLOWANCE METHOD
if [ "$PCALL9961L" = "" ]; then
	PCALL9961L="0"
fi
if [ "$PCALL9861P153" = "1" ]; then
	PCALL9961L="0"
fi
# FINISH FEED
if [ "$PCALL9961H" = "" ]; then
	PCALL9961H="0"
fi
# FINISH SFM/RPM
if [ "$PCALL9961U" = "" ]; then
	PCALL9961U="0"
fi
# FINISH TOOL
if [ "$PCALL9961V" = "" ]; then
	PCALL9961V="0"
fi
# FINISH OFFSET
if [ "$PCALL9961W" = "" ]; then
	PCALL9961W=$PCALL9961V
fi
# CSS or RPM
if [ "$PCALL9961Y" = "on" ]; then
	PCALL9961Y="1"
else
	PCALL9961Y="0"
fi
# CW or CCW
if [ "$PCALL9961G" = "on" ]; then
	PCALL9961G="1"
else
	PCALL9961G="0"
fi
# SMAX
if [ "$PCALL9961N" = "" ]; then
	PCALL9961N="0"
fi
# TURN/FACE
if [ "$PCALL9961B" = "FACE" ]; then
	PCALL9961B="1"
else
	PCALL9961B="0"
fi

#OUTPUT CODE

if [ "$COMMENT" != "" ]; then
	echo ";$COMMENT"
fi
echo "(PCALL 9861,P200=$PCALL9861P200,P201=$PCALL9861P201,P202=$PCALL9861P202,P203=$PCALL9861P203,P204=$PCALL9861P204,P205=$PCALL9861P205,P206=$PCALL9861P206,P207=$PCALL9861P207,P208=$PCALL9861P208,P209=$PCALL9861P209,P210=$PCALL9861P210,P211=$PCALL9861P211,P212=$PCALL9861P212,P213=$PCALL9861P213)"
echo "(PCALL 9861,P214=$PCALL9861P214,P215=$PCALL9861P215,P216=$PCALL9861P216,P217=$PCALL9861P217,P218=$PCALL9861P218,P219=$PCALL9861P219,P220=$PCALL9861P220,P221=$PCALL9861P221,P222=$PCALL9861P222,P223=$PCALL9861P223,P224=$PCALL9861P224,P225=$PCALL9861P225,P226=$PCALL9861P226,P227=$PCALL9861P227,P228=$PCALL9861P228,P229=$PCALL9861P229)"
echo "(PCALL 9861,P230=$PCALL9861P230,P231=$PCALL9861P231,P232=$PCALL9861P232,P233=$PCALL9861P233,P234=$PCALL9861P234,P235=$PCALL9861P235,P236=$PCALL9861P236,P237=$PCALL9861P237,P238=$PCALL9861P238,P239=$PCALL9861P239,P240=$PCALL9861P240,P241=$PCALL9861P241,P242=$PCALL9861P242,P243=$PCALL9861P243)"
echo "(PCALL 9661,A=1,P244=0,P245=$PCALL9661P245,P246=$PCALL9661P246,P247=$PCALL9661P247,P248=$PCALL9661P248,P249=$PCALL9661P249,P250=$PCALL9661P250,P251=$PCALL9661P251,P252=$PCALL9661P252,P253=$PCALL9661P253,P254=$PCALL9661P254,P255=0)"
echo "(PCALL 9861,P150=$PCALL9861P150,P152=$PCALL9861P152,P154=$PCALL9861P154,P155=$PCALL9861P155,P153=$PCALL9861P153)"
echo "(PCALL 9961,X=$PCALL9961X,Z=$PCALL9961Z,D=$PCALL9961D,E=$PCALL9961E,A=$PCALL9961A,J=$PCALL9961J,K=$PCALL9961K,M=$PCALL9961M,C=$PCALL9961C,F=$PCALL9961F,S=$PCALL9961S,T=$PCALL9961T,L=$PCALL9961L,H=$PCALL9961H,U=$PCALL9961U,V=$PCALL9961V,B=$PCALL9961B,G=$PCALL9961G,Y=$PCALL9961Y,N=$PCALL9961N,Q=$PCALL9961Q,W=$PCALL9961W)"
echo "</pre>"

echo "</body></html>"