new
This commit is contained in:
parent
b4513dc418
commit
81c79b5e64
@ -19,7 +19,8 @@
|
|||||||
#ifndef RTW_HEADER_FSMTreppe_h_
|
#ifndef RTW_HEADER_FSMTreppe_h_
|
||||||
#define RTW_HEADER_FSMTreppe_h_
|
#define RTW_HEADER_FSMTreppe_h_
|
||||||
|
|
||||||
#include <cstdint>
|
#include <stdint.h>
|
||||||
|
#include <Arduino.h>
|
||||||
|
|
||||||
// Class declaration for model FSMTreppe
|
// Class declaration for model FSMTreppe
|
||||||
class FSMTreppeModelClass {
|
class FSMTreppeModelClass {
|
||||||
@ -34,17 +35,17 @@ class FSMTreppeModelClass {
|
|||||||
|
|
||||||
// External inputs (root inport signals with default storage)
|
// External inputs (root inport signals with default storage)
|
||||||
struct ExtU_FSMTreppe_T {
|
struct ExtU_FSMTreppe_T {
|
||||||
uint32_t sensor_unten; // '<Root>/sensor_unten'
|
int sensor_unten; // '<Root>/sensor_unten'
|
||||||
uint32_t sensor_oben; // '<Root>/sensor_oben'
|
int sensor_oben; // '<Root>/sensor_oben'
|
||||||
uint32_t anim_beendet; // '<Root>/anim_beendet'
|
int anim_beendet; // '<Root>/anim_beendet'
|
||||||
uint32_t ldr_schwelle; // '<Root>/ldr_schwelle'
|
int ldr_schwelle; // '<Root>/ldr_schwelle'
|
||||||
};
|
};
|
||||||
|
|
||||||
// External outputs (root outports fed by signals with default storage)
|
// External outputs (root outports fed by signals with default storage)
|
||||||
struct ExtY_FSMTreppe_T {
|
struct ExtY_FSMTreppe_T {
|
||||||
uint32_t laufrichtung; // '<Root>/laufrichtung'
|
int laufrichtung; // '<Root>/laufrichtung'
|
||||||
uint32_t status; // '<Root>/status'
|
int status; // '<Root>/status'
|
||||||
uint32_t dimmrichtung; // '<Root>/dimmrichtung'
|
int dimmrichtung; // '<Root>/dimmrichtung'
|
||||||
};
|
};
|
||||||
|
|
||||||
// model initialize function
|
// model initialize function
|
||||||
|
@ -115,7 +115,7 @@ void Treppe::print_state_on_change()
|
|||||||
last_out.laufrichtung = fsm_outputs.laufrichtung;
|
last_out.laufrichtung = fsm_outputs.laufrichtung;
|
||||||
last_out.status = fsm_outputs.status;
|
last_out.status = fsm_outputs.status;
|
||||||
|
|
||||||
Serial.printf("FSM IN: s_u: %d, s_o: %d ldr_sw: %d, beendet: %d =>",
|
Serial.printf("FSM IN: s_u: %d, s_o: %d ldr_sw: %d, beendet: %d => ",
|
||||||
fsm_inputs.sensor_oben, fsm_inputs.sensor_unten, fsm_inputs.ldr_schwelle, fsm_inputs.anim_beendet);
|
fsm_inputs.sensor_oben, fsm_inputs.sensor_unten, fsm_inputs.ldr_schwelle, fsm_inputs.anim_beendet);
|
||||||
Serial.printf("OUT: LR: %d DR: %d ST: %d\n",
|
Serial.printf("OUT: LR: %d DR: %d ST: %d\n",
|
||||||
fsm_outputs.laufrichtung, fsm_outputs.dimmrichtung, fsm_outputs.status);
|
fsm_outputs.laufrichtung, fsm_outputs.dimmrichtung, fsm_outputs.status);
|
||||||
@ -221,29 +221,30 @@ bool Treppe::check_ldr()
|
|||||||
void Treppe::task()
|
void Treppe::task()
|
||||||
{
|
{
|
||||||
uint32_t m=micros();
|
uint32_t m=micros();
|
||||||
fsm_inputs.ldr_schwelle = check_ldr();
|
// fsm_inputs.ldr_schwelle = check_ldr();
|
||||||
Serial.print("1:");
|
fsm_inputs.ldr_schwelle = 1;
|
||||||
Serial.println(micros()-m);
|
// Serial.print("1:");
|
||||||
|
// Serial.println(micros()-m);
|
||||||
|
|
||||||
m=micros();
|
m=micros();
|
||||||
fsm_inputs.sensor_oben = read_sensor(SENSOR_OBEN);
|
fsm_inputs.sensor_oben = read_sensor(SENSOR_OBEN);
|
||||||
fsm_inputs.sensor_unten = read_sensor(SENSOR_UNTEN);
|
fsm_inputs.sensor_unten = read_sensor(SENSOR_UNTEN);
|
||||||
fsm_inputs.anim_beendet = anim_beendet;
|
fsm_inputs.anim_beendet = 1;
|
||||||
// Serial.print("2:");
|
// Serial.print("2:");
|
||||||
// Serial.println(micros()-m);
|
// Serial.println(micros()-m);
|
||||||
|
|
||||||
m=micros();
|
m=micros();
|
||||||
FSMTreppe_Obj.setExternalInputs(&fsm_inputs);
|
FSMTreppe_Obj->setExternalInputs(&fsm_inputs);
|
||||||
// Serial.print("3:");
|
// Serial.print("3:");
|
||||||
// Serial.println(micros()-m);
|
// Serial.println(micros()-m);
|
||||||
|
|
||||||
m=micros();
|
m=micros();
|
||||||
FSMTreppe_Obj.step();
|
FSMTreppe_Obj->step();
|
||||||
// Serial.print("4:");
|
// Serial.print("4:");
|
||||||
// Serial.println(micros()-m);
|
// Serial.println(micros()-m);
|
||||||
|
|
||||||
m=micros();
|
m=micros();
|
||||||
fsm_outputs = FSMTreppe_Obj.getExternalOutputs();
|
fsm_outputs = FSMTreppe_Obj->getExternalOutputs();
|
||||||
// Serial.print("5:");
|
// Serial.print("5:");
|
||||||
// Serial.println(micros()-m);
|
// Serial.println(micros()-m);
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#ifndef __TREPPE_H
|
#ifndef __TREPPE_H
|
||||||
#define __TREPPE_H
|
#define __TREPPE_H
|
||||||
|
|
||||||
#include "FSMTreppe3/FSMTreppe3.h"
|
#include "FSMTreppe2/FSMTreppe2.h"
|
||||||
#include "PCA9685.h"
|
#include "PCA9685.h"
|
||||||
|
|
||||||
// #define LDRDEBUG // comment in to override LDR measurement
|
// #define LDRDEBUG // comment in to override LDR measurement
|
||||||
@ -53,7 +53,7 @@ private:
|
|||||||
|
|
||||||
// initialize with i2c-Address 0, use Wire Library
|
// initialize with i2c-Address 0, use Wire Library
|
||||||
PCA9685 pwmController;
|
PCA9685 pwmController;
|
||||||
FSMTreppeModelClass FSMTreppe_Obj;
|
FSMTreppeModelClass* FSMTreppe_Obj;
|
||||||
FSMTreppeModelClass::ExtU_FSMTreppe_T fsm_inputs;
|
FSMTreppeModelClass::ExtU_FSMTreppe_T fsm_inputs;
|
||||||
FSMTreppeModelClass::ExtY_FSMTreppe_T fsm_outputs;
|
FSMTreppeModelClass::ExtY_FSMTreppe_T fsm_outputs;
|
||||||
enum fsm_status_t {
|
enum fsm_status_t {
|
||||||
@ -91,11 +91,13 @@ private:
|
|||||||
bool check_ldr();
|
bool check_ldr();
|
||||||
public:
|
public:
|
||||||
Treppe(uint8_t _stufen) : stufen(_stufen){
|
Treppe(uint8_t _stufen) : stufen(_stufen){
|
||||||
FSMTreppe_Obj.initialize();
|
FSMTreppe_Obj = new FSMTreppeModelClass;
|
||||||
|
FSMTreppe_Obj->initialize();
|
||||||
berechne_dimmer();
|
berechne_dimmer();
|
||||||
}
|
}
|
||||||
~Treppe() {
|
~Treppe() {
|
||||||
FSMTreppe_Obj.terminate();
|
FSMTreppe_Obj->terminate();
|
||||||
|
delete FSMTreppe_Obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setup();
|
void setup();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user