コード例 #1
0
ファイル: Form1.cs プロジェクト: deeze307/IA
        private void loadConfDB()
        {
            _controller.LoadConfig();

            iaserver.LoadConfig("IASERVER");

            txtServer.Text = iaserver.host;
            txtUser.Text   = iaserver.user;
            txtPass.Text   = iaserver.pass;
            txtDB.Text     = iaserver.database;
            txtCSV.Text    = _controller.controllerConfig.inspectionCsvPath;
        }
コード例 #2
0
ファイル: Machine.cs プロジェクト: deeze307/IA
        public void Ping()
        {
            MySqlConnector sql = new MySqlConnector();

            sql.LoadConfig("IASERVER");
            string    query = @"UPDATE  `aoidata`.`maquina` SET  `ping` =  NOW() WHERE  `id` = " + mysql_id + " LIMIT 1;";
            DataTable sp    = sql.Query(query);
        }
コード例 #3
0
        private void confDB_Load(object sender, EventArgs e)
        {
            MySqlConnector iaserverDatabase = new MySqlConnector();

            iaserverDatabase.LoadConfig("IASERVER");

            MyServer.Text = iaserverDatabase.host;
//            MyPort.Text = iaserverDatabase.port;
            MyUser.Text     = iaserverDatabase.user;
            MyPass.Text     = iaserverDatabase.pass;
            MyDatabase.Text = iaserverDatabase.database;
        }
コード例 #4
0
ファイル: Pendiente.cs プロジェクト: deeze307/IA
        public int vtwinTestMachineId = 0;    // id de maquina en oracle

        public static void Delete(InspectionController ictrl)
        {
            ictrl.machine.LogBroadcast("debug",
                                       string.Format("+ Pendiente.Delete({0}) ", ictrl.barcode)
                                       );

            string         query = string.Format("CALL sp_removeProcesarPendient('{0}')", ictrl.barcode);
            MySqlConnector sql   = new MySqlConnector();

            sql.LoadConfig("IASERVER");
            bool rs = sql.NonQuery(query);
        }
コード例 #5
0
        private void SaveBlocks(string path)
        {
            foreach (Bloque bloque in bloqueList)
            {
                Stopwatch sw = Stopwatch.StartNew();

                if (Config.debugMode)
                {
                    machine.LogBroadcast("warning",
                                         string.Format("Debug mode: ON, no se guarda el bloque")
                                         );
                }
                else
                {
                    machine.LogBroadcast("debug",
                                         string.Format("Ejecutando sp_addInspectionBlock({0}) ", bloque.barcode)
                                         );

                    string query = @"CALL sp_addInspectionBlock('" + panelId + "',  '" + bloque.barcode + "',  '" + bloque.tipoBarcode + "',  '" + bloque.revisionAoi + "',  '" + bloque.revisionIns + "',  '" + bloque.totalErrores + "',  '" + bloque.totalErroresFalsos + "',  '" + bloque.totalErroresReales + "',  '" + bloque.bloqueId + "' );";

                    #region GUARDA EN DB
                    MySqlConnector sql = new MySqlConnector();
                    sql.LoadConfig("IASERVER");
                    DataTable sp = sql.Query(query);
                    if (sql.rows)
                    {
                        int id_inspeccion_bloque = 0;
                        id_inspeccion_bloque = int.Parse(sp.Rows[0]["id"].ToString());

                        if (id_inspeccion_bloque > 0)
                        {
                            history.SaveBloque(id_inspeccion_bloque);
                        }

                        if (bloque.totalErrores > 0)
                        {
                            // EXISTEN ERRORES REALES O FALSOS
                            SaveDetail(id_inspeccion_bloque, bloque);
                        }
                    }
                    #endregion
                }

                sw.Stop();

                machine.LogBroadcast("success",
                                     string.Format("Bloque guardado: {0} (ms) {1} ",
                                                   bloque.barcode,
                                                   (long)sw.ElapsedMilliseconds)
                                     );
            }
        }
コード例 #6
0
        private void SaveDetail(int id_inspeccion_bloque, Bloque bloque)
        {
            foreach (Detail detail in bloque.detailList)
            {
                string         query = @"CALL sp_addInspectionDetail('" + id_inspeccion_bloque + "',  '" + detail.referencia + "',  '" + detail.faultcode + "',  '" + detail.estado + "');";
                MySqlConnector sql   = new MySqlConnector();
                sql.LoadConfig("IASERVER");
                DataTable sp = sql.Query(query);
            }

            // Una vez insertados los detalles de inspeccion del bloque, genero un historial
            history.SaveDetalle(id_inspeccion_bloque);
        }
