Generalized-Core-Counter 3.20
Particle-based generalized core counter firmware
Loading...
Searching...
No Matches
SensorFactory.h
Go to the documentation of this file.
1// src/SensorFactory.h
2#ifndef SENSORFACTORY_H
3#define SENSORFACTORY_H
4
5#include "ISensor.h"
6#include "PIRSensor.h" // PIR is the default sensor
7
8// Future sensors can be added here:
9// #include "GestureFaceSensor.h"
10// #include "UltrasonicSensor.h"
11
51
59public:
72 switch(type) {
73 case SensorType::PIR:
74 Log.info("Creating PIR sensor");
75 return &PIRSensor::instance();
76
77 // Add more sensors as they are implemented
78 // case SensorType::GESTURE_FACE:
79 // Log.info("Creating GestureFace sensor");
80 // return &GestureFaceSensor::instance();
81 //
82 // case SensorType::ULTRASONIC:
83 // Log.info("Creating Ultrasonic sensor");
84 // return &UltrasonicSensor::instance();
85
86 default:
87 Log.error("Sensor type %d not yet implemented", (int)type);
88 return nullptr;
89 }
90 }
91
97 static const char* getSensorTypeName(SensorType type) {
98 switch(type) {
99 case SensorType::VEHICLE_PRESSURE: return "VehiclePressure";
100 case SensorType::PIR: return "PIR";
101 case SensorType::VEHICLE_MAGNETOMETER: return "VehicleMagnetometer";
102 case SensorType::RAIN_BUCKET: return "RainBucket";
103 case SensorType::VIBRATION_BASIC: return "VibrationBasic";
104 case SensorType::VIBRATION_ADVANCED: return "VibrationAdvanced";
105
106 case SensorType::INDOOR_OCCUPANCY: return "IndoorOccupancy";
107 case SensorType::OUTDOOR_OCCUPANCY: return "OutdoorOccupancy";
108 case SensorType::OPENMV_OCCUPANCY: return "OpenMVOccupancy";
109 case SensorType::ACCEL_PRESENCE: return "AccelPresence";
110
111 case SensorType::SOIL_MOISTURE: return "SoilMoisture";
112 case SensorType::DISTANCE: return "Distance";
113
114 case SensorType::LORA_GATEWAY: return "LoRaGateway";
115 default: return "Unknown";
116 }
117 }
118};
119
120#endif /* SENSORFACTORY_H */
SensorType
Enumeration of available sensor types (backward-compatible IDs).
@ PIR
Pedestrian Infrared Sensor.
Abstract interface for all sensors.
Definition ISensor.h:75
static PIRSensor & instance()
Get singleton instance.
Definition PIRSensor.h:31
Factory for creating sensor instances.
static ISensor * createSensor(SensorType type)
Create a sensor instance based on the specified type.
static const char * getSensorTypeName(SensorType type)
Get sensor type name as string.