private void handleScaleMessage(ScaleWeightReportMessage msg) { try { if (_lastScaleMessage == null || (_lastScaleMessage.Status != msg.Status || _lastScaleMessage.Weight != msg.Weight)) { if (_scaleReader.IsOpen) { ScaleStatus = "CONNECTED READING " + msg.Weight.ToString() + " " + msg.StatusName; } else { ScaleStatus = "DISCONNECTED"; } } _lastScaleMessage = msg; } catch (Exception exc) { Logging.Logger.Log(exc); Logging.Logger.WriteBuffer(); } }
private void handleWeightReportMessage(ScaleWeightReportMessage msg) { _weight = msg.Weight; }
private void _serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { try { int dataLength = _serialPort.BytesToRead; byte[] data = new byte[dataLength]; int nbrDataRead = _serialPort.Read(data, 0, dataLength); if (nbrDataRead == 0) { return; } string str = Encoding.ASCII.GetString(data); foreach (var ch in str.ToCharArray()) { if (ch != '\n' && ch != '\r') { currentMessage += ch; } else if (ch == '\r' || ch == '\n') { if (currentMessage.Length > 0) { if (lastMessageTimeStamp.HasValue && lastMessageTimeStamp.Value.AddMilliseconds(300) > DateTime.Now) //was 250 { currentMessage = string.Empty; return; } var msg = new ScaleWeightReportMessage(currentMessage); lastMessageTimeStamp = DateTime.Now; Task.Run(() => { lock (_messageLock) { if (msg.Status == ScaleMessageStatus.VALID) { if (msg.Weight > 100.00M) { if (!firstStableWeight.HasValue) { firstStableWeight = DateTime.Now; } validWeightCount++; //if (validWeightCount > 20) if (firstStableWeight.HasValue && firstStableWeight.Value.AddSeconds(stableWeightSeconds) <= DateTime.Now && !weightStable) { //send weight acquired message weightStable = true; Messenger.Default.Send <WeightAcquiredMessage>(new WeightAcquiredMessage { Weight = msg.Weight }); } } } else if (msg.Status == ScaleMessageStatus.MOTION) { weightStable = false; validWeightCount = 0; firstStableWeight = null; //clear first stable weight inMotionCount++; if (inMotionCount > 5) //was 20 - then 10 { Messenger.Default.Send <InMotionMessage>(new InMotionMessage { Weight = msg.Weight }); } } Messenger.Default.Send <ScaleWeightReportMessage>(msg); } }); } currentMessage = string.Empty; } } } catch (Exception exc) { Logging.Logger.Log(exc); } }
private void handleWeightReported(ScaleWeightReportMessage msg) { try { if (!_initialized || _canceled || _loadCreated) { return; //load was created so we need to ignore events that may have gotten queued } Logging.Logger.Log("INFO", "Entering handleWeightReported: " + msg.Weight.ToString()); //lock (_dataLocker) //{ if (!_weight1Acquired) { Weight1 = msg.Weight; } else if (!_weight2Acquired && !_waitingForMotion && IsSplitWeight) { Weight2 = msg.Weight; } if (waitingForExit) { if (msg.Weight < 200) //changed from 100 { zeroWeightCount++; Logging.Logger.Log("INFO", "Zero weight count " + zeroWeightCount.ToString()); } else { zeroWeightCount = 0; } if (zeroWeightCount >= 5) //changed from 20 { TagDataProvider.SetGPOState(2, false); TagDataProvider.SetGPOState(3, false); if (isUnattendedMode && !_loadCreated) { bool newLoad = true; setGinTicketToAuto(); Logging.Logger.Log("INFO", "CREATE LOAD WEIGHT REPORTED EVENT"); if (!_loadCreated) { CreateLoad(ref newLoad); } ExitToIdlePage(); } } } GrossWeight = Weight1 + Weight2; //} } catch (Exception exc) { Logging.Logger.Log(exc); } }