コード例 #7
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            bool close = true;

            close = ValidarMysql();

            MySqlConnector iaserverDatabase = new MySqlConnector();

            iaserverDatabase.LoadConfig("IASERVER");

            if (close)
            {
                Close();
            }
        }
コード例 #8
0
ファイル: Machine.cs プロジェクト: deeze307/IA
        public static void UpdateInspectionDate(int id)
        {
            MySqlConnector sql = new MySqlConnector();

            sql.LoadConfig("IASERVER");
            string    query = @"CALL sp_updateInspeccionMaquina(" + id + ", NOW());";
            DataTable sp    = sql.Query(query);

            if (sql.rows)
            {
                string ultima_inspeccion = sp.Rows[0]["ultima_inspeccion"].ToString();

                Machine update = list.Find(obj => obj.mysql_id == id);
                update.ultima_inspeccion = ultima_inspeccion;
            }
        }
コード例 #9
0
        public static bool UpdatePing(string nombreSensor, DateTime fecha_medicion)
        {
            try
            {
                string         fecha = fecha_medicion.ToString("yyyy-MM-dd H:mm:ss");
                string         query = "CALL temp_hum.sp_updatePing('" + nombreSensor + "','" + fecha + "')";
                MySqlConnector mysql = new MySqlConnector();
                mysql.LoadConfig("IASERVER");
                mysql.Query(query);
            }
            catch (Exception ex)
            {
                return(false);
            }

            return(true);
        }
