fixes to make the new sensor stuff work
diff --git a/aos/common/sensors/sensor_receiver-tmpl.h b/aos/common/sensors/sensor_receiver-tmpl.h
index 9d37b8c..9cd0b3b 100644
--- a/aos/common/sensors/sensor_receiver-tmpl.h
+++ b/aos/common/sensors/sensor_receiver-tmpl.h
@@ -108,6 +108,7 @@
 bool SensorReceiver<Values>::ReceiveData() {
   int old_count = data_.count;
   DoReceiveData();
+  data_.NetworkToHost();
   if (data_.count < 0) {
     LOG(FATAL, "data count overflowed. currently %"PRId32"\n", data_.count);
   }
diff --git a/aos/common/sensors/sensor_sink.h b/aos/common/sensors/sensor_sink.h
index 81bc491..760f90e 100644
--- a/aos/common/sensors/sensor_sink.h
+++ b/aos/common/sensors/sensor_sink.h
@@ -12,7 +12,7 @@
  public:
   virtual ~SensorSinkInterface() {}
 
-  void Process(SensorData<Values> *data);
+  virtual void Process(SensorData<Values> *data) = 0;
 };
 
 }  // namespace sensors
diff --git a/aos/common/sensors/sensors.h b/aos/common/sensors/sensors.h
index 06f5253..6d533b4 100644
--- a/aos/common/sensors/sensors.h
+++ b/aos/common/sensors/sensors.h
@@ -2,6 +2,7 @@
 #define AOS_COMMON_SENSORS_SENSORS_H_
 
 #include "aos/common/time.h"
+#include "aos/common/byteorder.h"
 
 #include "aos/common/control_loop/ControlLoop.h"
 
@@ -40,6 +41,10 @@
   Values values;
   // Starts at 0 and goes up.
   int32_t count;
+
+  void NetworkToHost() {
+    count = ntoh(count);
+  }
 } __attribute__((packed));
 
 }  // namespace sensors