/*-------------------------------------------------------------------------
//                           UNCLASSIFIED
/*-------------------------------------------------------------------------
RAYTHEON PROPRIETARY: THIS DOCUMENT CONTAINS DATA OR INFORMATION
PROPRIETARY TO RAYTHEON COMPANY AND IS RESTRICTED TO USE ONLY BY PERSONS
AUTHORIZED BY RAYTHEON COMPANY IN WRITING TO USE IT. DISCLOSURE TO
UNAUTHORIZED PERSONS WOULD LIKELY CAUSE SUBSTANTIAL COMPETITIVE HARM TO
RAYTHEON COMPANY'S BUSINESS POSITION. NEITHER SAID DOCUMENT NOR ITS
CONTENTS SHALL BE FURNISHED OR DISCLOSED TO OR COPIED OR USED BY PERSONS
OUTSIDE RAYTHEON COMPANY WITHOUT THE EXPRESS WRITTEN APPROVAL OF RAYTHEON
COMPANY.

THIS PROPRIETARY NOTICE IS NOT APPLICABLE IF DELIVERED TO THE U.S.
GOVERNMENT.

UNPUBLISHED WORK - COPYRIGHT RAYTHEON COMPANY.
-------------------------------------------------------------------------*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Raytheon.Instruments.PowerSupplies
{
   public static class KeysightPowerSupplyScpiCommands
   {
      public static string CLEAR_CMD = "*CLS";
      public static string RESET_CMD = "*RST";
      public static string SELFTEST_CMD = "*TST?";
      public static string READ_ERROR_CODE_CMD = "SYST:ERR?";
      public static string REBOOT_CMD = "SYST:REB";

      // panel disable/enable commands
      public static string SET_FRONTPANEL_DISABLE_CMD = "SYST:COMM:RLST RWL";
      public static string SET_FRONTPANEL_ENABLE_CMD = "SYST:COMM:RLST REM";

      // watchdog commands
      public static string SET_WATCHDOGDELAY_CMD = "OUTP:PROT:WDOG:DEL";
      public static string SET_WATCHDOGON_CMD = "OUTP:PROT:WDOG ON";
      public static string SET_WATCHDOGOFF_CMD = "OUTP:PROT:WDOG OFF";

      // coupling commands
      public static string SET_COUPLE_CHANNELS_CMD = "OUTP:COUP:CHAN";
      public static string SET_COUPLE_ON_CMD = "OUTP:COUP ON";
      public static string SET_COUPLE_OUTPUT_PROTECT_ON_CMD = "OUTP:PROT:COUP ON";
      public static string QUERY_COUPLE_CHANNELS = "OUTP:COUP:CHAN?";
      public static string QUERY_COUPLE_STATE = "OUTP:COUP?";

      // Grouping Commands
      public static string SET_GROUP_DEFINE_CMD = "SYST:GRO:DEF";
      public static string UNGROUP_ALL_CHANNELS_CMD = "SYST:GRO:DEL:ALL";
      public static string QUERY_GROUP_CHANNELS = "SYST:GRO:CAT?";

      // current commands
      public static string SET_OCP_CMD = "CURR:LEV";
      public static string SET_OCP_ON_CMD = "CURR:PROT:STAT ON";
      public static string READ_CURRENT_CMD = "MEAS:CURR?";
      public static string READ_OCP_CMD = "CURR:LEV?";

      // voltage commands
      public static string SET_OVP_CMD = "VOLT:PROT";
      public static string SET_VOLTAGE_SLEW_RATE_CMD = "VOLT:SLEW";
      public static string SET_VOLTAGE_SETPOINT_CMD = "VOLT:LEV";
      public static string SET_CONSTANT_VOLTAGE_CMD = "STAT:OPER:ENAB 1";
      public static string READ_VOLTAGE_CMD = "MEAS:VOLT?";
      public static string READ_VOLTAGE_SETPOINT_CMD = "VOLT?";
      public static string READ_OVP_CMD = "VOLT:PROT?";
      public static string READ_VOLTAGE_SLEW_RATE_CMD = "VOLT:SLEW?";

      // set output commands
      public static string SET_OUTPUT_DISABLE_CMD = "OUTP OFF";
      public static string SET_OUTPUT_ENABLE_CMD = "OUTP ON";

      //query status
      public static string READ_OUTPUT_STATUS_CMD = "OUTP?";
      public static string READ_ERROR_STATUS_CMD = "SYST:ERR?";
      public static string READ_PROTECTION_STATUS_CMD = "STAT:QUES:COND?";
   }
}