コード例 #10
0
ファイル: PcbInfo.cs プロジェクト: deeze307/IA
        public static bool Update(PcbInfo pcb)
        {
            MySqlConnector sql = new MySqlConnector();

            sql.LoadConfig("IASERVER");
            string query = "UPDATE aoidata.pcb_data SET bloques = '" + pcb.bloques + "',segmentos = '" + pcb.segmentos + "',hash = '" + pcb.hash + "',fecha_modificacion = '" + pcb.fechaModificacion + "' ,libreria = '" + pcb.libreria + "',etiquetas = '" + pcb.etiquetas + "', secundaria = '" + pcb.secundaria + "' WHERE id = '" + pcb.id + "' limit 1";
            bool   rs    = sql.NonQuery(query);

            if (rs)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #11
0
ファイル: Pendiente.cs プロジェクト: deeze307/IA
        public static List <Pendiente> Download(string machineNameKey)
        {
            List <Pendiente> pendlist = new List <Pendiente>();
            string           query    = @"
            SELECT          
                p.id,      
                p.barcode,
                CAST(p.fecha_maquina as CHAR) as fecha_maquina,
                p.id_maquina,
                p.programa,
                p.vtwin_program_name_id,
                p.vtwin_test_machine_id
                
            from
            aoidata.procesar_pendiente p,
            aoidata.maquina m            
            
            where 
            m.id = p.id_maquina and
            m.active = 1 and
            m.tipo = '" + machineNameKey + "' ";

            MySqlConnector sql = new MySqlConnector();

            sql.LoadConfig("IASERVER");
            DataTable dt = sql.Query(query);

            if (sql.rows)
            {
                foreach (DataRow r in dt.Rows)
                {
                    Pendiente ipen = new Pendiente();
                    ipen.idPendiente        = int.Parse(r["id"].ToString());
                    ipen.barcode            = r["barcode"].ToString();
                    ipen.fechaMaquina       = r["fecha_maquina"].ToString();
                    ipen.idMaquina          = int.Parse(r["id_maquina"].ToString());
                    ipen.programa           = r["programa"].ToString();
                    ipen.vtwinTestMachineId = int.Parse(r["vtwin_test_machine_id"].ToString());
                    ipen.vtwinProgramNameId = r["vtwin_program_name_id"].ToString();
                    pendlist.Add(ipen);
                }
            }

            return(pendlist);
        }
コード例 #12
0
ファイル: PcbInfo.cs プロジェクト: deeze307/IA
        public static int Insert(PcbInfo pcb)
        {
            string nombre = pcb.programa.Split('.').FirstOrDefault();

            MySqlConnector sql = new MySqlConnector();

            sql.LoadConfig("IASERVER");
            string    query = @"CALL sp_addPcbData('" + nombre + "', '" + pcb.programa + "', '" + pcb.bloques + "','" + pcb.segmentos + "', '" + pcb.tipoMaquina + "', '" + pcb.hash + "', '" + pcb.fechaModificacion + "');";
            DataTable sp    = sql.Query(query);

            if (sql.rows)
            {
                pcb.id = int.Parse(sp.Rows[0]["id"].ToString());
            }

            // Retorno ID, 0 si no pudo insertar.
            return(pcb.id);
        }
コード例 #13
0
ファイル: History.cs プロジェクト: deeze307/IA
 /// <summary>
 /// Envia al historial los detalles de el ultimo bloque insertado
 /// </summary>
 /// <param name="save_id_bloque"></param>
 public void SaveDetalle(int save_id_bloque)
 {
     try
     {
         if (idPanel > 0 && idBloque > 0)
         {
             string         query = "CALL aoidata.sp_insertHistoryDetail(" + save_id_bloque + ")";
             MySqlConnector sql   = new MySqlConnector();
             sql.LoadConfig("IASERVER");
             DataTable dt = sql.Query(query);
         }
     }
     catch (Exception ex)
     {
         isStackError = true;
         Log.Stack("HustorySaveDetalle()", this, ex);
     }
 }
コード例 #14
0
ファイル: Mediciones.cs プロジェクト: deeze307/IA
        public static bool createMeasure(int id_sensor, string temperatura, string humedad, DateTime fecha_medicion)
        {
            bool           creado = true;
            string         fecha  = fecha_medicion.ToString("yyyy-MM-dd H:mm:ss");
            string         query  = "CALL temp_hum.sp_createMeasurePoint('" + id_sensor + "','" + humedad + "','" + temperatura + "','" + fecha + "')";
            MySqlConnector mysql  = new MySqlConnector();

            mysql.LoadConfig("IASERVER");
            mysql.Query(query);
            if (mysql.rows)
            {
                creado = true;
            }
            else
            {
                creado = false;
            }
            return(creado);
        }
コード例 #15
0
        public static void Download()
        {
            list = new List <Machine>();

            string query = @"
            SELECT
                m.id,
                p.barcode,
                m.maquina,
                m.linea,
                m.tipo,
                m.ultima_inspeccion,
                m.ultima_inspeccion_iaserver,
                m.active,
                m.ping
            from
                aoidata.maquina as m
            left join aoidata.produccion p ON m.id = p.id_maquina
            ";

            MySqlConnector sql = new MySqlConnector();

            sql.LoadConfig("IASERVER");
            DataTable dt = sql.Query(query);

            if (sql.rows)
            {
                foreach (DataRow r in dt.Rows)
                {
                    Machine mac = new Machine();
                    mac.mysql_id          = int.Parse(r["id"].ToString());
                    mac.maquina           = r["maquina"].ToString();
                    mac.nroLinea          = int.Parse(r["linea"].ToString());
                    mac.smd               = "SMD-" + mac.nroLinea;
                    mac.tipo              = r["tipo"].ToString();
                    mac.ultima_inspeccion = r["ultima_inspeccion"].ToString();
                    mac.line_barcode      = r["barcode"].ToString();
                    mac.active            = bool.Parse(r["active"].ToString());
                    mac.ping              = r["ping"].ToString();
                    list.Add(mac);
                }
            }
        }
コード例 #16
0
ファイル: History.cs プロジェクト: deeze307/IA
 /// <summary>
 /// Envia al historial la inspeccion realizada del panel
 /// </summary>
 /// <param name="save_id_panel"></param>
 public void SavePanel(int save_id_panel, string mode)
 {
     try
     {
         string         query = "CALL aoidata.sp_insertHistoryPanel(" + save_id_panel + ", '" + mode + "')";
         MySqlConnector sql   = new MySqlConnector();
         sql.LoadConfig("IASERVER");
         DataTable dt = sql.Query(query);
         if (sql.rows)
         {
             DataRow r = dt.Rows[0];
             idPanel = int.Parse(r["id"].ToString());
         }
     }
     catch (Exception ex)
     {
         isStackError = true;
         Log.Stack("HistorySavePanel()", this, ex);
     }
 }
コード例 #17
0
ファイル: Pendiente.cs プロジェクト: deeze307/IA
        public static void Save(InspectionController ictrl)
        {
            DateTime customDate = DateTime.Parse(ictrl.fecha + " " + ictrl.hora);

            ictrl.machine.LogBroadcast("debug",
                                       string.Format("+ Pendiente.Save({0}) ", ictrl.barcode)
                                       );

            string query = string.Format("CALL sp_addProcesarPendient('{0}', '{1}', '{2}', '{3}', '{4}', '{5}');",
                                         ictrl.barcode,
                                         customDate.ToString("yyyy-MM-dd HH:mm:ss"),
                                         ictrl.machine.mysql_id,
                                         ictrl.programa,
                                         ictrl.vtwinProgramNameId,
                                         ictrl.vtwinTestMachineId
                                         );

            MySqlConnector sql = new MySqlConnector();

            sql.LoadConfig("IASERVER");
            bool rs = sql.NonQuery(query);
        }
コード例 #18
0
        /// <summary>
        /// Descarga los sensores Activos
        /// </summary>
        public static void Actives()
        {
            list = new List <Sensores>();
            string         query = "CALL temp_hum.getActiveSensors()";
            MySqlConnector mysql = new MySqlConnector();

            mysql.LoadConfig("IASERVER");

            DataTable dt = mysql.Query(query);

            if (mysql.rows)
            {
                foreach (DataRow r in dt.Rows)
                {
                    Sensores sensor = new Sensores();
                    sensor.id_sensor       = int.Parse(r["id_sensor"].ToString());
                    sensor.nombre          = r["nombre"].ToString();
                    sensor.ip_sensor       = r["ip_sensor"].ToString();
                    sensor.last_date_saved = r["last_date_saved"].ToString();
                    list.Add(sensor);
                }
            }
        }
コード例 #19
0
        /// <summary>
        /// Descarga la lista de faultcodes del servidor
        /// </summary>
        public static void Download()
        {
            list = new List <Faultcode>();

            string query = @"SELECT id,faultcode,descripcion FROM aoidata.rns_faultcode ";

            MySqlConnector sql = new MySqlConnector();

            sql.LoadConfig("IASERVER");
            DataTable dt = sql.Query(query);

            if (sql.rows)
            {
                foreach (DataRow r in dt.Rows)
                {
                    Faultcode fault = new Faultcode();
                    fault.id          = int.Parse(r["id"].ToString());
                    fault.faultcode   = r["faultcode"].ToString();
                    fault.descripcion = r["descripcion"].ToString();
                    list.Add(fault);
                }
            }
        }
コード例 #20
0
ファイル: History.cs プロジェクト: deeze307/IA
 /// <summary>
 /// Envia al historial la inspeccion realizada del bloque
 /// </summary>
 /// <param name="save_id_bloque"></param>
 public void SaveBloque(int save_id_bloque)
 {
     try
     {
         if (idPanel > 0)
         {
             string         query = "CALL aoidata.sp_insertHistoryBlock(" + idPanel + "," + save_id_bloque + ")";
             MySqlConnector sql   = new MySqlConnector();
             sql.LoadConfig("IASERVER");
             DataTable dt = sql.Query(query);
             if (sql.rows)
             {
                 DataRow r = dt.Rows[0];
                 idBloque = int.Parse(r["id"].ToString());
             }
         }
     }
     catch (Exception ex)
     {
         isStackError = true;
         Log.Stack("HistorySaveBloque()", this, ex);
     }
 }
コード例 #21
0
        private PanelService SavePanel(PanelService panelService)
        {
            Stopwatch sw = Stopwatch.StartNew();

            if (Config.debugMode)
            {
                machine.LogBroadcast("warning", "Debug mode ON, no ejecuta StoreProcedure para guardar panel");
            }
            else
            {
                #region SAVE PANELS ON DB
                string query = @"CALL sp_setInspectionPanel_optimizando('" + panelId + "','" + machine.mysql_id + "',  '" + barcode + "',  '" + programa + "',  '" + fecha + "',  '" + hora + "',  '',  '" + revisionAoi + "',  '" + revisionIns + "',  '" + totalErrores + "',  '" + totalErroresFalsos + "',  '" + totalErroresReales + "',  '" + pcbInfo.bloques + "',  '" + tipoBarcode + "',  '" + Convert.ToInt32(pendiente) + "' ,  '" + machine.oracle_id + "' ,  '" + vtwinProgramNameId + "' ,  '" + spMode + "'  );";

                machine.LogBroadcast("debug",
                                     string.Format("Ejecutando StoreProcedure: sp_setInspectionPanel_optimizando({0}) =>", barcode)
                                     );

                MySqlConnector sql = new MySqlConnector();
                sql.LoadConfig("IASERVER");
                DataTable sp = sql.Query(query);
                if (sql.rows)
                {
                    // En caso de insert, informo el id_panel creado, si fue un update, seria el mismo id_panel...
                    panelId = int.Parse(sp.Rows[0]["id_panel"].ToString());
                    //if (pendiente)
                    //{
                    //    Pendiente.Save(this);
                    //}

                    if (pendienteDelete)
                    {
                        Pendiente.Delete(this);
                    }

                    if (panelId > 0)
                    {
                        try
                        {
                            history.SavePanel(panelId, spMode);
                        }
                        catch (Exception ex)
                        {
                            machine.log.stack(
                                string.Format("+ Error al ejecutar history.SavePanel({0}, {1}) ", panelId, spMode
                                              ), this, ex);
                        }
                    }
                }
                #endregion
            }

            // Es necesario volver a ejecutar el service, para obtener la OP asignada al panel
            if (spMode == "insert")
            {
                machine.LogBroadcast("debug", "Actualizando datos de panel insertado");
                panelService = GetBarcodeInfoFromIAServer();
            }

            sw.Stop();

            machine.LogBroadcast("success",
                                 string.Format("Panel guardado: {0} (ms) {1} ",
                                               barcode,
                                               (long)sw.ElapsedMilliseconds)
                                 );

            // Retorno ID, 0 si no pudo insertar, o actualizar
            return(panelService);
        }
コード例 #22
0
ファイル: PcbInfo.cs プロジェクト: deeze307/IA
        public static void Download(string _tipoMaquina = "ALL")
        {
            string filtroMaquina = "";

            switch (_tipoMaquina)
            {
            case "W":
                // Reseteo solo programas VTWIN.
                list.RemoveAll(o => o.tipoMaquina == "W");
                filtroMaquina = " where tipo_maquina = 'W' ";
                break;

            case "Z":
                // Reseteo solo programas ZENITH.
                list.RemoveAll(o => o.tipoMaquina == "Z");
                filtroMaquina = " where tipo_maquina = 'Z' ";
                break;

            case "R":
                // Reseteo solo programas RNS.
                list.RemoveAll(o => o.tipoMaquina == "R");
                filtroMaquina = " where tipo_maquina = 'R' ";
                break;

            case "ALL":
                // Reseteo resultados SQL anteriores.
                list = new List <PcbInfo>();
                break;
            }

            MySqlConnector sql = new MySqlConnector();

            sql.LoadConfig("IASERVER");
            DataTable query = sql.Query("select id,nombre,programa,bloques,segmentos,tipo_maquina,hash,DATE_FORMAT(fecha_modificacion,'%Y-%m-%d %H:%i:%s') as fecha_modificacion,libreria,etiquetas,secundaria from aoidata.pcb_data " + filtroMaquina);

            if (sql.rows)
            {
                foreach (DataRow r in query.Rows)
                {
                    PcbInfo n = new PcbInfo();
                    n.id                = int.Parse(r["id"].ToString());
                    n.programa          = r["programa"].ToString();
                    n.nombre            = r["nombre"].ToString();
                    n.bloques           = int.Parse(r["bloques"].ToString());
                    n.segmentos         = r["segmentos"].ToString();
                    n.tipoMaquina       = r["tipo_maquina"].ToString();
                    n.hash              = r["hash"].ToString();
                    n.fechaModificacion = r["fecha_modificacion"].ToString();
                    string _etiquetas = r["etiquetas"].ToString();
                    try
                    {
                        n.etiquetas = int.Parse(_etiquetas);
                    } catch (Exception ex)
                    {
                        n.etiquetas = 0;
                    }

                    string sec = r["secundaria"].ToString();
                    if (sec.ToLower().Equals("false"))
                    {
                        n.secundaria = 0;
                    }

                    if (sec.ToLower().Equals("true"))
                    {
                        n.secundaria = 1;
                    }
                    n.libreria = r["secundaria"].ToString();
                    list.Add(n);
                }
            }
        }