
#!/bin/csh -f
#Tag 1024
# ChangeMicroscopeConfig
# Script for initial modification of DV SYS files
# JTN: Jan 1996
# CSB: Feb 2000 added Resolve3D.SYS editing

# allow for a -nowait flag so there's no delay at the end
set NOWAIT = 'F'
if($#argv >= 1) then
  if($argv[1] == "-nowait") set NOWAIT = 'T'
endif

# generate the default DV_BASE variable, if necessary
if(`printenv DV_BASE` == "") setenv DV_BASE /usr/local/softWoRx

echo ""
echo "Microscope Configuration Utility"
echo '  Press "q" to quit and save changes.'
echo '  Press "e" to exit without saving changes.'

echo ""
echo "View Help Now (y/n)? \c"
set ViewHelp = $<

if ($ViewHelp == "y") then
  "$DV_BASE"/bin/WMShowHelp "$DV_BASE"/help/ChangeMicroscopeConfig.html
endif

# determine active configuration
set CfgSuffix = ""
set ActiveConfig = `grep -v "#" "$HOME"/.swrc | grep MICROSCOPE_CFG_ACTIVE`

if ($#ActiveConfig > 1) then
  echo ""
  echo "User Account Configuration"
  if ($ActiveConfig[1] == "MICROSCOPE_CFG_ACTIVE") then
    if ($ActiveConfig[2] != "0") then
      set CfgSuffix = "_$ActiveConfig[2]"
    endif
  endif
else
  echo ""
  echo "System Configuration"
  set ActiveConfig = `grep -v "#" "$DV_BASE"/config/system.swrc | grep MICROSCOPE_CFG_ACTIVE`

  if ($#ActiveConfig > 1) then
    if ($ActiveConfig[1] == "MICROSCOPE_CFG_ACTIVE") then
      if ($ActiveConfig[2] != "0") then
	set CfgSuffix = "_$ActiveConfig[2]"
      endif
    endif
  endif
endif

set PrevConfig = "$DV_BASE"/config/Resolve3D.SYS"$CfgSuffix"

#echo "Starting an editor for $PrevConfig..."

if (! (-e $PrevConfig)) then
  echo ""
  echo "Unable to find the active configuration file:"
  echo "$PrevConfig"
  echo ""
  exit(-1)
endif

echo ""
echo "Active Configuration File: $PrevConfig"
echo ""

# get the necessary configuration file names
set NewConfig1 = "$DV_BASE"/config/Resolve3D.SYS_modified1
set NewConfig2 = "$DV_BASE"/config/Resolve3D.SYS_modified2
set BackupConfig = "$PrevConfig"_`date "+%m%d%y_%H%M%S"`

# make a backup copy ASAP!
cp $PrevConfig $BackupConfig
cp $PrevConfig $NewConfig1
cp $PrevConfig $NewConfig2

# ===================================================================
# Determine and present the available camera interfaces
cd $DV_BASE/lib/$TARG

CAMERA_INTERFACE:
set cam_choice = "1"
echo " "
echo "Camera Interface Choices:"
if(-e libCam_pvcam.so)   echo " [1]  Photometrics CH350, Quantix, PXL, or SenSys"
if(-e libCam_ch200.so)   echo " [2]  Photometrics CH200/VME"
if(-e libCam_pi.so)      echo " [3]  Princeton Instruments TE/CCD, MicroMax, or PentaMax"
if(-e libCam_network.so) echo " [4]  DeltaVision Ethernet Controller"
if(-e libCam_emulator.so)echo " [5]  Camera Emulator"

echo ""
echo "Enter choice ["$cam_choice"]: \c"
set cam_choice = $<

if ($cam_choice == "e") goto BAIL_OUT_NO_CHANGES
if ($cam_choice == "q") goto BAIL_OUT_NO_CHANGES


# Default to Emulator; figure out user's choice
set newcam = "libCam_emulator.so"

if      ($cam_choice == "1") then
  set newcam = "libCam_pvcam.so"
else if ($cam_choice == "2") then
  set newcam = "libCam_ch200.so"
else if ($cam_choice == "3") then
  set newcam = "libCam_pi.so"
else if ($cam_choice == "4") then
  set newcam = "libCam_network.so"
else if ($cam_choice == "5") then
  set newcam = "libCam_emulator.so"
else
  set cam_choice = "1"
  echo "Invalid selection. Try again."
  goto CAMERA_INTERFACE
endif

# ===================================================================
# Present the available controller interfaces

CONTROLLER_INTERFACE:
if ($cam_choice == "4") then
  set controller_choice = "7"
  sed "s/PC_Type:.*/PC_Type: network/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/PC_Port:.*/PC_Port: 1234/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/PhotoSensor_Installed:.*/PhotoSensor_Installed: yes dvcam/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
else
  set controller_choice = "4"
  echo " "
  echo "Controller Interface Choices:"
  echo " [1]  Serial - RS232, Port 1, 9600  baud"
  echo " [2]  Serial - RS232, Port 2, 9600  baud"
  echo " [3]  Serial - RS232, Port 1, 19200 baud"
  echo " [4]  Serial - RS232, Port 2, 19200 baud"
  echo " [5]  Serial - RS232, Port 1, 38400 baud"
  echo " [6]  Serial - RS232, Port 2, 38400 baud"
  echo " [7]  Ethernet, TCP/IP"
  echo " [8]  Controller Emulator"

  echo ""
  echo "Enter choice ["$controller_choice"]: \c"
  set controller_choice = $<

  if ($controller_choice == "q") goto BAIL_OUT_SAVE_CHANGES
  if ($controller_choice == "e") goto BAIL_OUT_NO_CHANGES

  if      ($controller_choice == "1") then
    sed "s/PC_Type:.*/PC_Type: real/g"  $NewConfig1 > $NewConfig2
    cp $NewConfig2 $NewConfig1
    sed "s/PC_Port:.*/PC_Port: 1 9600/g"  $NewConfig1 > $NewConfig2
    cp $NewConfig2 $NewConfig1
  else if ($controller_choice == "2") then
    sed "s/PC_Type:.*/PC_Type: real/g"  $NewConfig1 > $NewConfig2
    cp $NewConfig2 $NewConfig1
    sed "s/PC_Port:.*/PC_Port: 2 9600/g"  $NewConfig1 > $NewConfig2
    cp $NewConfig2 $NewConfig1
  else if ($controller_choice == "3") then
    sed "s/PC_Type:.*/PC_Type: real/g"  $NewConfig1 > $NewConfig2
    cp $NewConfig2 $NewConfig1
    sed "s/PC_Port:.*/PC_Port: 1 19200/g"  $NewConfig1 > $NewConfig2
    cp $NewConfig2 $NewConfig1
  else if ($controller_choice == "4") then
    sed "s/PC_Type:.*/PC_Type: real/g"  $NewConfig1 > $NewConfig2
    cp $NewConfig2 $NewConfig1
    sed "s/PC_Port:.*/PC_Port: 2 19200/g"  $NewConfig1 > $NewConfig2
    cp $NewConfig2 $NewConfig1
  else if ($controller_choice == "5") then 
    sed "s/PC_Type:.*/PC_Type: real/g"  $NewConfig1 > $NewConfig2
    cp $NewConfig2 $NewConfig1
    sed "s/PC_Port:.*/PC_Port: 1 38400/g"  $NewConfig1 > $NewConfig2
    cp $NewConfig2 $NewConfig1
  else if ($controller_choice == "6") then 
    sed "s/PC_Type:.*/PC_Type: real/g"  $NewConfig1 > $NewConfig2
    cp $NewConfig2 $NewConfig1
    sed "s/PC_Port:.*/PC_Port: 2 38400/g"  $NewConfig1 > $NewConfig2
    cp $NewConfig2 $NewConfig1
  else if ($controller_choice == "7") then
    sed "s/PC_Type:.*/PC_Type: network/g"  $NewConfig1 > $NewConfig2
    cp $NewConfig2 $NewConfig1
    sed "s/PC_Port:.*/PC_Port: 1234/g"  $NewConfig1 > $NewConfig2
    cp $NewConfig2 $NewConfig1
  else if ($controller_choice == "8") then
    sed "s/PC_Type:.*/PC_Type: emulator/g"  $NewConfig1 > $NewConfig2
    cp $NewConfig2 $NewConfig1
  else
    set controller_choice = "4"
    echo "Invalid selection. Try again."
    goto CONTROLLER_INTERFACE
  endif

endif


# ===================================================================
# Determine the chip type and other camera information

#-------------------------------------------------------------------
if      ($cam_choice == "1") then 

RETRY_CAM_TYPE_1:
  set CamType = "1"
  echo " "
  echo "Camera Type:"
  echo " [1]  ch350   "
  echo " [2]  quantix "
  echo " [3]  pxl     "
  echo " [4]  sensys  "

  echo ""
  echo "Enter choice ["$CamType"]: \c"
  set CamType = $<

  if ($CamType == "q") goto BAIL_OUT_SAVE_CHANGES
  if ($CamType == "e") goto BAIL_OUT_NO_CHANGES

  if      ($CamType == "1") then
    set CamName = "ch300"
    set CamTemp = "-40"
  else if ($CamType == "2") then
    set CamName = "quantix"
    set CamTemp = "-30"
  else if ($CamType == "3") then
    set CamName = "pxl"
    set CamTemp = "-25"
  else if ($CamType == "4") then
    set CamName = "sensys"
    set CamTemp = "10"
  else
    set CamName = "unknown"
    set CamTemp = "-25"
    echo "Invalid selection. Try again."
    goto RETRY_CAM_TYPE_1
  endif

RETRY_CHIP_TYPE_1:
  set ChipType = "1"
  echo " "
  echo "CCD Chip Type:"
  echo " [1]  KAF1400 "
  echo " [2]  KAF0400 "
  echo " [3]  KAF1600 "

  echo ""
  echo "Enter choice ["$ChipType"]: \c"
  set ChipType = $<

  if ($ChipType == "q") goto BAIL_OUT_SAVE_CHANGES
  if ($ChipType == "e") goto BAIL_OUT_NO_CHANGES

  if      ($ChipType == "1") then
    set ChipName = "KAF1400"
  else if ($ChipType == "2") then
    set ChipName = "KAF0400"
  else if ($ChipType == "3") then
    set ChipName = "KAF1600"
  else
    set ChipName = "unknown"
    echo "Invalid selection. Try again."
    goto RETRY_CHIP_TYPE_1
  endif

  sed "s/CCD_Cam_Name:.*/CCD_Cam_Name: $CamName/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_X_Overscan:.*/CCD_X_Overscan: 4/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Y_Overscan:.*/CCD_Y_Overscan: 2/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Support_Binning:.*/CCD_Support_Binning: yes/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Number_Bins:.*/CCD_Number_Bins: 16/g"  $NewConfig1 > $NewConfig2                                  
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Bin_Widths:.*/CCD_Bin_Widths: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Support_Electronic_Gain:.*/CCD_Support_Electronic_Gain: yes/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Gain_Factor:.*/CCD_Gain_Factor: 4/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Default_Temperature:.*/CCD_Default_Temperature: $CamTemp/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Chip_Orientation:.*/CCD_Chip_Orientation: 2/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
#-------------------------------------------------------------------
else if ($cam_choice == "2") then

  set CamName = "ch200"
  set ChipName = "KAF1400"

  sed "s/CCD_Cam_Name:.*/CCD_Cam_Name: $CamName/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_X_Overscan:.*/CCD_X_Overscan: 4/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Y_Overscan:.*/CCD_Y_Overscan: 2/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Support_Binning:.*/CCD_Support_Binning: yes/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Number_Bins:.*/CCD_Number_Bins: 16/g"  $NewConfig1 > $NewConfig2                                  
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Bin_Widths:.*/CCD_Bin_Widths: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Support_Electronic_Gain:.*/CCD_Support_Electronic_Gain: yes/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Gain_Factor:.*/CCD_Gain_Factor: 4/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Default_Temperature:.*/CCD_Default_Temperature: -25/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Chip_Orientation:.*/CCD_Chip_Orientation: 2/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1

#-------------------------------------------------------------------
else if ($cam_choice == "3") then

RETRY_CONTROLLER_NAME_3:
  set PIControllerType = "1"
  echo " "
  echo "Camera Type:"
  echo " [1]  TECCD, st138    "
  echo " [2]  MicroMax, st133 "
  echo ""
  echo "Enter choice ["$PIControllerType"]: \c"
  set PIControllerType = $<

  if ($PIControllerType == "q") goto BAIL_OUT_SAVE_CHANGES
  if ($PIControllerType == "e") goto BAIL_OUT_NO_CHANGES

  if      ($PIControllerType == "1") then
    set ControllerName = "pi_st138"
    set CamTemp = "-40"
  else if ($PIControllerType == "2") then
    set ControllerName = "pi_st133"
    set CamTemp = "-25"
  else
    set ControllerName = "unknown"
    set CamTemp = "-25"
    echo "Invalid selection. Try again."
    goto RETRY_CONTROLLER_NAME_3
  endif

SCSI_BUS_NUMBER_3:
  set SCSIBusNum = "1"
  echo " "
  echo "SCSI Bus Number (0-3):"

  echo ""
  echo "Enter choice ["$SCSIBusNum"]: \c"
  set SCSIBusNum = $<

  if ($SCSIBusNum == "q") goto BAIL_OUT_SAVE_CHANGES
  if ($SCSIBusNum == "e") goto BAIL_OUT_NO_CHANGES

  if      ($SCSIBusNum < "0" || $SCSIBusNum > "3") then
    echo "Invalid selection. Try again."
    goto SCSI_BUS_NUMBER_3
  endif

  set CamName = "$ControllerName"_"$SCSIBusNum"

RETRY_CHIP_TYPE_3:
  set ChipType = "1"
  echo " "
  echo "CCD Chip Type:"
  echo " [1]  KAF1400 "
  echo " [2]  KAF0400 "
  echo " [3]  KAF1600 "

  echo ""
  echo "Enter choice ["$ChipType"]: \c"
  set ChipType = $<

  if ($ChipType == "q") goto BAIL_OUT_SAVE_CHANGES
  if ($ChipType == "e") goto BAIL_OUT_NO_CHANGES

  if      ($ChipType == "1") then
    set ChipName = "KAF1400"
  else if ($ChipType == "2") then
    set ChipName = "KAF0400"
  else if ($ChipType == "3") then
    set ChipName = "KAF1600"
  else
    set ChipName = "unknown"
    echo "Invalid selection. Try again."
    goto RETRY_CHIP_TYPE_3
  endif


  sed "s/CCD_Cam_Name:.*/CCD_Cam_Name: $CamName/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_X_Overscan:.*/CCD_X_Overscan: 4/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Y_Overscan:.*/CCD_Y_Overscan: 2/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Support_Binning:.*/CCD_Support_Binning: yes/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Number_Bins:.*/CCD_Number_Bins: 16/g"  $NewConfig1 > $NewConfig2                                  
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Bin_Widths:.*/CCD_Bin_Widths: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Support_Electronic_Gain:.*/CCD_Support_Electronic_Gain: no/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Gain_Factor:.*/CCD_Gain_Factor: 4/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Default_Temperature:.*/CCD_Default_Temperature: $CamTemp/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Chip_Orientation:.*/CCD_Chip_Orientation: 2/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1

#-------------------------------------------------------------------
else if ($cam_choice == "4") then

  set CamName = "network"

RETRY_CHIP_TYPE_4:
  set ChipType = "4"
  echo " "
  echo "CCD Chip Type:"
  echo " [1]  KAF1400 "
  echo " [2]  KAF0400 "
  echo " [3]  KAF1600 "
  echo " [4]  Sony Interline 1300x1024"
  echo " [5]  Sony Interline 782x582  "

  echo ""
  echo "Enter choice ["$ChipType"]: \c"
  set ChipType = $<

  if ($ChipType == "q") goto BAIL_OUT_SAVE_CHANGES
  if ($ChipType == "e") goto BAIL_OUT_NO_CHANGES

  if      ($ChipType == "1") then
    set ChipName = "KAF1400"
  else if ($ChipType == "2") then
    set ChipName = "KAF0400"
  else if ($ChipType == "3") then
    set ChipName = "KAF1600"
  else if ($ChipType == "4") then
    set ChipName = "Sony_Interline_1300"
  else if ($ChipType == "5") then
    set ChipName = "Sony_Interline_782"
  else
    set ChipName = "unknown"
    echo "Invalid selection. Try again."
    goto RETRY_CHIP_TYPE_4
  endif

  sed "s/CCD_Cam_Name:.*/CCD_Cam_Name: $CamName/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_X_Overscan:.*/CCD_X_Overscan: 0/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Y_Overscan:.*/CCD_Y_Overscan: 0/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Support_Binning:.*/CCD_Support_Binning: yes/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Number_Bins:.*/CCD_Number_Bins: 16/g"  $NewConfig1 > $NewConfig2                                  
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Bin_Widths:.*/CCD_Bin_Widths: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Support_Electronic_Gain:.*/CCD_Support_Electronic_Gain: no/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Gain_Factor:.*/CCD_Gain_Factor: 4/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Default_Temperature:.*/CCD_Default_Temperature: -25/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Chip_Orientation:.*/CCD_Chip_Orientation: 0/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1

#-------------------------------------------------------------------
else if ($cam_choice == "5") then
  set CamName = "emulator"
  set ChipName = "KAF1400"

  sed "s/CCD_Cam_Name:.*/CCD_Cam_Name: $CamName/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_X_Overscan:.*/CCD_X_Overscan: 0/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Y_Overscan:.*/CCD_Y_Overscan: 0/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Support_Binning:.*/CCD_Support_Binning: yes/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Number_Bins:.*/CCD_Number_Bins: 16/g"  $NewConfig1 > $NewConfig2                                  
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Bin_Widths:.*/CCD_Bin_Widths: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Support_Electronic_Gain:.*/CCD_Support_Electronic_Gain: yes/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Gain_Factor:.*/CCD_Gain_Factor: 4/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Default_Temperature:.*/CCD_Default_Temperature: -40/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Chip_Orientation:.*/CCD_Chip_Orientation: 0/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1

else
  echo "Invalid camera interface choice."
  goto CAMERA_INTERFACE
endif


#-------------------------------------------------------------------
# set the CCD type and dimensions 
if      ($ChipName == "KAF1400") then
  sed "s/CCD_Type:.*/CCD_Type: $ChipName/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_X_Dimension:.*/CCD_X_Dimension: 1300/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Y_Dimension:.*/CCD_Y_Dimension: 1030/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1

else if ($ChipName == "KAF0400") then
  sed "s/CCD_Type:.*/CCD_Type: $ChipName/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_X_Dimension:.*/CCD_X_Dimension: 768/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Y_Dimension:.*/CCD_Y_Dimension: 512/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1

else if ($ChipName == "KAF1600") then
  sed "s/CCD_Type:.*/CCD_Type: $ChipName/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_X_Dimension:.*/CCD_X_Dimension: 1500/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Y_Dimension:.*/CCD_Y_Dimension: 1020/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1

else if ($ChipName == "Sony_Interline_1300") then
  sed "s/CCD_Type:.*/CCD_Type: $ChipName/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_X_Dimension:.*/CCD_X_Dimension: 1300/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Y_Dimension:.*/CCD_Y_Dimension: 1030/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1

else if ($ChipName == "Sony_Interline_782") then
  sed "s/CCD_Type:.*/CCD_Type: $ChipName/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_X_Dimension:.*/CCD_X_Dimension: 780/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1
  sed "s/CCD_Y_Dimension:.*/CCD_Y_Dimension: 560/g"  $NewConfig1 > $NewConfig2
  cp $NewConfig2 $NewConfig1

endif

BAIL_OUT_SAVE_CHANGES:

# Set up the symbolic link. Resolve3D looks for libCam.so
echo " "
echo "- Ready to modify the configuration ($PrevConfig)"
echo "  and the camera interface library ($newcam)."

if(`whoami` != 'root') then
  echo ""
  echo "- Provide the superuser password to implement changes:"
endif

cd $DV_BASE/lib/$TARG

su root -c "umask 0;ln -sf $newcam libCam.so;umask 22;cp $NewConfig2 $PrevConfig"

# -------------------------------------------------
if ($status) then
  echo ""
  echo " ### Configuration change failed... ###"
else
  echo ""
  echo "- Finished Configuring the Microscope."
  echo " "
  echo "- To view the current configuration, choose"
  echo "- Utilities->Revise Microscope Configuration"
  echo "- from the softWoRx main menu."
  echo " "
endif

if (-e $NewConfig1) rm $NewConfig1
if (-e $NewConfig2) rm $NewConfig2


# keep the message on the screen unless the -nowait switch was given
#if($NOWAIT == 'F') sleep 6
exit

BAIL_OUT_NO_CHANGES:
if (-e $NewConfig1) rm $NewConfig1
if (-e $NewConfig2) rm $NewConfig2
echo "No changes made."
exit


