Ejemplo n.º 1
0
        private void StartInspection()
        {
            aoiLog.verbose("Localizando CSV de Inspeccion");

            // Obtengo archivos CSV en InspectionFolder
            IOrderedEnumerable <FileInfo> csv = FilesHandler.GetFiles("*", aoiConfig.inspectionCsvPath);
            int totalCsv = csv.Count();

            aoiWorker.SetProgressTotal(totalCsv);

            if (totalCsv > 0)
            {
                int file_count = 0;

                foreach (FileInfo file in csv)
                {
                    file_count++;

                    #region REDIS
                    // Dato a enviar
                    JObject json = new JObject();
                    json["mode"]    = "runtime";
                    json["tipo"]    = aoiConfig.machineType;
                    json["current"] = file_count.ToString();
                    json["total"]   = totalCsv.ToString();
                    // Enviar al canal
                    Realtime.send(json.ToString());
                    #endregion

                    aoiLog.info("---------------------------------------------");
                    aoiLog.info(" Procesando " + file_count + " / " + totalCsv);
                    aoiLog.info("---------------------------------------------");

                    HandleInspection(file);

                    aoiWorker.SetProgressWorking(file_count);
                }

                aoiLog.info("No hay mas CSV");
            }
            else
            {
                #region REDIS
                // Dato a enviar
                JObject json = new JObject();
                json["mode"]    = "runtime";
                json["tipo"]    = aoiConfig.machineType;
                json["current"] = 0;
                json["total"]   = 0;
                // Enviar al canal
                Realtime.send(json.ToString());
                #endregion

                aoiLog.info("No se encontraron inspecciones.");
            }
        }
Ejemplo n.º 2
0
        private void StartInspection()
        {
            //Actualizo los datos de los sensores
            Sensores.Actives();

            controllerLog.verbose("Localizando CSV de Mediciones");

            // Obtengo archivos CSV en carpeta de Mediciones para cada Sensor Activo
            foreach (Sensores sensor in Sensores.list)
            {
                controllerLog.info("");
                controllerLog.info("Revisando mediciones de sensor " + sensor.nombre);
                string anioMes = DateTime.Today.ToString("yyyy-MM");
                string fecha   = DateTime.Today.ToString("yyyy-MM-dd");
                IOrderedEnumerable <FileInfo> csv = FilesHandler.GetFiles(sensor.nombre + "_" + fecha + ".csv", controllerConfig.inspectionCsvPath + "\\" + sensor.nombre + "\\" + anioMes);
                int totalCsv = csv.Count();

                worker.SetProgressTotal(totalCsv);

                if (totalCsv > 0)
                {
                    int file_count = 0;

                    foreach (FileInfo file in csv)
                    {
                        file_count++;

                        //RedisRuntime(file_count.ToString(), totalCsv.ToString());

                        controllerLog.info("---------------------------------------------");
                        controllerLog.info(" Procesando " + file_count + " / " + totalCsv);
                        controllerLog.info("---------------------------------------------");

                        HandleInspection(file, sensor);

                        worker.SetProgressWorking(file_count);
                    }


                    controllerLog.info("No hay más datos a revisar");
                    controllerLog.info("++++++++++++++++++++++++++");
                }
                else
                {
                    //RedisRuntime();

                    controllerLog.info("No se encontraron Mediciones de el día de la fecha para el sensor " + sensor.nombre);
                }
            }
        }
Ejemplo n.º 3
0
        private void StartInspection()
        {
            aoiLog.verbose("Localizando CSV de Inspeccion");

            // Obtengo archivos CSV en InspectionFolder
            IOrderedEnumerable <FileInfo> csv = FilesHandler.GetFiles("*", aoiConfig.inspectionCsvPath);
            int totalCsv = csv.Count();

            aoiWorker.SetProgressTotal(totalCsv);

            if (totalCsv > 0)
            {
                int file_count = 0;

                foreach (FileInfo file in csv)
                {
                    file_count++;

                    RedisRuntime(file_count.ToString(), totalCsv.ToString());

                    aoiLog.info("---------------------------------------------");
                    aoiLog.info(" Procesando " + file_count + " / " + totalCsv);
                    aoiLog.info("---------------------------------------------");

                    HandleInspection(file);

                    aoiWorker.SetProgressWorking(file_count);
                }

                aoiLog.info("No hay mas CSV");
            }
            else
            {
                RedisRuntime();

                aoiLog.info("No se encontraron inspecciones.");
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Verifica y actualiza si es necesario la informacion de todas las PCB de VTWIN y RNS
        /// </summary>
        public bool VerifyPcbFiles()
        {
            // Verifico archivos PCB
            IOrderedEnumerable <FileInfo> pcbList = FilesHandler.GetFiles("*.pcb", aoi.aoiConfig.dataProgPath);
            int  totalPcb = pcbList.Count();
            bool reload   = false;

            aoi.aoiWorker.SetProgressTotal(totalPcb);

            #region PCBLIST_FILES_DETECTED
            if (totalPcb > 0)
            {
                int countPcb = 0;
                foreach (FileInfo pcb in pcbList)
                {
                    //if (pcb.Name.Equals("NT1010E-M-BOT-SBAST-LR.pcb"))
                    //{
                    //    countPcb = 12344;
                    //}
                    countPcb++;

                    string fechaModificacion = pcb.LastWriteTime.ToString("yyyy-MM-dd HH:mm:ss");

                    // Verifico si existe el pcb en la base de datos.
                    PcbInfo pcbInfo = PcbInfo.list.Find(o =>
                                                        o.programa.Equals(pcb.Name) &&
                                                        o.tipoMaquina.Equals(aoi.aoiConfig.machineNameKey)
                                                        );

                    if (pcbInfo == null)
                    {
                        // Si no existe en DB, lo inserto
                        Insert(pcb, fechaModificacion);
                        reload = true;
                    }
                    else
                    {
                        string newHash = "";

                        // Si existe, verifico que la fecha sea diferente
                        if (!pcbInfo.fechaModificacion.Equals(fechaModificacion))
                        {
                            // Si la fecha de modificacion en SQL no es igual a la fecha de modificacion actual.
                            // Comparo HASH de archivo, contra el guardado en la DB
                            newHash = PcbInfo.Hash(pcb.FullName);

                            if (pcbInfo.hash.Equals(newHash))
                            {
                                // Si el hash es similar, no hay cambios en el archivo, solo cambia la fecha
                                UpdateDate(pcbInfo, fechaModificacion);
                                reload = true;
                            }
                            else
                            {
                                // Actualizo la informacion del PCB
                                Update(pcb, pcbInfo, newHash, fechaModificacion);
                                reload = true;
                            }
                        }
                    }

                    aoi.aoiWorker.SetProgressWorking(countPcb);
                } // END FOREACH
            }
            else
            {
                aoi.aoiLog.warning("No se encontraron archivos PCB en: " + aoi.aoiConfig.dataProgPath);
            }
            #endregion

            return(reload);
        }