Tici light sensor (#2150)
	
		
	
				
					
				
			* more generic sensor base class * add file sensor * light sensor working * correct sensor typepull/49/head
							parent
							
								
									f02ec4c68e
								
							
						
					
					
						commit
						7cc5710974
					
				
				 8 changed files with 84 additions and 3 deletions
			
			
		| @ -0,0 +1,15 @@ | ||||
| #include <iostream> | ||||
| #include <string> | ||||
| 
 | ||||
| #include "file_sensor.hpp" | ||||
| 
 | ||||
| FileSensor::FileSensor(std::string filename) : file(filename) { | ||||
| } | ||||
| 
 | ||||
| int FileSensor::init() { | ||||
|   return file.is_open() ? 0 : 1; | ||||
| } | ||||
| 
 | ||||
| FileSensor::~FileSensor(){ | ||||
|   file.close(); | ||||
| } | ||||
| @ -0,0 +1,19 @@ | ||||
| #pragma once | ||||
| 
 | ||||
| #include <fstream> | ||||
| #include <string> | ||||
| 
 | ||||
| #include "cereal/gen/cpp/log.capnp.h" | ||||
| #include "sensors/sensor.hpp" | ||||
| 
 | ||||
| 
 | ||||
| class FileSensor : public Sensor { | ||||
| protected: | ||||
|   std::ifstream file; | ||||
| 
 | ||||
| public: | ||||
|   FileSensor(std::string filename); | ||||
|   ~FileSensor(); | ||||
|   int init(); | ||||
|   virtual void get_event(cereal::SensorEventData::Builder &event) = 0; | ||||
| }; | ||||
| @ -0,0 +1,23 @@ | ||||
| #include <iostream> | ||||
| #include <string> | ||||
| 
 | ||||
| #include "common/timing.h" | ||||
| 
 | ||||
| #include "light_sensor.hpp" | ||||
| #include "constants.hpp" | ||||
| 
 | ||||
| void LightSensor::get_event(cereal::SensorEventData::Builder &event){ | ||||
|   uint64_t start_time = nanos_since_boot(); | ||||
|   file.clear(); | ||||
|   file.seekg(0); | ||||
| 
 | ||||
|   int value; | ||||
|   file >> value; | ||||
| 
 | ||||
|   event.setSource(cereal::SensorEventData::SensorSource::RPR0521); | ||||
|   event.setVersion(1); | ||||
|   event.setSensor(SENSOR_LIGHT); | ||||
|   event.setType(SENSOR_TYPE_LIGHT); | ||||
|   event.setTimestamp(start_time); | ||||
|   event.setLight(value); | ||||
| } | ||||
| @ -0,0 +1,8 @@ | ||||
| #pragma once | ||||
| #include "file_sensor.hpp" | ||||
| 
 | ||||
| class LightSensor : public FileSensor { | ||||
| public: | ||||
|   LightSensor(std::string filename) : FileSensor(filename){}; | ||||
|   void get_event(cereal::SensorEventData::Builder &event); | ||||
| }; | ||||
| @ -0,0 +1,9 @@ | ||||
| #pragma once | ||||
| 
 | ||||
| #include "cereal/gen/cpp/log.capnp.h" | ||||
| 
 | ||||
| class Sensor { | ||||
| public: | ||||
|   virtual int init() = 0; | ||||
|   virtual void get_event(cereal::SensorEventData::Builder &event) = 0; | ||||
| }; | ||||
					Loading…
					
					
				
		Reference in new issue