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); }
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); }
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); }