コード例 #1
0
        /// <summary>
        /// Contrutor via Código de barras
        /// </summary>
        /// <param name="barcode">Código de Barras</param>
        /// <param name="serial">Série</param>
        /// <param name="Filter">Filter</param>
        /// <param name="part">Partição</param>
        public Sgtin96(string barcode, long serial, string Filter, int part = 6)
        {
            //Se vier com "0" no inicio
            if (barcode.Substring(0, 1) == "0")
            {
                barcode = barcode.Substring(1, barcode.Length - 1);
            }

            //preenche com "0" se não for um ean 13
            barcode = HelperConverter.fill(barcode, 12);

            this.Header    = EpcHeaders.GetName(EpcHeaders.SGTIN_96);
            this.Filter    = Filter;
            this.Partition = part;
            string auxbarcode = barcode.Substring(0, (barcode.Length - 1));

            this.CompanyPrefix = Convert.ToInt64(HelperConverter.fill(auxbarcode.Substring(0, SgtinPartition.GetCompanyDigitos(this.Partition)), SgtinPartition.GetCompanyDigitos(this.Partition)));
            this.ItemReference = Convert.ToInt64(
                HelperConverter.fill(
                    auxbarcode.Substring(SgtinPartition.GetCompanyDigitos(this.Partition),
                                         (auxbarcode.Length - SgtinPartition.GetCompanyDigitos(this.Partition))),
                    SgtinPartition.GetItemDigitos(this.Partition)));
            this.SerialNumber = serial;
            this.Barcode      = barcode;
        }
コード例 #2
0
        /// <summary>
        /// Método de Codificação segundo o Padrão EPC
        /// </summary>
        /// <returns>Objeto Simplicado do padrão</returns>
        public EPCSimplesDTO Encript()
        {
            string Header        = EpcHeaders.GetBin(this.Header);
            string Filter        = HelperConverter.fill(Convert.ToString(Convert.ToInt32(this.Filter), 2), 3);
            string Partition     = HelperConverter.fill(Convert.ToString(this.Partition, 2), 3);
            string CompanyPrefix = HelperConverter.fill(Convert.ToString(this.CompanyPrefix, 2), GiaiPartition.GetCompany(this.Partition));
            string ItemReference = HelperConverter.fill(Convert.ToString(this.ItemReference, 2), GiaiPartition.GetItem(this.Partition));

            string        BinString = $"{Header}{Filter}{Partition}{CompanyPrefix}{ItemReference}";
            EPCSimplesDTO retorno   = new EPCSimplesDTO();

            retorno.BarCode           = this.Barcode;
            retorno.EPCString         = EpcTagURI();
            retorno.HexadecimalString = HelperConverter.BinaryStringToHexString(BinString);
            return(retorno);
        }
コード例 #3
0
ファイル: EpcHelper.cs プロジェクト: rf22tr/SerializadorRfid
        /// <summary>
        /// Método de geração do EPC.
        /// </summary>
        /// <param name="Parametro">Tipo primitivo GS1</param>
        /// <returns></returns>
        public static EPCSimplesDTO SerializarGenerico(GS1 Parametro)
        {
            switch (EpcHeaders.GetBin(Parametro.Header))
            {
            case EpcHeaders.SGTIN_96:
                return(new Sgtin96(Parametro).Encript());

            case EpcHeaders.GRAI_96:
                return(new Grai96(Parametro).Encript());

            case EpcHeaders.GIAI_96:
                return(new Giai96(Parametro).Encript());

            default:
                return(null);
            }
        }
コード例 #4
0
ファイル: GRAI_96.cs プロジェクト: rf22tr/SerializadorRfid
        /// <summary>
        /// Método de Decodificação da string binária para valores legíveis
        /// </summary>
        /// <param name="linhaBinaria">Descriptografa a string Binária no padrão GS1</param>
        public void Decript(string linhaBinaria)
        {
            int posicaoInicial = 0;

            this.Header     = EpcHeaders.GetName(linhaBinaria.Substring(posicaoInicial, 8));
            posicaoInicial += 8;

            this.Filter     = Convert.ToInt32(linhaBinaria.Substring(posicaoInicial, 3), 2).ToString();
            posicaoInicial += 3;

            this.Partition  = Convert.ToInt32(linhaBinaria.Substring(posicaoInicial, 3), 2);
            posicaoInicial += 3;

            this.CompanyPrefix = Convert.ToInt64(linhaBinaria.Substring(posicaoInicial, GraiPartition.GetCompany(this.Partition)), 2);
            posicaoInicial    += GraiPartition.GetCompany(this.Partition);

            this.ItemReference = Convert.ToInt64(linhaBinaria.Substring(posicaoInicial, GraiPartition.GetItem(this.Partition)), 2);
            posicaoInicial    += GraiPartition.GetItem(this.Partition);

            this.SerialNumber = Convert.ToInt64(linhaBinaria.Substring(posicaoInicial, 38), 2);
        }
コード例 #5
0
        /// <summary>
        /// Método de Decodificação da string binária para valores legíveis
        /// </summary>
        /// <param name="linhaBinaria">Descriptografa a string Binária no padrão GS1</param>
        public void Decript(string linhaBinaria)
        {
            int    posicaoInicial = 0;
            string part           = linhaBinaria.Substring(posicaoInicial, 8);

            this.Header     = EpcHeaders.GetName(part);
            posicaoInicial += 8;

            part            = linhaBinaria.Substring(posicaoInicial, 3);
            this.Filter     = Convert.ToInt32(part, 2).ToString();
            posicaoInicial += 3;

            part            = linhaBinaria.Substring(posicaoInicial, 3);
            this.Partition  = Convert.ToInt32(part, 2);
            posicaoInicial += 3;

            part = linhaBinaria.Substring(posicaoInicial, GiaiPartition.GetCompany(this.Partition));
            this.CompanyPrefix = Convert.ToInt64(part, 2);
            posicaoInicial    += GiaiPartition.GetCompany(this.Partition);

            part = linhaBinaria.Substring(posicaoInicial, GiaiPartition.GetItem(this.Partition));
            this.ItemReference = Convert.ToInt64(part, 2);
            posicaoInicial    += GiaiPartition.GetItem(this.Partition);
        }
コード例 #6
0
ファイル: EpcHelper.cs プロジェクト: rf22tr/SerializadorRfid
        public static EPCSimplesDTO EncriptFiltro(GS1 Parametro, string barcode = "", long serial = 0, int partition = 6)
        {
            if (barcode.Length == 0)
            {
                switch (EpcHeaders.GetBin(Parametro.Header))
                {
                case EpcHeaders.SGTIN_96:
                    return(new Sgtin96(Parametro).Encript());

                case EpcHeaders.GRAI_96:
                    return(new Grai96(Parametro).Encript());

                case EpcHeaders.GIAI_96:
                    return(new Giai96(Parametro).Encript());

                default:
                    return(null);
                }
            }
            else
            {
                return(new Sgtin96(barcode, serial, partition).Encript());
            }
        }