Exemple #1
0
 // сбросить настройки
 protected void reset()
 {
     prefixIndex = 0;
     suffixIndex = 0;
     barcode     = "";
     status      = BarcodeReadStatus.Wait;
 }
Exemple #2
0
        /// <summary>
        /// Посимвольный анализ
        /// Поиск сочетаний суффикса и префикса, передача полученного кода
        /// </summary>
        /// <param name="data">Код символа</param>
        protected void Read(Int32 data)
        {
            if (!connect)
            {
                reset();
                return;
            }
            switch (status)
            {
            case BarcodeReadStatus.Wait:
                if (prefix == null)
                {
                    status = BarcodeReadStatus.ReadBarcode;
                }
                else
                {
                    status = BarcodeReadStatus.ReadPrefix;
                }
                Read(data);
                break;

            case BarcodeReadStatus.ReadPrefix:
                if (prefix == null)
                {
                    status = BarcodeReadStatus.ReadBarcode;
                    Read(data);
                    break;
                }
                else if (prefix[prefixIndex] == data)
                {
                    prefixIndex++;
                    if (prefixIndex == prefix.Length)
                    {
                        status = BarcodeReadStatus.ReadBarcode;
                    }
                }
                else
                {
                    reset();
                }
                break;

            case BarcodeReadStatus.ReadBarcode:
                if (suffix[suffixIndex] == data)
                {
                    status = BarcodeReadStatus.ReadSuffix;
                    Read(data);
                }
                else if (!ReadBarcode(data))
                {
                    reset();
                }
                break;

            case BarcodeReadStatus.ReadSuffix:
                if (suffix[suffixIndex] == data)
                {
                    if (suffixIndex == suffix.Length - 1)
                    {
                        SendBarcode();
                        reset();
                    }
                    else
                    {
                        suffixIndex++;
                    }
                }
                else
                {
                    reset();
                }
                break;
            }
        }