/*
 * CLI_Commands.h
 *
 *  Created on: 29.11.2017
 *      Author: balbekova
 */

#ifndef CLI_COMMANDS_H_
#define CLI_COMMANDS_H_


typedef enum{
	INFO_DEV_NAME = 0,
	INFO_ADDRESS,
	INFO_OWNER,
	INFO_COMMENTS,
	INFO_ALL_ARGS
}info_args_t;

typedef enum{
	ARG_UPS_BATTEST = 0,
	ARG_UPS_SHUTDOWN,
	ARG_UPS_ALL
}ups_args_t;

typedef enum{
	ARG_SYSTIME_DATA = 0,
	ARG_SYSTIME_TIME,
	ARG_SYSTIME_ALL
}systime_args_t;

typedef enum{
	ARG_NETWORK_INFO = 0,
	ARG_NETWORK_DHCP,
	ARG_NETWORK_IP,
	ARG_NETWORK_GW,
	ARG_NETWORK_MASK,
	ARG_NETWORK_ALL
}network_args_t;

typedef enum{
	ARG_SNMP_INFO = 0,
	ARG_SNMP_SERVER,
	ARG_SNMP_COMMUNITY,
	ARG_SNMP_ALL
}snmp_args_t;

typedef enum{
	ARG_AKB_INFO = 0,
	ARG_AKB_VOLT_CELL_MIN,
	ARG_AKB_VOLT_CELL_MAX,
#if HARDWARE_BT6709 || HARDWARE_BT6709_MTS 
	ARG_AKB_CAPACITY,
	ARG_AKB_VOLT,
	ARG_AKB_LIFETIME,
	ARG_AKB_DATASET,
	ARG_AKB_UPS_POWER,
#endif
	ARG_AKB_ALL
}akb_args_t;

typedef enum{
	ARG_ALARM_INFO = 0,
	ARG_ALARM_TEMP,
	ARG_ALARM_LOAD,
	ARG_ALARM_VOUT,
	ARG_ALARM_TYPE_ALL
}type_alarm_args_t;

typedef enum{
	ARG_ALARM_LINE_LOW = 0,
	ARG_ALARM_LINE_HIGH,
	ARG_ALARM_LINE_HIST,
	ARG_ALARM_ALL
}alarm_args_t;

typedef enum{
	ARG_NOTIFICATION_INFO = 0,
	ARG_NOTIFICATION_SET,
	ARG_NOTIFICATION_ALL
}notification_args_t;

typedef enum{
	ARG_WHITELIST_INFO = 0,
	ARG_WHITELIST_RANGE,
	ARG_WHITELIST_RESET,
	ARG_WHITELIST_ALL
}whitelist_args_t;

typedef enum{
	ARG_NTP_ENABLE = 0,
	ARG_NTP_DISABLE,
	ARG_NTP_INFO,
	ARG_NTP_SET,
	ARG_NTP_ALL
}ntp_args_t;

typedef enum{
	ARG_CONFIG_INFO = 0,
	ARG_CONFIG_LOAD,
	ARG_CONFIG_ALL
}config_args_t;

typedef enum{
	PARAM_CONFIG_SNMP = 0,
#ifdef DINS_ENABLE || DOUTS_ENABLE
	PARAM_CONFIG_INOUTS,
#endif
	PARAM_CONFIG_AKB,
	PARAM_CONFIG_ALARM,
#ifdef WHITELIST_ENABLE
	PARAM_CONFIG_WHITELIST,
#endif
	PARAM_CONFIG_NET,
	PARAM_CONFIG_TIME,
	PARAM_CONFIG_ALL
}config_params_t;

typedef enum{
	ARG_NETCONFIG_APPLY = 0,
	ARG_NETCONFIG_CONFIRM,
	ARG_NETCONFIG_ALL
}netconfig_args_t;

typedef enum{
	ARG_HISTORY_EVENTS = 0,
	ARG_HISTORY_UPS,
	ARG_HISTORY_ALL
}history_args_t;

typedef enum{
	ARG_SENSOR_INFO = 0,
#ifdef HARDWARE_BT6707
	ARG_SENSOR_SETUP,
#endif
	ARG_SENSOR_ALL
}sensor_args_t;

typedef enum{
	ARG_USER_PWD = 0,
	ARG_USER_ALL
}user_args_t;

void vRegisterCLICommands(void);

#endif /* CLI_COMMANDS_H_ */
