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."); } }
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); } } }
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."); } }
/// <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); }