using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace IOB_UT
{
    /// <summary>
    /// Elenco MODI CNC
    /// </summary>
    public enum CNC_MODE
    {
        /// <summary>
        /// Non definito
        /// </summary>
        ND = 0,

        /// <summary>
        /// AUTOMATICO
        /// </summary>
        AUTO,

        /// <summary>
        /// EDIT (MEMORY EDIT)
        /// </summary>
        EDIT,

        /// <summary>
        /// MEN (MEMORY OPERATION)
        /// </summary>
        MEN,

        /// <summary>
        /// MDI (MANUAL DATA INPUT)
        /// </summary>
        MDI,

        /// <summary>
        /// HANDLE/INC (MANUAL HANDLE / INCREMENTAL FEED)
        /// </summary>
        HANDLE_INC,

        /// <summary>
        /// HOME
        /// </summary>
        HOME,

        /// <summary>
        /// JOG (MANUAL CONTINUOUS FEED)
        /// </summary>
        JOG,

        /// <summary>
        /// JOG MAN
        /// </summary>
        JOG_MAN,

        /// <summary>
        /// JOG_INC
        /// </summary>
        JOG_INC,

        /// <summary>
        /// PROFILE
        /// </summary>
        PROFILE,

        /// <summary>
        /// SEMI
        /// </summary>
        SEMI,

        /// <summary>
        /// THND (TEACH IN HANDLE)
        /// </summary>
        THND,

        /// <summary>
        /// TJOG (TEACH IN JOG)
        /// </summary>
        TJOG,

        /// <summary>
        /// RMT (DNC OPERATION)
        /// </summary>
        RMT,

        /// <summary>
        /// REF (MANUAL REFERENCE POSITION RETURN)
        /// </summary>
        REF
    }

    /// <summary>
    /// Elenco STATI CNC OSAI
    /// </summary>
    public enum CNC_STATUS_OSAI
    {
        IDLE = 1,
        CYCLE,
        HODA,
        RUNH,
        HRUN,
        ERRO,
        WAIT,
        RESET,
        EMERG,
        INPUT
    }

    /// <summary>
    /// Tipologie di DUMP memoria
    /// </summary>
    public enum dumpType
    {
        /// <summary>
        /// Salvataggio all'avvio aree memoria (con sovrascrittura)
        /// </summary>
        STARTUP,

        /// <summary>
        /// Campionamento periodico
        /// </summary>
        SAMPLE
    }

    /// <summary>
    /// Tipo di ciclo da processare
    /// </summary>
    public enum gatherCycle
    {
        /// <summary>
        /// Very High Frequency (solo x invii...)
        /// </summary>
        VHF,

        /// <summary>
        /// lettura dati ad alta frequenza
        /// </summary>
        HF,

        /// <summary>
        /// lettura dati standard
        /// </summary>
        MF,

        /// <summary>
        /// lettura dati bassa freq
        /// </summary>
        LF,

        /// <summary>
        /// lettura dati bassissima priorità (re-sync stato allarmi)
        /// </summary>
        VLF
    }

    /// <summary>
    /// StFlag32: set di 32 bit (4 word) contente semaforo di variabili
    /// </summary>
    [Flags]
    public enum StFlag32 : int
    {
        NONE = 0,
        B00 = 1 << 0,
        B01 = 1 << 1,
        B02 = 1 << 2,
        B03 = 1 << 3,
        B04 = 1 << 4,
        B05 = 1 << 5,
        B06 = 1 << 6,
        B07 = 1 << 7,
        B08 = 1 << 8,
        B09 = 1 << 9,
        B10 = 1 << 10,
        B11 = 1 << 11,
        B12 = 1 << 12,
        B13 = 1 << 13,
        B14 = 1 << 14,
        B15 = 1 << 15,
        B16 = 1 << 16,
        B17 = 1 << 17,
        B18 = 1 << 18,
        B19 = 1 << 19,
        B20 = 1 << 20,
        B21 = 1 << 21,
        B22 = 1 << 22,
        B23 = 1 << 23,
        B24 = 1 << 24,
        B25 = 1 << 25,
        B26 = 1 << 26,
        B27 = 1 << 27,
        B28 = 1 << 28,
        B29 = 1 << 29,
        B30 = 1 << 30,
        B31 = 1 << 31
    }

    /// <summary>
    /// StFlag8: set di 8 bit (1 word) contente semaforo di variabili
    /// </summary>
    [Flags]
    public enum StFlag8 : int
    {
        NONE = 0,
        B0 = 1 << 0,
        B1 = 1 << 1,
        B2 = 1 << 2,
        B3 = 1 << 3,
        B4 = 1 << 4,
        B5 = 1 << 5,
        B6 = 1 << 6,
        B7 = 1 << 7
    }

    /// <summary>
    /// Tipologia di adapters ammessi
    /// </summary>
    public enum tipoAdapter
    {

        /// <summary>
        /// Adapter SIMULAZIONE
        /// </summary>
        SIMULA,

        /// <summary>
        /// Adapter non specificato
        /// </summary>
        ND,


        /// <summary>
        /// Adapter OSAI CNDEX (Cndex)
        /// </summary>
        OSAI_CNDEX,

        /// <summary>
        /// Adapter OSAI OPEN (ws)
        /// </summary>
        OSAI_OPEN,

        /// <summary>
        /// Adapter OSAI VB6
        /// </summary>
        OSAI_VB6,
    }

    /// <summary>
    /// Enumerazione tipi di tipi di URL x invio
    /// </summary>
    public enum urlType
    {
        /// <summary>
        /// Salvataggio FluxLog (valori estesi che non provocano calcoli di macchine a stati, eventi...)
        /// </summary>
        FLog,

        /// <summary>
        /// INPUT segnali in ingresso (standard base MAPO)
        /// </summary>
        SignIN
    }
}