Skip to content
Snippets Groups Projects
icbm.ino 1.11 KiB
Newer Older
Cyril Danilevski's avatar
Cyril Danilevski committed
#include "esp32_ethernet.hpp"
#include "rest.hpp"
Cyril Danilevski's avatar
Cyril Danilevski committed
#include "mpod.hpp"
Cyril Danilevski's avatar
Cyril Danilevski committed


unsigned long start;
extern bool eth_connected;
Cyril Danilevski's avatar
Cyril Danilevski committed
extern SNMP::Manager snmp;
Cyril Danilevski's avatar
Cyril Danilevski committed

void setup() {
    Serial.begin(115200);
Cyril Danilevski's avatar
Cyril Danilevski committed
    initializeNetwork();
    while (!eth_connected) {
        Serial.print("-");
        delay(100);
    }

    initializeRoutes();
    Serial.println("Started REST server");
Cyril Danilevski's avatar
Cyril Danilevski committed
    initializeSNMP();
    Serial.println("Started SNMP server");
Cyril Danilevski's avatar
Cyril Danilevski committed
    start = millis();
}

Cyril Danilevski's avatar
Cyril Danilevski committed
enum {
    NONE,
    ON,
    OFF,
};

void serial_loop() {
Cyril Danilevski's avatar
Cyril Danilevski committed
    if (Serial.available()) {
        uint8_t output = NONE;
        // Read command from serial
        String string = Serial.readString();
        string.toLowerCase();
        // Only two commands
        if (string == "on") {
            output = ON;
        } else if (string == "off") {
            output = OFF;
        }
        Serial.print(output);
Cyril Danilevski's avatar
Cyril Danilevski committed
    }
}

void loop() {
    // Manager loop function must be called to process incoming messages
Cyril Danilevski's avatar
Cyril Danilevski committed
    snmp.loop();
    restServer.handleClient();
    serial_loop();

Cyril Danilevski's avatar
Cyril Danilevski committed
    if (millis() - start  >= 1000) {
        start = millis();
        Serial.print(".");
Cyril Danilevski's avatar
Cyril Danilevski committed
    }
}