Hi.
Does anyone have an example of edge detection RE,FE with SMlib?
/c
Here is my usage so far of SMlib.
SM AssetOperational(AssetInitialLoop);
State AssetInitialLoop()
{
if (digitalRead(CONTROLLINO_I18)) {
AssetOperational.Set(AssetNotRunningEntry,AssetNotRunningLoop);
} else {
AssetOperational.Set(AssetRunningEntry,AssetRunningLoop);
}
}
State AssetNotRunningEntry()
{
StaticJsonBuffer<MAX_MQTT_PAYLOAD> jsonBuffer;
JsonObject& root = jsonBuffer.createObject();
root["t"] = "E";
root["n"] = "ASSET_OPERATION";
root["v"] = "OFF"
char buffer[128];
root.printTo(buffer, sizeof(buffer));
mqttClient.publish(concatTopics(CHAN_ROOT, CHAN_DEVICES, DEVICE_ID), buffer);
}
State AssetNotRunningLoop()
{
if (digitalRead(CONTROLLINO_I18)) {
AssetOperational.Set(AssetRunningEntry,AssetRunningLoop);
}
}
State AssetRunningEntry()
{
StaticJsonBuffer<MAX_MQTT_PAYLOAD> jsonBuffer;
JsonObject& root = jsonBuffer.createObject();
root["t"] = "E";
root["n"] = "ASSET_OPERATION";
root["v"] = "ON"
char buffer[128];
root.printTo(buffer, sizeof(buffer));
mqttClient.publish(concatTopics(CHAN_ROOT, CHAN_DEVICES, DEVICE_ID), buffer);
}
State AssetRunningLoop()
{
if (!digitalRead(CONTROLLINO_I18)) {
AssetOperational.Set(AssetNotRunningEntry,AssetNotRunningLoop);
}
}
void userSetup()
{
pinMode(CONTROLLINO_I17, INPUT);
}
void userLoop()
{
EXEC(AssetOperational);
}