public void ReceivePacket(byte[] packet)
 {
     try {
         lastPacket = protocol.ParsePacket(packet);
     } catch (Exception e) {
         Log.E(this, "Failed to parse packet: " + packet.ToByteString(), e);
     }
 }
Beispiel #2
0
        private void HandleNewGaugePacket(IConnection connection, GaugePacket packet)
        {
/*
 *                      if (!isTesting) {
 *                              // We are not currently testing, and can disregard any new values.
 *                              return;
 *                      }
 */
            RecordConnectionMeasurement(connection, currentTargetPointIndex);
        }
        private void HandlePacketInternal(byte[] packet)
        {
            if (packet == null)
            {
                return;
            }
            try {
                GaugePacket gp = __protocol.ParsePacket(packet);

                int oldBattery = battery;
                battery = gp.battery;

                var changed = oldBattery != battery;

                for (int i = 0; i < sensorCount; i++)
                {
                    var reading = gp.gaugeReadings[i];
                    var sensor  = this[i];

                    if (reading.sensorType != sensor.type)
                    {
                        return;
                    }

                    if (sensor.measurement != gp.gaugeReadings[i].reading)
                    {
                        sensor.SetMeasurement(gp.gaugeReadings[i].reading);
                        changed = true;
                    }

                    sensor.removed = reading.removed;
                    var removedChanged = sensor.removed != removedStates[i];
                    removedStates[i] = sensor.removed;

                    if (removedChanged)
                    {
                        sensor.NotifyInvalidated();
                    }
                }

                if (changed || DateTime.Now - lastNotify > MAX_UPDATE_DELAY)
                {
                    last = DateTime.Now;
                    NotifyOfDeviceEvent(DeviceEvent.EType.NewData);
                    lastNotify = DateTime.Now;
                }
            } catch (Exception) {
                NotifyOfDeviceEvent(DeviceEvent.EType.NewData);
            }
        }