Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Haroldo Jr.

Leitura de Tags RFID C#

Recommended Posts

Bom dia galera.

 

Estou com um problema na minha aplicação. Tenho um aplicativo que em c# que cria um serviço de leitura de tags RFID, o aplicativo funciona legal, ele faz a leitura das tags normalmente, ele por exemplo ler a tag 001 essa tag passou pelo leitor 13:00, dai voltou a passar pelo leitor 13:03, o leitor ler e manda pro banco. E quando uma tag fica por perto ele fica inserindo direto os dados no banco. Preciso fazer com que seu leitor só mande os dados para o banco de 5 em 5 minutos depois que essa tag foi lida.

 

Desde já agradeço.

 

 

segue o código.

using System;

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


namespace Persistencia.DAO
{
    public class DadosDAO
    {
        #region insert


        public void insert(VO.Dados dados, SqlConnection connection, out Base.Erro error)
        {
            error = new Base.Erro();
            string workStation = System.Environment.MachineName.ToString().Trim();
            string programa = "MIDDLEWARE";
            


            SqlConnection con = connection;
            SqlCommand cmd = con.CreateCommand();


            string msg = "";


            try
            {
                con.Open();


                string sql = "INSERT INTO TBMW0001(MWR0REDEPC, MWR0REDDTT, MWR0EPCPFX, MWR0IPREDR, MWR0EPCSTS, MWR0USRINC, MWR0PGMINC, MWR0WRKINC, MWR0DTTINC, MWR0USRUPD, MWR0PGMUPD, MWR0WRKUPD, MWR0DTTUPD) VALUES('";
                sql += dados.EPC + "', '";
                sql += dados.DataLeitura.Year + "/" + dados.DataLeitura.Month + "/" + dados.DataLeitura.Day + " " + dados.DataLeitura.Hour + ":" + dados.DataLeitura.Minute + ":" + dados.DataLeitura.Second + "', '";                
                sql += dados.Prefixo + "', '";
                sql += dados.Ip + "', '";
                sql += dados.Status + "', '";
                sql += dados.Usuario + "', '";
                sql += programa + "', '";
                sql += workStation + "', '";
                sql += DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + " " + DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second + "', '";
                //sql += DateTime.Now.ToShortTimeString().Trim() + "', '";
                sql += dados.Usuario + "', '";
                sql += programa + "', '";
                sql += workStation + "', '";
                sql += DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + " " + DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second + "')";
                //sql += DateTime.Now.ToShortTimeString().Trim() + "')";


                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();


                error.setError(0, msg);


            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }


            cmd.Dispose();
            con.Close();
        }


        #endregion


        #region update


        public void update(VO.Dados dados, SqlConnection connection, out Base.Erro error)
        {
            error = new Base.Erro();


            SqlConnection con = connection;
            SqlCommand cmd = con.CreateCommand();


            string msg = "";


            try
            {
                con.Open();


                string sql = "UPDATE TBMW0001 SET MWR0REDDTT = '";
                sql += dados.DataLeitura.Year + "/" + dados.DataLeitura.Month + "/" + dados.DataLeitura.Day + " " + dados.DataLeitura.Hour + ":" + dados.DataLeitura.Minute + ":" + dados.DataLeitura.Second + "', MWR0DTTUPD =  '";
                sql += dados.DataLeitura.Year + "/" + dados.DataLeitura.Month + "/" + dados.DataLeitura.Day + " " + dados.DataLeitura.Hour + ":" + dados.DataLeitura.Minute + ":" + dados.DataLeitura.Second + "' WHERE MWR0REDEPC = '" + dados.EPC + "'";


                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();


                error.setError(0, msg);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }


            cmd.Dispose();
            con.Close();
        }


        #endregion


        #region listEPC


        public List<VO.Dados> listByEPC(string epc, SqlConnection connection, out Base.Erro error)
        {
            error = new Base.Erro();


            SqlConnection con = connection;
            SqlCommand cmd = con.CreateCommand();
            List<VO.Dados> list = new List<VO.Dados>();


            string msg = "";


            try
            {
                con.Open();


                string sql = "SELECT * FROM TBMW0001 WHERE MWR0EPCPFX = 'A001' AND MWR0REDEPC = '" + epc + "'";


                cmd.CommandText = sql;


                SqlDataReader data = cmd.ExecuteReader();


                while (data.Read())
                {
                    VO.Dados movimentacao = new VO.Dados();


                    movimentacao.EPC = data["MWR0REDEPC"].ToString().Trim();
                    list.Add(movimentacao);
                }


                error.setError(0, msg);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }


            cmd.Dispose();
            con.Close();


            return list;
        }


        #endregion
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que deixar ele mandar quantas vezes quiser,

dai você tem que tirar os registros da tabela com outro programa...

Lembre-se o leitor de RFID só serve para ler e gravar em um arquivo texto porque se não ele pode perder leituras...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.