public bool Scan(ref ResulthScan rs)
        {
            byte[] CmdStartScan = { 2, 68, 3 }; //Сканер объема

            bool               flOkScan  = false;
            string             Resulscan = "";
            DimensionEventArgs outerdimensions;

            //char[] ReadBuff = new char[256];
            try
            {
                if (!_serialport.IsOpen)
                {
                    _serialport.Open();
                }
                // иннициируем сканирование
                _serialport.Write(CmdStartScan, 0, CmdStartScan.Length);



                Resulscan = _serialport.ReadLine();


                log.Debug(Resulscan);

                outerdimensions = ParseResults(_serialport.ReadLine());
                Resulscan       = outerdimensions.ToString();
                rs.Height       = outerdimensions.Height;
                rs.Width        = outerdimensions.Width;
                rs.Length       = outerdimensions.Length;
                flOkScan        = true;

                // Очистим данные порта, дабы не мешались
                _serialport.DiscardInBuffer();
                _serialport.DiscardOutBuffer();
            }
            catch (Exception error)
            {
                //this.Close();
                Resulscan = "error ";

                log.Error(error.Message + " " + Resulscan);
            }
            return(flOkScan);
        }
Beispiel #2
0
        public bool Scan(ref ResulthScan rs)
        {
            byte[] CmdInitWeight  = { 0x54, 0x41, 0x43, 0x0D, 0x0A }; //Иннициализация весов
            byte[] CmdStartWeight = { 0x53, 0x0D, 0x0A };             //Запуск взвешивания весов

            bool flOkScan = false;

            string          Resulscan = "";
            WeightEventArgs rscan;

            try
            {
                if (!_serialport.IsOpen)
                {
                    _serialport.Open();
                    //
                }
                // иннициируем взвешивание
                _serialport.Write(CmdInitWeight, 0, CmdInitWeight.Length);

                //Прочитаем данные из портра
                Resulscan = _serialport.ReadLine();


                _serialport.Write(CmdStartWeight, 0, CmdStartWeight.Length);

                //Если время чтения истекло необходимо получить проблему
                rscan     = ParseResults(_serialport.ReadLine());
                Resulscan = rscan.ToString();
                rs.Weight = rscan.Weight;
                flOkScan  = true;

                _serialport.DiscardInBuffer();
                _serialport.DiscardOutBuffer();
            }
            catch (Exception error)
            {
                //this.Close();
                Resulscan = "error";
                log.Error(error);
            }

            return(flOkScan);
        }
Beispiel #3
0
        public bool Scan(ref ResulthScan rs)
        {
            //byte[] CmdStartScan = Encoding.ASCII.GetBytes("<STX>M<ETX>");

            byte[] CmdStartScan = { 0x02, 0x4D, 0x03, 0x0D, 0x0A };

            //Образец команды <STX>    M   <ETX> <CR>, <LF>

            bool   flOkScan  = false;
            string Resulscan = "";


            try
            {
                // иннициируем сканирование

                string FrameData = DataPortFrame.GetValueFrame();

                // if (FrameData != null)
                if (FrameData.Length > 50)
                {
                    Resulscan = FrameData;
                    FrameData = "";
                    DataPortFrame.ValueFrame = "";
                }
                else
                {
                    if (!_serialport.IsOpen)
                    {
                        _serialport.Open();
                    }
                    _serialport.Write(CmdStartScan, 0, CmdStartScan.Length);
                    //Кубискан вернет такую строку
                    //"MAH      ,L 52.0,W 24.6,H 29.4cm,K20.770,D 6.268kg,F6000,D";
                    // "\n\u0002MAC      ,L 24.0,W 26.6,H-----cm,K 0.780,D 0.000kg,F6000,D\u0003"; //

                    string SoundData = DataPortFrame.GetValueFrame();

                    //Resulscan = SoundData;//_serialport.ReadLine();

                    if (SoundData.Length > 50)
                    {
                        Resulscan = SoundData;
                    }
                    else
                    {
                        flOkScan = false;
                        return(flOkScan);
                    }
                }


                string[] FinishResult = Resulscan.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                log.Debug(Resulscan);

                //Хз какой массив будет получен!
                string H = FinishResult[3].Replace("H", "").Replace("cm", "");
                string L = FinishResult[1].Replace("L", "");
                string W = FinishResult[2].Replace("W", "");
                string K = FinishResult[4].Replace("K", "");

                NumberFormatInfo provider = new NumberFormatInfo();
                provider.NumberDecimalSeparator = ".";


                try
                {
                    rs.Height = Convert.ToDouble(H, provider); //outerdimensions.Height;
                }
                catch
                {
                    rs.Height = 0;
                }
                try
                {
                    rs.Width = Convert.ToDouble(W, provider);//outerdimensions.Width;
                }
                catch
                {
                    rs.Width = 0;
                }
                try
                {
                    rs.Length = Convert.ToDouble(L, provider);//outerdimensions.Length;
                }
                catch
                {
                    rs.Length = 0;
                }

                try
                {
                    rs.Weight = Convert.ToDouble(K, provider);
                }
                catch
                {
                    rs.Weight = 0;
                }

                flOkScan = true;

                // Очистим данные порта, дабы не мешались
                _serialport.DiscardInBuffer();
                _serialport.DiscardOutBuffer();
                _serialport.Close();
            }
            catch (Exception error)
            {
                //this.Close();
                Resulscan = "error ";

                log.Error(error.Message + " " + Resulscan);
            }
            return(flOkScan);
        }