Loom 4 v4.5
Arduino library for Internet of Things Rapid Prototyping in environmental sensing
Loading...
Searching...
No Matches
Actuators.h
1#pragma once
2
3#include "Module.h"
4
5#include <ArduinoJson.h>
6
7enum ACTUATOR_TYPE{
8 SERVO,
9 STEPPER,
10 RELAY,
11 NEOPIXEL
12};
13
19class Actuator : public Module{
20 protected:
21 /* Module methods that are inherited by actuator */
22 void measure() override {};
23
24 void power_up() override {};
25 void power_down() override {};
26 void package() override {};
27
28 public:
29 Actuator(ACTUATOR_TYPE actType, int instance) : Module("Actuator") {
30 type = actType;
31 instance_num = instance;
32 snprintf(moduleName, 100, "%s%i", typeToString(), instance_num);
33 };
34
35 // Initializer
36 virtual void initialize() = 0;
37 virtual void package(JsonObject json) = 0;
38
43 virtual void control(JsonArray json) = 0;
44
45 void printModuleName(const char* message) override {
46 char output[50];
47 snprintf(output, 50, "[%s] %s", moduleName, message);
48 Serial.print(output);
49 };
50
51 const char* getModuleName() override { return moduleName; };
52
56 const char* typeToString(){
57 switch(type){
58 case SERVO:
59 return "Servo";
60 case STEPPER:
61 return "Stepper";
62 case RELAY:
63 return "Relay";
64 case NEOPIXEL:
65 return "Neopixel";
66 }
67 };
68
72 int get_instance_num() { return instance_num; };
73
74 private:
75 int instance_num; // Instance number of the Actuator
76 ACTUATOR_TYPE type; // Type of actuator
77
78 char moduleName[100];
79};
Definition: Actuators.h:19
virtual void control(JsonArray json)=0
int get_instance_num()
Definition: Actuators.h:72
const char * typeToString()
Definition: Actuators.h:56
Definition: Module.h:30