using Newtonsoft.Json; using Newtonsoft.Json.Converters; namespace MP.Data.Objects { public class Enums { #region Public Enums /// /// Intervallo dati (es per definizione quanti dati FluxLog tenere x intervallo /// public enum DataInterval { minute, hour, day } public enum DataItemCategory { CONDITION = 0, EVENT = 1, SAMPLE = 2 } /// /// Tipo di esito (generico) /// public enum esitoExec { undone, ok, error } /// /// Tipo di IOB /// public enum IobType { /// /// Non definito /// ND, /// /// IOB rPI /// rPi, /// /// IOB Windows /// WIN } public enum modBusAddrType { /// /// ModBus Coil 0xxxxx (booleano) - OUT R/W /// Coil = 0, /// /// ModBus Input discreto 1xxxxx (booleano) - IN R /// DiscreteInput = 1, /// /// ModBus Input Register 3xxxxx (int[] convertibile a vari int/real) - IN R /// InputRegister = 3, /// /// ModBus Holding Register 4xxxxx (int[] convertibile a vari int/real) - OUT R/W /// HoldingRegister = 4 } /// /// Elenco dei tipi di valore gestiti da PLC (inizialmente SIEMENS) /// public enum plcDataType { /// /// Tipo boolean /// Boolean, /// /// Tipo Int16 intero 16bit /// Int, /// /// Tipo UInt16 reversed LowHigh /// IntLH, /// /// Tipo Int32 intero 32bit /// DInt, /// /// Tipo UInt32 reversed LowHigh /// DIntLH, /// /// Tipo UInt16, intero 16bit /// Word, /// /// Tipo UInt32, intero Unsigned 32bit /// DWord, /// /// Tipo REAL 32 bit /// Real, /// /// Tipo REAL 32 bit standard (HighLow) - sinonimo di Real, creato x simmetria con caso LH /// RealHL, /// /// Tipo REAL 32 bit con swap byte (LowHigh) al posto del normale caso HL (HighLow) /// RealLH, /// /// Tipo stringa /// String, /// /// Timpo intero da High/Low Bit positivo (high bit va moltiplicato x 32768 = Uint16Max/2) /// HLPInt, /// /// Tipo FLOAT 32 bit con endiannes standard (es modbus) /// https://www.scadacore.com/tools/programming-calculators/online-hex-converter/ Float /// - Big Endian (ABCD) /// FloatABCD, /// /// Tipo FLOAT 32 bit con endiannes NON standard (es modbus) /// https://www.scadacore.com/tools/programming-calculators/online-hex-converter/ Float /// - Mid-Big Endian (BADC) /// FloatBADC, /// /// Tipo FLOAT 32 bit con endiannes NON standard (es modbus) /// https://www.scadacore.com/tools/programming-calculators/online-hex-converter/ Float /// - Mid-Little Endian (CDAB) /// FloatCDAB, /// /// Tipo FLOAT 32 bit con endiannes NON standard (es modbus) /// https://www.scadacore.com/tools/programming-calculators/online-hex-converter/ Float /// - Little Endian (DCBA) /// FloatDCBA, /// /// Valore bitmap, inteso come array di bit ognuno da trattare come uno stato on/off /// indipendente e sommabile (es allarmi) /// BitMap, /// /// Tipo Byte 8 bit equivalente a BitMap /// Byte, /// /// Tipo UInt16 intero senza segno 16bit /// UInt, /// /// Tipo UInt32 intero senza segno 32bit /// UDInt } /// /// Tipologia dato Raw Transfer /// /// serializzazione Native [JsonConverter(typeof(JsonStringEnumConverter))] serializzazione /// Newtonsoft json [JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))] public enum rawTransfType { ND = 0, /// /// Icoel: Batch info /// IcoelBatch, /// /// Icoel: Variety + layout info relative /// IcoelVarInfo, /// /// Info tipo tabella RegGiacenze (MAG) /// RegGiacenze } /// /// Enumerazione tipi di semaforo /// public enum Semaforo { /// /// Stato non definito /// ND, /// /// Verde /// SV, /// /// Giallo /// SG, /// /// Rosso /// SR, /// /// Grigio/Spento /// SS } /// /// Elenco task ammessi (x IOB-WIN da eseguire...) /// public enum taskType { /// /// Task nullo / fake /// nihil, /// /// Rimanda a PLC eventuale segnale NON in setup (MA NON RESETTA) /// fixStopSetup, /// /// Indica al PLC di forzare il reset del contapezzi /// forceResetPzCount, /// /// Indica al PLC di forzare il NUOVO valore di contapezzi (impostato come value) /// forceSetPzCount, /// /// Imposta Articolo su PLC /// setArt, /// /// Imposta Commessa su PLC /// setComm, /// /// Set di un PARAMETRO su PLC (in value avremo un JSON object) /// setParameter, /// /// Set Programma CNC su PLC /// setProg, /// /// Indica al PLC di impostare il numero di pezzi da produrre per la commessa (impostato /// come value) /// setPzComm, /// /// Indica al PLC iniziato setup (e secondo casi ferma contapezzi /resetta) /// startSetup, /// /// Indica al PLC finito setup (e secondo casi ferma contapezzi /resetta) /// stopSetup, /// /// Richiesta invio watchdog a PLC /// sendWatchDogMes2Plc, /// /// Indica che è FINITA la produzione (e quindi cancello dati backup) /// endProd, /// /// Richiesta esecuzione di un sync dei dati DB di frontiera /// syncDbData, /// /// Imposta Fornitore (es grower x ICOEL) /// setSupplier, /// /// Effettua processing other info (es ritorno consumi x ricette FIMAT) /// processOtherInfo } /// /// Finestra temporale di aggregazione dati VC /// public enum timeWindow { free, hour, day, week, month } public enum tipoBarcode { /// /// tipo non riconosciuto /// nd, /// /// identifica una matricola operatore nel formato OPxxxxx (xxxxx è un intero che /// rappresenta la matricola, std fino a 8 cifre) /// matrOperatore, /// /// identifica un cartellino di tipo CodArticolo /// codArticolo, /// /// identifica un codice per le attività di inizio/fine attrezzaggio e inizio/fine produzione /// attrezzaggio, /// /// identifica un codice per le attività di conferma produzione/fermi /// confermaProduzione, /// /// identifica un cartellino di dichiarazione fermata nel formato FExxxx dove xxxx è /// idxEvento dichiarato... /// dichiaraFermata, /// /// indentifica un codice di modifica turno /// modificaTurno } /// /// tipologia di evento (generico) segnalato /// public enum tipoEvento { /// /// evento di reset /// reset, /// /// richiesta editing /// edit, /// /// nuova selezione /// selection, /// /// eliminazione record(s) /// delete } /// /// tipologia evento inviato /// public enum tipoInputEvento { barcode, hw, commento } /// /// Tipologia di selettore /// public enum tipoSelettore { articoli } /// /// Trasformazione VC da effettuare /// public enum ValSelection { /// /// Selezione PRIMO valore del set /// First, /// /// Selezione Moda (norma) = elemento centrale /// Center, /// /// Selezione ULTIMO valore del set /// Last } /// /// Tipologia di elaborazione/funzione da applicare a VC /// public enum VC_func { /// /// Valore puntuale /// POINT = 0, /// /// Valore medio del periodo /// AVG, /// /// Valore massimo del periodo /// MAX, /// /// Valore minimo del periodo /// MIN, /// /// Calcolo della mediana del periodo /// MEDIAN } #endregion Public Enums } }