using Newtonsoft.Json; using Newtonsoft.Json.Converters; using System.IO; using System.Reflection; namespace Thermo.Active.Model { public static class Constants { #region Public Fields public const string ALARM_ATTACHMENT_PATH = @"C:\CMS\Active\attachment\alarm\"; public const string ALARM_PREFIX = "alarm_"; public const string ALARMS_CONFIG_PATH = CONFIG_DIRECTORY + "alarmsConfig.xml"; public const string ALARMS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "alarmsConfigValidator.xsd"; public const string AREAS_CONFIG_KEY = "areasConfig"; public const string AREAS_CONFIG_PATH = CONFIG_DIRECTORY + "areasConfig.xml"; public const string AREAS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "areasConfigValidator.xsd"; // Token fields Keys public const string AUTHENTICATION_TYPE = "Bearer"; public const string AXES_CONFIG_PATH = CONFIG_DIRECTORY + "axesConfig.xml"; public const string AXES_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + @"axesConfigValidator.xsd"; public const string BROADCAST_DATA = "BROADCAST_DATA"; // File paths public const string CLIENT_EXE_NAME = @"Active_Client.exe"; public const string CLIENT_EXE_NAME_NOEXT = @"Active_Client"; public const string CMS_CONNECT_CONFIG_PATH = CONFIG_DIRECTORY + "cmsConnectConfig.xml"; public const string CMS_CONNECT_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "cmsConnectConfigValidator.xsd"; public const string CMS_FOLDER_PATH = @"C:\CMS\"; public const string CONFIG_DIRECTORY = "Config\\"; public const string CONNECT_DATAMODEL_CONFIG_PATH = CONFIG_DIRECTORY + "DataModel.xml"; public const string CONNECT_DATAMODEL_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "dataModelConfigValidator.xsd"; public const string CUSTOMER_CONTACTS = CMS_FOLDER_PATH + "ContactInfo.xml"; public const string CUSTOMER_CONTACTS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "customerContactConfigValidator.xsd"; public const string DATABASE_NAME = "ThermoActive"; public const string DATABASE_PWD = "root"; // Database config public const string DATABASE_USER = "root"; public const string DEFAULT_FAM_NAME = "Family"; public const string DIAM_METRIC = "DIAMETER"; public const double EPSILON = 0.1; public const string HEADS_CONFIG_PATH = CONFIG_DIRECTORY + "headsConfig.xml"; public const string HEADS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "headsConfigValidator.xsd"; public const string IO_CONFIG_PATH = CONFIG_DIRECTORY + "IOConfig.xml"; public const string IO_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "IOConfigValidator.xsd"; public const string JOB_MAIN_FILENAME = "main.cnc"; public const string JOB_METADATA_FILENAME = "metadata.json"; public const string JOB_TMP_DIRECTORY = TEMP_PP_FOLDER + @"job\"; public const string LIVE_RECIPE_PATH = TEMP_FOLDER + "Recipes\\current.rcp"; public const string LIVE_SCHED_TASK_PATH = TEMP_FOLDER + "Recipes\\sched.tsk"; public const string M156_CONFIG_PATH = CONFIG_DIRECTORY + "inputOperatorConfig.xml"; public const string M156_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "inputOperatorConfigValidator.xsd"; public const string MACHINE_ID_KEY = "machineId"; public const string MACROS_CONFIG_PATH = CONFIG_DIRECTORY + "macrosConfig.xml"; public const string MACROS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "macrosConfigValidator.xsd"; public const string MAIN_PROGRAM_CONFIG_PATH = CONFIG_DIRECTORY + "customMainProgram.txt"; public const string MAINTENANCE_ATTACHMENT_PATH = @"C:\CMS\Active\attachment\maintenance\"; public const string MAINTENANCE_DESC_PREFIX_ID = "maint_desc_"; // ID prefix public const string MAINTENANCE_PREFIX_ID = "maint_"; public const string MAINTENANCES_CONFIG_PATH = CONFIG_DIRECTORY + "maintenancesConfig.xml"; public const string MAINTENANCES_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "maintenancesConfigValidator.xsd"; public const int MAX_NUM_OF_WATCHDOG_ERROR = 4; public const int MIN_ADMIN_ROLE = 30; public const int MIN_CMS_ROLE = 100; public const string MODBLOCK_CONFIG_PATH = CONFIG_DIRECTORY + "moduleBlockConfig.xml"; public const string MODBLOCK_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "moduleBlockConfigValidator.xsd"; public const string NC_CONFIG_KEY = "ncConfig"; public const string NC_SOFTKEYS_CONFIG_PATH = CONFIG_DIRECTORY + "ncSoftKeyConfig.xml"; public const string NC_SOFTKEYS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "ncSoftKeyConfigValidator.xsd"; public const int numRecProdPanelGraph = 30; public const string PART_PRG_IMAGES = TEMP_FOLDER + @"pp_img\"; public const string PROD_SFT_CONFIG_KEY = "softwareProdConfig"; public const string QUEUE_TMP_FOLDER = TEMP_PP_FOLDER + @"queue\"; //Costanti Tipo metreica utensili public const string RADIUS_METRIC = "RADIUS"; public const string RECIPE_CONFIG_PATH = CONFIG_DIRECTORY + "recipeConfig.xml"; public const string RECIPE_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "recipeConfigValidator.xsd"; public const string RECIPE_TEMPLATE_PATH = CONFIG_DIRECTORY + "Recipes\\template.tpl"; // Registry key public const string REGISTER_MACHINE_ID_KEY_NAME = "MachineUniqueId"; public const string RESOURCE_DIRECTORY = @"Thermo.Active.Config.Config."; public const string RISK_CONFIG_PATH = CONFIG_DIRECTORY + "risk2007.xml"; public const string RISK_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "risk2007Validator.xsd"; public const string ROLE_LEVEL_KEY = "roleLevel"; public const string SCADA_DIRECTORY = @"C:\CMS\Active\scada\"; public const string SCADA_PAGES_SCHEMA_PATH = RESOURCE_DIRECTORY + "scadaValidator.xsd"; public const string SEND_ACTIVE_PROGRAM_DATA = "SEND_ACTIVE_PROGRAM_DATA"; // MVVM Messages to signalR tasks public const string SEND_ALARMS = "SEND_ALARMS"; public const string SEND_AXIS_INFO = "SEND_AXIS_INFO"; public const string SEND_CHANNELS_IO_DATA = "SEND_CHANNELS_IO_DATA"; public const string SEND_CMSCONNECT_GW_REBOOT_STATUS = "SEND_CMSCONNECT_GW_REBOOT_STATUS"; public const string SEND_ERROR_TO_UI = "SEND_ERROR_TO_UI"; public const string SEND_EXPIRED_MAINTENANCES_DATA = "SEND_EXPIRED_MAINTENANCES_DATA"; public const string SEND_FUNCTIONALITY_DATA = "SEND_FUNCTION_DATA"; public const string SEND_GENERIC_DATA = "SEND_GENERIC_DATA"; public const string SEND_HEADS_DATA = "SEND_HEADS_DATA"; public const string SEND_M155_DATA = "SEND_M155_DATA"; public const string SEND_M156_DATA = "SEND_M156_DATA"; public const string SEND_MESSAGE = "SEND_MESSAGE"; public const string SEND_NC_SOFTKEYS_DATA = "SEND_NC_SOFTKEYS_DATA"; public const string SEND_NC_STATUS = "NC_STATUS"; public const string SEND_NC_STATUS_UI = "NC_STATUS_UI"; public const string SEND_POWER_ON_DATA = "SEND_POWER_ON_DATA"; public const string SEND_PROCESSES_DATA = "SEND_PROCESSES_STATUS"; public const string SEND_QUEUE_DATA = "SEND_QUEUE_DATA"; public const string SEND_SCADA_DATA = "SEND_SCADA_DATA"; // MVVM Messages to server UI public const string SEND_STOP_SERVER = "STOP_SERVER"; public const string SEND_STOP_THREADS = "SEND_STOP_THREADS"; public const string SEND_THERMO_AREA_DATA = "SEND_THERMO_AREA_DATA"; public const string SEND_THERMO_GAUGE_DATA = "SEND_THERMO_GAUGE_DATA"; public const string SEND_THERMO_MODULE_DATA = "SEND_THERMO_MODULE_DATA"; public const string SEND_THERMO_PROD_CYCLE_DATA = "SEND_THERMO_PROD_CYCLE_DATA"; public const string SEND_THERMO_PROD_INFO_DATA = "SEND_THERMO_PROD_INFO_DATA"; public const string SEND_THERMO_PROD_PANEL_DATA = "SEND_THERMO_PROD_PANEL_DATA"; public const string SEND_THERMO_RECIPE_CHANGED = "SEND_THERMO_RECIPE_CHANGED"; // MVVM Messages for Thermo active specs public const string SEND_THERMO_RECIPE_FULL = "SEND_THERMO_RECIPE_FULL"; public const string SEND_THERMO_RECIPE_OVERWIEW = "SEND_THERMO_RECIPE_OVERWIEW"; public const string SEND_THERMO_RECIPE_SETPOINTHMI_CHANGED = "SEND_THERMO_RECIPE_SETPOINTHMI_CHANGED"; public const string SEND_THERMO_WARMERS_DATA = "SEND_THERMO_WARMERS_DATA"; public const string SEND_THREADS_STATUS = "THREAD_STATUS"; public const string SEND_USER_SOFTKEYS_DATA = "SEND_USER_SOFTKEYS_DATA"; // Names in the xml file public const string SERVER_CONFIG_KEY = "serverConfig"; public const string SERVER_CONFIG_PATH = CONFIG_DIRECTORY + "serverConfig.xml"; public const string SERVER_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + @"serverConfigValidator.xsd"; public const string SHOW_MSG_UI = "SHOW_MSG_UI"; public const string SOFTKEY_HEAD_ID = "Head_"; public const string SOFTKEY_PREFIX_ID = "softkey_"; public const string TEMP_FOLDER = @"C:\CMS\ThermoActive\TMP\"; public const string TEMP_PP_FOLDER = TEMP_FOLDER + @"pp\"; public const string THERMO_DATA_FOLDER = "thermoprophet\\"; public const string THERMO_PROD_PATH = CONFIG_DIRECTORY + "thermoProdConfig.xml"; public const string THERMO_PROD_SCHEMA_PATH = RESOURCE_DIRECTORY + "thermoProdConfigValidator.xsd"; // THERMO SPEC public const string THERMOCAM_CONFIG_PATH = CONFIG_DIRECTORY + "ThermoConf.json"; public const string USER_ID_KEY = "id"; public const string USER_SOFTKEYS_CONFIG_PATH = CONFIG_DIRECTORY + "userSoftKeyConfig.xml"; public const string USER_SOFTKEYS_CONFIG_SCHEMA_PATH = RESOURCE_DIRECTORY + "userSoftKeyConfigValidator.xsd"; public const string USERNAME_KEY = "username"; // Config File Names public static readonly string BASE_PATH = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); public static readonly string[] VALID_FILE_EXTENSIONS = { "", ".txt", ".cnc", ".ini", ".mpf", ".spf" }; public static readonly string[] VALID_IMAGE_EXTENSIONS = { ".jpg", ".jpeg", ".png", ".bmp", ".gif" }; public static string CANDY_DUMMYFILE_PATH = BASE_PATH + "\\dll.dll"; public static string CMS_CONNECT_SETUP_ALARM_MESSAGE = "Error during CMS-Connect setup: Redis Db Not Found"; public static int DATABASE_PROCESS_TIMEOUT = 5; public static string[] DATE_FORMATS = new[] { "M-d-yyyy", "dd-MM-yyyy", "MM-dd-yyyy", "M/d/yyyy", "dd/MM/yyyy", "MM/dd/yyyy", "dd.MM.yyyy", "MM.dd.yyyy" }; public static string[] DATE_TIME_FORMATS = new[] { "M-d-yyyy HH:mm", "dd-MM-yyyy HH:mm", "MM-dd-yyyy HH:mm", "M/d/yyyy HH:mm", "dd/MM/yyyy HH:mm", "MM/dd/yyyy HH:mm" }; public static bool IS_BETA = false; public static string[] JOB_EXTENSIONS = { ".job", ".zip" }; public static string LANGUAGE_PACK_DIRECTORY = BASE_PATH + "\\languages\\"; public static string LANGUAGE_SCHEMA_PATH = BASE_PATH + "\\LanguageValidator.xsd"; public static string NOT_CONFIGURATED_ALARM_MESSAGE = "Alarm_id_{0} : Message not configurated"; public static string NOT_FOUND_ALARM_MESSAGE = "Alarm_id_{0} : Message not found"; public static string PARTPRG_LIST_FILE = "activePP.list"; public static string QUEUE_FILE_NAME = "pp"; #endregion Public Fields #region Public Enums public enum ACTIONS { READ, WRITE } public enum ALARM_SOURCE { NC = 0, PLC = 1 } public enum ALARM_TYPE { ERROR = 0, WARNING = 1 } public enum ERROR_LEVEL { INFO = 1, WARNING = 2, ERROR = 3, FATAL = 4 } public enum HEAD_TYPE { SPINDLE = 0, WJ = 1, AWJ = 2, LASER = 3 } // Maintenances types public enum MAINTENANCE_TYPE { EXP_DATE = 0, MACHINE_INTERVAL = 1, TIME_INTERVAL = 2 } public enum MAINTENANCE_UNIT_OF_MEASURE { mm = 0, D = 1, H = 2, M = 3 } public enum QUEUE_ITEM_STATUS { NOT_ACTIVE = 0, RUNNING = 1, WAITING_OPERATOR = 2, FINISHED = 3 } public enum ROLE_IDS { CMS_SERVICE = 1, CMS_UT = 2, CUSTOMER_ADMIN = 3, CUSTOMER_OPERATOR = 4, CUSTOMER_MAINTAINER = 5 } public enum SCADA_ELEMENT_TYPE { BUTTON = 0, IMAGE = 1, INPUT = 2, PROGRESS_BAR = 3, LABEL = 4, NEGATE_IMAGE = 5 } public enum SOFTKEY_PLACE : int { PADDLE = 0, GANT = 1, } public enum SOFTKEY_TYPE { TOGGLE = 0, PROCEDURE = 1, GROUP = 2 } public enum TACT_AXES_TYPE { NA = 0, LINEAR, ROTATIONAL } [JsonConverter(typeof(StringEnumConverter))] public enum TACT_DOW { Sunday = 0, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday } public enum TACT_IO_TYPE { ND = 0, /// /// Digital IN /// DI, /// /// Digital OUT /// DO, /// /// Analog IN /// AI, /// /// Analog OUT /// AO } public enum TACT_MBLOCK_SECTION { ND = 0, HEATING, FORMING, EXTRACTION } public enum TACT_MBLOCK_TYPE { ND = 0, HEATING, DRAWING, MOVEMENT, VACUUM, COOLING, EXTRACTION } public enum TACT_PARAM_TYPE { ND = 0, General, Positions, Cycle, Heats, Pyrometer, Drawing, UpperPlate, Cooling, Vacuum, Extraction, Options } [JsonConverter(typeof(StringEnumConverter))] public enum TACT_PROD_CATEGORY { ND = 0, GAUGE } [JsonConverter(typeof(StringEnumConverter))] public enum TACT_SCHED_PERIOD { ND = 0, DAY, WEEK, MONTH, YEAR } [JsonConverter(typeof(StringEnumConverter))] public enum TACT_SCHED_TASK { ND = 0, PRE_HEAT } #endregion Public Enums #region Public Structs public struct SCADA_ACTION { #region Public Fields public static string READ = "read"; public static string WRITE = "write"; #endregion Public Fields } #endregion Public Structs #region Public Classes public static class API_ERROR_KEYS { #region Public Fields public const string CUSTOMER_FILE_INVALID = "contactinfo_error_customer_configfile"; public const string DUPLICATED_USERNAME = "error_duplicated_username"; public const string ID_ALREADY_EXIST = "error_id_already_exist"; public const string IMPORT_FILE_NOT_VALID = "error_import_file_not_valid"; public const string INCORRECT_PARAMETERS = "error_incorrect_parameters"; public const string OPTION_NOT_ACTIVE = "error_option_not_active"; public const string PASSWORD_IS_INVALID = "error_password_is_invalid"; #endregion Public Fields } public static class FUNCTIONALITY_NAMES { #region Public Fields public const string ALARM_CMD = "alarmCmd"; public const string AXES_SELECTION = "axesSoftkeys"; public const string GENERAL = "general"; public const string HEADS_CMD = "headsCmd"; public const string MAINTENANCE = "maintenance"; public const string NC_DATA = "ncData"; public const string NC_SOFTKEY = "ncSoftkeys"; public const string PROCESS_CMD = "processCmd"; public const string RECIPE_MANAGER = "thermoRecipeManager"; public const string RISC_MANAGER = "riscManager"; public const string STARTUP_ICONS = "startupIcons"; public const string THERMO_MANAGER = "thermoManager"; public const string USER_FUNCTIONS = "userFunctions"; public const string USER_SOFTKEY = "userSoftkeys"; #endregion Public Fields } public static class NC_VENDOR { #region Public Fields public const string DEMO = "DEMO"; public const string FANUC = "FANUC"; public const string OSAI = "OSAI"; public const string S7NET = "S7NET"; public const string SIEMENS = "SIEMENS"; #endregion Public Fields } // Active Areas public class AREAS { #region Public Fields public const string ALARMS_KEY = "alarms"; public const string GENERAL_KEY = "general"; public const string JOBEDITOR_KEY = "jobeditor"; public const string MAINTENANCE_KEY = "maintenance"; public const string PRODUCTION_KEY = "production"; public const string REPORT_KEY = "report"; public const string RISC_KEY = "risc"; public const string SCADA_KEY = "scada"; public const string THERMO_HOOD_KEY = "thermoHood"; public const string THERMO_KEY = "thermo"; public const string UNDER_HOOD = "underHood"; public const string USERS_KEY = "users"; public const string UTILITIES_KEY = "utilities"; #endregion Public Fields } #endregion Public Classes //public static readonly string BASE_PATH = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location).Replace("\\lib", ""); #if DEBUG public static readonly string CLIENT_PATH_64 = BASE_PATH + @"\Client_Debug\x64\" + CLIENT_EXE_NAME; public static readonly string CLIENT_PATH_86 = BASE_PATH + @"\Client_Debug\x86\" + CLIENT_EXE_NAME; public static string WEBSITE_DIRECTORY = Path.Combine(BASE_PATH, "..", "wwwroot"); #else public static readonly string CLIENT_PATH_64 = BASE_PATH + @"\Client\x64\" + CLIENT_EXE_NAME; public static readonly string CLIENT_PATH_86 = BASE_PATH + @"\Client\x86\" + CLIENT_EXE_NAME; public static string WEBSITE_DIRECTORY = BASE_PATH + "\\view"; #endif } }