initial structure
This commit is contained in:
parent
c96ce8a67b
commit
7bf49d0997
|
@ -10,6 +10,7 @@
|
||||||
"functional": "cpp",
|
"functional": "cpp",
|
||||||
"tuple": "cpp",
|
"tuple": "cpp",
|
||||||
"type_traits": "cpp",
|
"type_traits": "cpp",
|
||||||
"utility": "cpp"
|
"utility": "cpp",
|
||||||
|
"*.d": "cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,17 +1,5 @@
|
||||||
// #define USE_INTERRUPT
|
#include <espmega_iot_core.hpp>
|
||||||
#include <ESPMegaPRO.h>
|
#include <user_code.hpp>
|
||||||
#include <ETH.h>
|
|
||||||
#include <PubSubClient.h>
|
|
||||||
#include <PubSubClientTools.h>
|
|
||||||
#include <Thread.h>
|
|
||||||
#include <StaticThreadController.h>
|
|
||||||
#include <IRremote.hpp>
|
|
||||||
#include <daikin_ir.hpp>
|
|
||||||
#include <dhtnew.h>
|
|
||||||
#include <time.h>
|
|
||||||
#include <EasyNextionLibrary.h>
|
|
||||||
#include <lcd.hpp>
|
|
||||||
|
|
||||||
|
|
||||||
// OS Configuration
|
// OS Configuration
|
||||||
#define FASTBOOT
|
#define FASTBOOT
|
||||||
|
@ -104,77 +92,6 @@ char AC_HUMIDITY_TOPIC[75];
|
||||||
#define EEPROM_ADDRESS_MQTT_SERVER 116 // 04bytes, thru 119
|
#define EEPROM_ADDRESS_MQTT_SERVER 116 // 04bytes, thru 119
|
||||||
#define EEPROM_ADDRESS_MQTT_PORT 120 // 02bytes, thru 121
|
#define EEPROM_ADDRESS_MQTT_PORT 120 // 02bytes, thru 121
|
||||||
|
|
||||||
// Forward declaration
|
|
||||||
void virtual_interrupt_loop();
|
|
||||||
void virtual_interrupt_callback(int pin, int state);
|
|
||||||
void network_begin();
|
|
||||||
void mqtt_connect();
|
|
||||||
void mqtt_subscribe();
|
|
||||||
void thread_initialization();
|
|
||||||
void pwm_state_callback(String topic, String message);
|
|
||||||
void pwm_value_callback(String topic, String message);
|
|
||||||
void state_request_callback(String topic, String message);
|
|
||||||
void io_begin();
|
|
||||||
void ir_loop();
|
|
||||||
|
|
||||||
void publish_pwm_states();
|
|
||||||
void publish_pwm_state(int id);
|
|
||||||
void pwm_set_state(int id, int state);
|
|
||||||
void pwm_set_value(int id, int value);
|
|
||||||
void pwm_toggle(int id);
|
|
||||||
void pwm_toggle(int id1, int id2);
|
|
||||||
void pwm_cycle_value(int id);
|
|
||||||
boolean pwm_group_state(int id1, int id2);
|
|
||||||
|
|
||||||
void publish_ac_state();
|
|
||||||
void publish_env_state();
|
|
||||||
void ac_state_callback(String topic, String message);
|
|
||||||
void ac_set_state(int mode, int temperature, int fan_speed);
|
|
||||||
|
|
||||||
void publish_input_states();
|
|
||||||
void publish_input_state(int id);
|
|
||||||
void publish_input_state(int id, int state);
|
|
||||||
|
|
||||||
void lcd_begin();
|
|
||||||
void lcd_loop();
|
|
||||||
void lcd_refresh();
|
|
||||||
void lcd_refresh_pd();
|
|
||||||
void lcd_top_bar_update();
|
|
||||||
void trigger0();
|
|
||||||
void trigger1();
|
|
||||||
void trigger2();
|
|
||||||
void trigger3();
|
|
||||||
void trigger4();
|
|
||||||
void trigger5();
|
|
||||||
void trigger6();
|
|
||||||
void trigger7();
|
|
||||||
void trigger8();
|
|
||||||
void trigger9();
|
|
||||||
void trigger10();
|
|
||||||
void trigger11();
|
|
||||||
void trigger12();
|
|
||||||
void trigger13();
|
|
||||||
|
|
||||||
void eeprom_retrieve_init();
|
|
||||||
void eeprom_pwm_update();
|
|
||||||
|
|
||||||
void lcd_ac_refresh_fan();
|
|
||||||
void lcd_ac_refresh_mode();
|
|
||||||
|
|
||||||
void set_ip(String address);
|
|
||||||
void set_netmask(String address);
|
|
||||||
void set_dns(String address);
|
|
||||||
void set_gw(String address);
|
|
||||||
void set_mqtt_server(String address);
|
|
||||||
void eeprom_ip_update(uint16_t rom_address, uint8_t byte1, uint8_t byte2, uint8_t byte3, uint8_t byte4);
|
|
||||||
IPAddress eeprom_ip_retrieve(uint16_t rom_address);
|
|
||||||
void set_hostname(String hostname);
|
|
||||||
void eeprom_hostname_retrieve();
|
|
||||||
void set_basetopic(String topic);
|
|
||||||
void eeprom_basetopic_retrieve();
|
|
||||||
void mqtt_port_set(uint16_t port);
|
|
||||||
void eeprom_mqtt_port_retrieve();
|
|
||||||
|
|
||||||
char PWM_STATE_TOPIC[75];
|
char PWM_STATE_TOPIC[75];
|
||||||
char PWM_VALUE_TOPIC[75];
|
char PWM_VALUE_TOPIC[75];
|
||||||
char INPUTS_TOPIC[75];
|
char INPUTS_TOPIC[75];
|
||||||
|
@ -197,6 +114,7 @@ StaticThreadController<2> lcd_thread_controller(&top_bar_updater, &page_updater)
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
|
Serial2.begin(115200);
|
||||||
panel.begin(115200);
|
panel.begin(115200);
|
||||||
Serial.println("ESPMega R3 Initializing");
|
Serial.println("ESPMega R3 Initializing");
|
||||||
ESPMega_begin();
|
ESPMega_begin();
|
||||||
|
@ -218,11 +136,7 @@ void setup()
|
||||||
thread_initialization();
|
thread_initialization();
|
||||||
Serial.println("Initialization Completed.");
|
Serial.println("Initialization Completed.");
|
||||||
Serial.println("Jumping to User Code.");
|
Serial.println("Jumping to User Code.");
|
||||||
// Begin User Code
|
user_init();
|
||||||
|
|
||||||
/*
|
|
||||||
Pre-NTP Implementation
|
|
||||||
*/
|
|
||||||
lcd_send_command("page dashboard");
|
lcd_send_command("page dashboard");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -234,6 +148,7 @@ void loop()
|
||||||
ir_loop();
|
ir_loop();
|
||||||
thread_controller.run();
|
thread_controller.run();
|
||||||
lcd_loop();
|
lcd_loop();
|
||||||
|
user_loop();
|
||||||
}
|
}
|
||||||
|
|
||||||
void eeprom_retrieve_init()
|
void eeprom_retrieve_init()
|
||||||
|
@ -440,10 +355,7 @@ void virtual_interrupt_callback(int pin, int state)
|
||||||
// Serial.printf("Pin %d changed to %d\n", pin, state);
|
// Serial.printf("Pin %d changed to %d\n", pin, state);
|
||||||
if (lcd_current_page == 2)
|
if (lcd_current_page == 2)
|
||||||
panel.writeNum("I" + String(pin) + ".val", state);
|
panel.writeNum("I" + String(pin) + ".val", state);
|
||||||
if (pin == 15)
|
virtual_interrupt_user_callback(pin, state);
|
||||||
{
|
|
||||||
pwm_toggle(4);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void virtual_interrupt_loop()
|
void virtual_interrupt_loop()
|
|
@ -0,0 +1,87 @@
|
||||||
|
#ifndef CORE_LOADED
|
||||||
|
#define CORE_LOADED
|
||||||
|
|
||||||
|
#include <ESPMegaPRO.h>
|
||||||
|
#include <ETH.h>
|
||||||
|
#include <PubSubClient.h>
|
||||||
|
#include <PubSubClientTools.h>
|
||||||
|
#include <Thread.h>
|
||||||
|
#include <StaticThreadController.h>
|
||||||
|
#include <IRremote.hpp>
|
||||||
|
#include <daikin_ir.hpp>
|
||||||
|
#include <dhtnew.h>
|
||||||
|
#include <time.h>
|
||||||
|
#include <EasyNextionLibrary.h>
|
||||||
|
#include <lcd.hpp>
|
||||||
|
|
||||||
|
void virtual_interrupt_loop();
|
||||||
|
void virtual_interrupt_callback(int pin, int state);
|
||||||
|
void network_begin();
|
||||||
|
void mqtt_connect();
|
||||||
|
void mqtt_subscribe();
|
||||||
|
void thread_initialization();
|
||||||
|
void pwm_state_callback(String topic, String message);
|
||||||
|
void pwm_value_callback(String topic, String message);
|
||||||
|
void state_request_callback(String topic, String message);
|
||||||
|
void io_begin();
|
||||||
|
void ir_loop();
|
||||||
|
|
||||||
|
void publish_pwm_states();
|
||||||
|
void publish_pwm_state(int id);
|
||||||
|
void pwm_set_state(int id, int state);
|
||||||
|
void pwm_set_value(int id, int value);
|
||||||
|
void pwm_toggle(int id);
|
||||||
|
void pwm_toggle(int id1, int id2);
|
||||||
|
void pwm_cycle_value(int id);
|
||||||
|
boolean pwm_group_state(int id1, int id2);
|
||||||
|
|
||||||
|
void publish_ac_state();
|
||||||
|
void publish_env_state();
|
||||||
|
void ac_state_callback(String topic, String message);
|
||||||
|
void ac_set_state(int mode, int temperature, int fan_speed);
|
||||||
|
|
||||||
|
void publish_input_states();
|
||||||
|
void publish_input_state(int id);
|
||||||
|
void publish_input_state(int id, int state);
|
||||||
|
|
||||||
|
void lcd_begin();
|
||||||
|
void lcd_loop();
|
||||||
|
void lcd_refresh();
|
||||||
|
void lcd_refresh_pd();
|
||||||
|
void lcd_top_bar_update();
|
||||||
|
void trigger0();
|
||||||
|
void trigger1();
|
||||||
|
void trigger2();
|
||||||
|
void trigger3();
|
||||||
|
void trigger4();
|
||||||
|
void trigger5();
|
||||||
|
void trigger6();
|
||||||
|
void trigger7();
|
||||||
|
void trigger8();
|
||||||
|
void trigger9();
|
||||||
|
void trigger10();
|
||||||
|
void trigger11();
|
||||||
|
void trigger12();
|
||||||
|
void trigger13();
|
||||||
|
|
||||||
|
void eeprom_retrieve_init();
|
||||||
|
void eeprom_pwm_update();
|
||||||
|
|
||||||
|
void lcd_ac_refresh_fan();
|
||||||
|
void lcd_ac_refresh_mode();
|
||||||
|
|
||||||
|
void set_ip(String address);
|
||||||
|
void set_netmask(String address);
|
||||||
|
void set_dns(String address);
|
||||||
|
void set_gw(String address);
|
||||||
|
void set_mqtt_server(String address);
|
||||||
|
void eeprom_ip_update(uint16_t rom_address, uint8_t byte1, uint8_t byte2, uint8_t byte3, uint8_t byte4);
|
||||||
|
IPAddress eeprom_ip_retrieve(uint16_t rom_address);
|
||||||
|
void set_hostname(String hostname);
|
||||||
|
void eeprom_hostname_retrieve();
|
||||||
|
void set_basetopic(String topic);
|
||||||
|
void eeprom_basetopic_retrieve();
|
||||||
|
void mqtt_port_set(uint16_t port);
|
||||||
|
void eeprom_mqtt_port_retrieve();
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,5 @@
|
||||||
|
#include <external_lcd.hpp>
|
||||||
|
void ExternalLCD::callTriggerFunction() {
|
||||||
|
uint8_t touch_hex = Serial2.read();
|
||||||
|
external_lcd_callback(touch_hex);
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
#include <EasyNextionLibrary.h>
|
||||||
|
#ifndef trigger_h
|
||||||
|
#include "trigger.h"
|
||||||
|
#endif
|
||||||
|
#ifndef EXTERNAL_LCD_LOADED
|
||||||
|
#define EXTERNAL_LCD_LOADED
|
||||||
|
#include <user_code.hpp>
|
||||||
|
class ExternalLCD: public EasyNex {
|
||||||
|
protected:
|
||||||
|
void callTriggerFunction();
|
||||||
|
};
|
||||||
|
#endif
|
|
@ -0,0 +1,17 @@
|
||||||
|
#include <user_code.hpp>
|
||||||
|
|
||||||
|
void user_pre_init() {
|
||||||
|
|
||||||
|
}
|
||||||
|
void user_init() {
|
||||||
|
|
||||||
|
}
|
||||||
|
void user_loop() {
|
||||||
|
|
||||||
|
}
|
||||||
|
void virtual_interrupt_user_callback(int pin, int state) {
|
||||||
|
|
||||||
|
}
|
||||||
|
void timer_tick_callback() {
|
||||||
|
|
||||||
|
}
|
|
@ -1,23 +1,13 @@
|
||||||
#ifndef USER_CODE
|
#ifndef USER_CODE
|
||||||
#define USER_CODE
|
#define USER_CODE
|
||||||
#include <ESPMegaPRO.h>
|
#ifndef CORE_LOADED
|
||||||
void user_pre_init() {
|
#define CORE_LOADED
|
||||||
|
#include <espmega_iot_core.hpp>
|
||||||
}
|
#endif
|
||||||
|
void user_pre_init();
|
||||||
void user_init() {
|
void user_init();
|
||||||
|
void user_loop();
|
||||||
}
|
void virtual_interrupt_user_callback(int pin, int state);
|
||||||
|
void timer_tick_callback();
|
||||||
void user_loop() {
|
void external_lcd_callback(int touch_hex);
|
||||||
|
|
||||||
}
|
|
||||||
void virtual_interrupt_user_callback(int pin, int state) {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
void timer_tick_callback() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
Loading…
Reference in New Issue