Files
IoTManager/Cmd.ino

600 lines
20 KiB
Arduino
Raw Permalink Normal View History

2019-12-24 11:53:26 +03:00
void CMD_init() {
2020-02-13 20:20:34 +03:00
2019-12-24 11:53:26 +03:00
sCmd.addCommand("button", button);
sCmd.addCommand("buttonSet", buttonSet);
2020-02-16 19:36:58 +03:00
sCmd.addCommand("buttonChange", buttonChange);
2019-12-24 11:53:26 +03:00
sCmd.addCommand("pinSet", pinSet);
2020-02-16 19:36:58 +03:00
sCmd.addCommand("pinChange", pinChange);
2019-12-24 11:53:26 +03:00
sCmd.addCommand("pwm", pwm);
sCmd.addCommand("pwmSet", pwmSet);
sCmd.addCommand("switch", switch_);
2020-05-20 02:16:23 +02:00
#ifdef analog_enable
2019-12-24 11:53:26 +03:00
sCmd.addCommand("analog", analog);
2020-05-20 02:16:23 +02:00
#endif
#ifdef level_enable
2019-12-24 11:53:26 +03:00
sCmd.addCommand("level", level);
2020-05-20 02:16:23 +02:00
#endif
#ifdef dallas_enable
2019-12-24 11:53:26 +03:00
sCmd.addCommand("dallas", dallas);
2020-05-20 02:16:23 +02:00
#endif
#ifdef dht_enable
2020-02-10 01:06:18 +03:00
sCmd.addCommand("dhtT", dhtT);
sCmd.addCommand("dhtH", dhtH);
2020-05-02 12:20:30 +02:00
sCmd.addCommand("dhtPerception", dhtP);
sCmd.addCommand("dhtComfort", dhtC);
sCmd.addCommand("dhtDewpoint", dhtD);
2020-05-20 02:16:23 +02:00
#endif
2020-05-02 12:20:30 +02:00
2020-05-20 02:16:23 +02:00
#ifdef bmp_enable
2020-05-02 12:20:30 +02:00
sCmd.addCommand("bmp280T", bmp280T);
sCmd.addCommand("bmp280P", bmp280P);
2020-05-20 02:16:23 +02:00
#endif
2020-05-02 12:20:30 +02:00
2020-05-20 02:16:23 +02:00
#ifdef bme_enable
2020-05-02 12:20:30 +02:00
sCmd.addCommand("bme280T", bme280T);
2020-05-04 15:57:54 +02:00
sCmd.addCommand("bme280P", bme280P);
sCmd.addCommand("bme280H", bme280H);
sCmd.addCommand("bme280A", bme280A);
2020-05-20 02:16:23 +02:00
#endif
2019-12-24 11:53:26 +03:00
2020-05-20 02:16:23 +02:00
#ifdef stepper_enable
2020-03-16 00:00:59 +01:00
sCmd.addCommand("stepper", stepper);
sCmd.addCommand("stepperSet", stepperSet);
2020-05-20 02:16:23 +02:00
#endif
2020-03-16 00:00:59 +01:00
2020-05-20 02:16:23 +02:00
#ifdef servo_enable
2020-04-25 16:39:36 +02:00
sCmd.addCommand("servo", servo_);
sCmd.addCommand("servoSet", servoSet);
2020-05-20 02:16:23 +02:00
#endif
2020-04-25 16:39:36 +02:00
2020-05-20 02:16:23 +02:00
#ifdef serial_enable
2020-05-04 15:57:54 +02:00
sCmd.addCommand("serialBegin", serialBegin);
sCmd.addCommand("serialWrite", serialWrite);
2020-05-20 02:16:23 +02:00
#endif
2020-05-04 15:57:54 +02:00
2020-05-20 02:16:23 +02:00
#ifdef logging_enable
2019-12-24 11:53:26 +03:00
sCmd.addCommand("logging", logging);
2020-05-20 02:16:23 +02:00
#endif
2019-12-24 11:53:26 +03:00
2020-02-08 02:45:35 +03:00
sCmd.addCommand("inputDigit", inputDigit);
sCmd.addCommand("digitSet", digitSet);
2019-12-24 11:53:26 +03:00
2020-02-13 20:20:34 +03:00
sCmd.addCommand("inputTime", inputTime);
sCmd.addCommand("timeSet", timeSet);
2019-12-24 11:53:26 +03:00
sCmd.addCommand("timerStart", timerStart);
sCmd.addCommand("timerStop", timerStop);
2020-02-13 20:20:34 +03:00
sCmd.addCommand("text", text);
sCmd.addCommand("textSet", textSet);
2019-12-24 11:53:26 +03:00
sCmd.addCommand("mqtt", mqttOrderSend);
sCmd.addCommand("http", httpOrderSend);
2020-05-20 02:16:23 +02:00
#ifdef push_enable
2020-02-10 01:06:18 +03:00
sCmd.addCommand("push", pushControl);
2020-05-20 02:16:23 +02:00
#endif
sCmd.addCommand("update", update_firmware);
sCmd.addCommand("firmware", firmware);
2020-01-12 00:35:15 +03:00
2020-02-13 20:20:34 +03:00
handle_time_init();
2019-12-24 11:53:26 +03:00
}
2020-02-08 02:45:35 +03:00
2020-01-06 15:19:12 +03:00
2019-12-24 11:53:26 +03:00
//==========================================================================================================
//==========================================Модуль кнопок===================================================
void button() {
String button_number = sCmd.next();
String button_param = sCmd.next();
2020-03-24 19:01:11 +01:00
String widget_name = sCmd.next();
2019-12-24 11:53:26 +03:00
String page_name = sCmd.next();
String start_state = sCmd.next();
String page_number = sCmd.next();
2020-06-11 22:51:34 +02:00
jsonWriteStr(configOptionJson, "button_param" + button_number, button_param);
jsonWriteStr(configLiveJson, "button" + button_number, start_state);
2019-12-24 11:53:26 +03:00
if (isDigitStr (button_param)) {
pinMode(button_param.toInt(), OUTPUT);
digitalWrite(button_param.toInt(), start_state.toInt());
}
2020-05-28 00:33:26 +02:00
if (button_param == "scen") {
2020-06-11 22:51:34 +02:00
jsonWriteStr(configSetupJson, "scen", start_state);
2019-12-24 11:53:26 +03:00
Scenario_init();
saveConfig();
}
if (button_param.indexOf("line") != -1) {
String str = button_param;
while (str.length() != 0) {
if (str == "") return;
String tmp = selectToMarker (str, ","); //line1,
String number = deleteBeforeDelimiter(tmp, "e"); //1,
number.replace(",", "");
Serial.println(number);
int number_int = number.toInt();
scenario_line_status[number_int] = start_state.toInt();
str = deleteBeforeDelimiter(str, ",");
}
}
2020-05-02 12:20:30 +02:00
createWidget (widget_name, page_name, page_number, "widgets/widget.toggle.json", "button" + button_number);
2019-12-24 11:53:26 +03:00
}
void buttonSet() {
String button_number = sCmd.next();
String button_state = sCmd.next();
2020-06-11 22:51:34 +02:00
String button_param = jsonReadStr(configOptionJson, "button_param" + button_number);
2019-12-24 11:53:26 +03:00
2020-05-28 00:33:26 +02:00
if (button_param != "na" || button_param != "scen" || button_param.indexOf("line") != -1) {
2019-12-24 11:53:26 +03:00
digitalWrite(button_param.toInt(), button_state.toInt());
}
2020-05-28 00:33:26 +02:00
if (button_param == "scen") {
2020-06-11 22:51:34 +02:00
jsonWriteStr(configSetupJson, "scen", button_state);
2019-12-24 11:53:26 +03:00
Scenario_init();
saveConfig();
}
if (button_param.indexOf("line") != -1) {
String str = button_param;
while (str.length() != 0) {
if (str == "") return;
String tmp = selectToMarker (str, ","); //line1,
String number = deleteBeforeDelimiter(tmp, "e"); //1,
number.replace(",", "");
Serial.println(number);
int number_int = number.toInt();
scenario_line_status[number_int] = button_state.toInt();
str = deleteBeforeDelimiter(str, ",");
}
}
2020-05-02 12:20:30 +02:00
eventGen ("button", button_number);
2019-12-24 11:53:26 +03:00
2020-06-11 22:51:34 +02:00
jsonWriteStr(configLiveJson, "button" + button_number, button_state);
2020-05-02 12:20:30 +02:00
sendSTATUS("button" + button_number, button_state);
2019-12-24 11:53:26 +03:00
}
2020-02-16 19:36:58 +03:00
void buttonChange() {
String button_number = sCmd.next();
2020-06-11 22:51:34 +02:00
String current_state = jsonReadStr(configLiveJson, "button" + button_number);
2020-02-16 19:36:58 +03:00
if (current_state == "1") {
current_state = "0";
} else if (current_state == "0") {
current_state = "1";
}
order_loop += "buttonSet " + button_number + " " + current_state + ",";
2020-06-11 22:51:34 +02:00
jsonWriteStr(configLiveJson, "button" + button_number, current_state);
2020-05-02 12:20:30 +02:00
sendSTATUS("button" + button_number, current_state);
2020-02-16 19:36:58 +03:00
}
2019-12-24 11:53:26 +03:00
2020-02-16 19:36:58 +03:00
void pinSet() {
2019-12-24 11:53:26 +03:00
String pin_number = sCmd.next();
String pin_state = sCmd.next();
pinMode(pin_number.toInt(), OUTPUT);
digitalWrite(pin_number.toInt(), pin_state.toInt());
2020-02-16 19:36:58 +03:00
}
2019-12-24 11:53:26 +03:00
2020-02-16 19:36:58 +03:00
void pinChange() {
String pin_number = sCmd.next();
pinMode(pin_number.toInt(), OUTPUT);
digitalWrite(pin_number.toInt(), !digitalRead(pin_number.toInt()));
2019-12-24 11:53:26 +03:00
}
//==================================================================================================================
//==========================================Модуль управления ШИМ===================================================
void pwm() {
static boolean flag = true;
String pwm_number = sCmd.next();
String pwm_pin = sCmd.next();
2020-03-24 19:01:11 +01:00
String widget_name = sCmd.next();
widget_name.replace("#", " ");
2019-12-24 11:53:26 +03:00
String page_name = sCmd.next();
String start_state = sCmd.next();
String page_number = sCmd.next();
uint8_t pwm_pin_int = pwm_pin.toInt();
2020-06-11 22:51:34 +02:00
jsonWriteStr(configOptionJson, "pwm_pin" + pwm_number, pwm_pin);
2019-12-24 11:53:26 +03:00
pinMode(pwm_pin_int, INPUT);
analogWrite(pwm_pin_int, start_state.toInt());
2020-03-17 17:54:57 +01:00
//analogWriteFreq(32000);
2020-06-11 22:51:34 +02:00
jsonWriteStr(configLiveJson, "pwm" + pwm_number, start_state);
2019-12-24 11:53:26 +03:00
2020-05-02 12:20:30 +02:00
createWidget (widget_name, page_name, page_number, "widgets/widget.range.json", "pwm" + pwm_number);
2019-12-24 11:53:26 +03:00
}
void pwmSet() {
String pwm_number = sCmd.next();
String pwm_state = sCmd.next();
int pwm_state_int = pwm_state.toInt();
2020-06-11 22:51:34 +02:00
int pin = jsonReadInt(configOptionJson, "pwm_pin" + pwm_number);
2019-12-24 11:53:26 +03:00
analogWrite(pin, pwm_state_int);
2020-05-02 12:20:30 +02:00
eventGen ("pwm", pwm_number);
2019-12-24 11:53:26 +03:00
2020-06-11 22:51:34 +02:00
jsonWriteStr(configLiveJson, "pwm" + pwm_number, pwm_state);
2020-05-02 12:20:30 +02:00
sendSTATUS("pwm" + pwm_number, pwm_state);
2019-12-24 11:53:26 +03:00
}
//==================================================================================================================
//==========================================Модуль физической кнопки================================================
void switch_ () {
String switch_number = sCmd.next();
String switch_pin = sCmd.next();
String switch_delay = sCmd.next();
buttons[switch_number.toInt()].attach(switch_pin.toInt());
buttons[switch_number.toInt()].interval(switch_delay.toInt());
but[switch_number.toInt()] = true;
}
void handleButton() {
static uint8_t switch_number = 1;
if (but[switch_number]) {
buttons[switch_number].update();
if (buttons[switch_number].fell()) {
2020-05-02 12:20:30 +02:00
eventGen ("switch", String(switch_number));
2019-12-24 11:53:26 +03:00
2020-06-11 22:51:34 +02:00
jsonWriteStr(configLiveJson, "switch" + String(switch_number), "1");
2019-12-24 11:53:26 +03:00
}
if (buttons[switch_number].rose()) {
2020-05-02 12:20:30 +02:00
eventGen ("switch", String(switch_number));
2019-12-24 11:53:26 +03:00
2020-06-11 22:51:34 +02:00
jsonWriteStr(configLiveJson, "switch" + String(switch_number), "0");
2019-12-24 11:53:26 +03:00
}
}
switch_number++;
if (switch_number == NUM_BUTTONS) switch_number = 0;
}
//=====================================================================================================================================
2020-02-13 20:20:34 +03:00
//=========================================Добавление окна ввода цифры=================================================================
2020-02-08 02:45:35 +03:00
void inputDigit() {
2019-12-24 11:53:26 +03:00
String value_name = sCmd.next();
2020-02-08 02:45:35 +03:00
String number = value_name.substring(5);
2020-03-24 19:01:11 +01:00
String widget_name = sCmd.next();
widget_name.replace("#", " ");
2019-12-24 11:53:26 +03:00
String page_name = sCmd.next();
2020-02-08 02:45:35 +03:00
page_name.replace("#", " ");
String start_state = sCmd.next();
2019-12-24 11:53:26 +03:00
String page_number = sCmd.next();
2020-06-11 22:51:34 +02:00
jsonWriteStr(configLiveJson, "digit" + number, start_state);
2020-05-02 12:20:30 +02:00
createWidget (widget_name, page_name, page_number, "widgets/widget.inputNum.json", "digit" + number);
2019-12-24 11:53:26 +03:00
}
2020-02-08 02:45:35 +03:00
void digitSet() {
2019-12-24 11:53:26 +03:00
String number = sCmd.next();
2020-02-08 02:45:35 +03:00
String value = sCmd.next();
2020-06-11 22:51:34 +02:00
jsonWriteStr(configLiveJson, "digit" + number, value);
2020-05-02 12:20:30 +02:00
sendSTATUS("digit" + number, value);
2019-12-24 11:53:26 +03:00
}
2020-02-13 20:20:34 +03:00
//=====================================================================================================================================
//=========================================Добавление окна ввода времени===============================================================
void inputTime() {
String value_name = sCmd.next();
String number = value_name.substring(4);
2020-03-24 19:01:11 +01:00
String widget_name = sCmd.next();
widget_name.replace("#", " ");
2020-02-13 20:20:34 +03:00
String page_name = sCmd.next();
page_name.replace("#", " ");
String start_state = sCmd.next();
String page_number = sCmd.next();
2020-06-11 22:51:34 +02:00
jsonWriteStr(configLiveJson, "time" + number, start_state);
2020-05-02 12:20:30 +02:00
createWidget (widget_name, page_name, page_number, "widgets/widget.inputTime.json", "time" + number);
2020-02-13 20:20:34 +03:00
}
void timeSet() {
String number = sCmd.next();
String value = sCmd.next();
2020-06-11 22:51:34 +02:00
jsonWriteStr(configLiveJson, "time" + number, value);
2020-05-02 12:20:30 +02:00
sendSTATUS("time" + number, value);
2020-02-13 20:20:34 +03:00
}
2020-03-01 20:41:16 +03:00
void handle_time_init() {
ts.add(TIME, 1000, [&](void*) {
String tmp = GetTime();
2020-06-11 22:51:34 +02:00
jsonWriteStr(configLiveJson, "time", tmp);
2020-03-01 20:41:16 +03:00
tmp.replace(":", "-");
2020-06-11 22:51:34 +02:00
jsonWriteStr(configLiveJson, "timenow", tmp);
2020-05-02 12:20:30 +02:00
eventGen ("timenow", "");
2020-03-01 20:41:16 +03:00
}, nullptr, true);
}
2019-12-24 11:53:26 +03:00
//=====================================================================================================================================
//=========================================Добавление текстового виджета============================================================
void text() {
String number = sCmd.next();
2020-03-24 19:01:11 +01:00
String widget_name = sCmd.next();
2019-12-24 11:53:26 +03:00
String page_name = sCmd.next();
String page_number = sCmd.next();
2020-05-02 12:20:30 +02:00
createWidget (widget_name, page_name, page_number, "widgets/widget.anyData.json", "text" + number);
2019-12-24 11:53:26 +03:00
}
void textSet() {
String number = sCmd.next();
String text = sCmd.next();
text.replace("_", " ");
if (text.indexOf("-time") >= 0) {
text.replace("-time", "");
2020-03-01 20:41:16 +03:00
text.replace("#", " ");
2019-12-24 11:53:26 +03:00
String time = GetTime();
time.replace(":", ".");
2020-03-01 20:41:16 +03:00
text = text + " " + GetDataDigital() + " " + time;
2019-12-24 11:53:26 +03:00
}
2020-06-11 22:51:34 +02:00
jsonWriteStr(configLiveJson, "text" + number, text);
2020-05-02 12:20:30 +02:00
sendSTATUS("text" + number, text);
2019-12-24 11:53:26 +03:00
}
2020-03-16 00:00:59 +01:00
//=====================================================================================================================================
//=========================================Модуль шагового мотора======================================================================
2020-05-20 02:16:23 +02:00
#ifdef stepper_enable
2020-03-16 00:00:59 +01:00
//stepper 1 12 13
void stepper() {
String stepper_number = sCmd.next();
String pin_step = sCmd.next();
String pin_dir = sCmd.next();
2020-06-11 22:51:34 +02:00
jsonWriteStr(configOptionJson, "stepper" + stepper_number, pin_step + " " + pin_dir);
2020-03-16 00:00:59 +01:00
pinMode(pin_step.toInt(), OUTPUT);
pinMode(pin_dir.toInt(), OUTPUT);
}
//stepperSet 1 100 5
void stepperSet() {
String stepper_number = sCmd.next();
String steps = sCmd.next();
2020-06-11 22:51:34 +02:00
jsonWriteStr(configOptionJson, "steps" + stepper_number, steps);
2020-03-16 00:00:59 +01:00
String stepper_speed = sCmd.next();
2020-06-11 22:51:34 +02:00
String pin_step = selectToMarker (jsonReadStr(configOptionJson, "stepper" + stepper_number), " ");
String pin_dir = deleteBeforeDelimiter (jsonReadStr(configOptionJson, "stepper" + stepper_number), " ");
2020-03-17 00:54:27 +01:00
Serial.println(pin_step);
Serial.println(pin_dir);
2020-03-16 00:00:59 +01:00
if (steps.toInt() > 0) digitalWrite(pin_dir.toInt(), HIGH);
if (steps.toInt() < 0) digitalWrite(pin_dir.toInt(), LOW);
2020-03-17 00:54:27 +01:00
if (stepper_number == "1") {
ts.add(STEPPER1, stepper_speed.toInt(), [&](void*) {
2020-06-11 22:51:34 +02:00
int steps_int = abs(jsonReadInt(configOptionJson, "steps1") * 2);
2020-03-17 00:54:27 +01:00
static int count;
count++;
2020-06-11 22:51:34 +02:00
String pin_step = selectToMarker (jsonReadStr(configOptionJson, "stepper1"), " ");
2020-03-17 00:54:27 +01:00
digitalWrite(pin_step.toInt(), !digitalRead(pin_step.toInt()));
2020-04-22 20:35:50 +02:00
yield();
2020-03-17 00:54:27 +01:00
if (count > steps_int) {
digitalWrite(pin_step.toInt(), LOW);
ts.remove(STEPPER1);
count = 0;
}
}, nullptr, true);
}
2020-03-17 17:54:57 +01:00
if (stepper_number == "2") {
2020-03-17 00:54:27 +01:00
ts.add(STEPPER2, stepper_speed.toInt(), [&](void*) {
2020-06-11 22:51:34 +02:00
int steps_int = abs(jsonReadInt(configOptionJson, "steps2") * 2);
2020-03-17 00:54:27 +01:00
static int count;
count++;
2020-06-11 22:51:34 +02:00
String pin_step = selectToMarker (jsonReadStr(configOptionJson, "stepper2"), " ");
2020-03-17 00:54:27 +01:00
digitalWrite(pin_step.toInt(), !digitalRead(pin_step.toInt()));
2020-04-22 20:35:50 +02:00
yield();
2020-03-17 00:54:27 +01:00
if (count > steps_int) {
digitalWrite(pin_step.toInt(), LOW);
ts.remove(STEPPER2);
count = 0;
}
}, nullptr, true);
2020-03-16 00:00:59 +01:00
}
}
2020-05-20 02:16:23 +02:00
#endif
//====================================================================================================================================================
//=================================================================Сервоприводы=======================================================================
#ifdef servo_enable
2020-04-25 16:39:36 +02:00
//servo 1 13 50 Мой#сервопривод Сервоприводы 0 100 0 180 2
void servo_() {
String servo_number = sCmd.next();
String servo_pin = sCmd.next();
String start_state = sCmd.next();
int start_state_int = start_state.toInt();
String widget_name = sCmd.next();
String page_name = sCmd.next();
String min_value = sCmd.next();
String max_value = sCmd.next();
String min_deg = sCmd.next();
String max_deg = sCmd.next();
String page_number = sCmd.next();
2020-06-11 22:51:34 +02:00
jsonWriteStr(configOptionJson, "servo_pin" + servo_number, servo_pin);
2020-04-25 16:39:36 +02:00
start_state_int = map(start_state_int, min_value.toInt(), max_value.toInt(), min_deg.toInt(), max_deg.toInt());
if (servo_number == "1") {
#ifdef ESP8266
myServo1.attach(servo_pin.toInt());
myServo1.write(start_state_int);
#endif
#ifdef ESP32
myServo1.attach(servo_pin.toInt(), 500, 2400);
myServo1.write(start_state_int);
#endif
}
if (servo_number == "2") {
#ifdef ESP8266
myServo2.attach(servo_pin.toInt());
myServo2.write(start_state_int);
#endif
#ifdef ESP32
myServo2.attach(servo_pin.toInt(), 500, 2400);
myServo2.write(start_state_int);
#endif
}
2020-02-10 01:06:18 +03:00
2020-06-11 22:51:34 +02:00
jsonWriteStr(configOptionJson, "s_min_val" + servo_number, min_value);
jsonWriteStr(configOptionJson, "s_max_val" + servo_number, max_value);
jsonWriteStr(configOptionJson, "s_min_deg" + servo_number, min_deg);
jsonWriteStr(configOptionJson, "s_max_deg" + servo_number, max_deg);
2020-04-25 16:39:36 +02:00
2020-06-11 22:51:34 +02:00
jsonWriteStr(configLiveJson, "servo" + servo_number, start_state);
2020-04-25 16:39:36 +02:00
2020-05-02 12:20:30 +02:00
createWidgetParam (widget_name, page_name, page_number, "widgets/widget.range.json", "servo" + servo_number, "min", min_value, "max", max_value, "k", "1");
2020-04-25 16:39:36 +02:00
}
void servoSet() {
String servo_number = sCmd.next();
String servo_state = sCmd.next();
int servo_state_int = servo_state.toInt();
2020-06-11 22:51:34 +02:00
int pin = jsonReadInt(configOptionJson, "servo_pin" + servo_number);
2020-04-25 16:39:36 +02:00
servo_state_int = map(servo_state_int,
2020-06-11 22:51:34 +02:00
jsonReadInt(configOptionJson, "s_min_val" + servo_number),
jsonReadInt(configOptionJson, "s_max_val" + servo_number),
jsonReadInt(configOptionJson, "s_min_deg" + servo_number),
jsonReadInt(configOptionJson, "s_max_deg" + servo_number));
2020-04-25 16:39:36 +02:00
if (servo_number == "1") {
#ifdef ESP8266
myServo1.write(servo_state_int);
#endif
#ifdef ESP32
myServo1.write(servo_state_int);
#endif
}
if (servo_number == "2") {
#ifdef ESP8266
myServo2.write(servo_state_int);
#endif
#ifdef ESP32
myServo2.write(servo_state_int);
#endif
}
//Serial.println(servo_state_int);
2020-05-02 12:20:30 +02:00
eventGen ("servo", servo_number);
2020-04-25 16:39:36 +02:00
2020-06-11 22:51:34 +02:00
jsonWriteStr(configLiveJson, "servo" + servo_number, servo_state);
2020-05-02 12:20:30 +02:00
sendSTATUS("servo" + servo_number, servo_state);
2020-04-25 16:39:36 +02:00
}
2020-05-20 02:16:23 +02:00
#endif
//====================================================================================================================================================
//===================================================================================serial===========================================================
#ifdef serial_enable
2020-05-04 15:57:54 +02:00
void serialBegin() {
2020-05-19 21:13:54 +02:00
//String s_speed = sCmd.next();
2020-05-04 15:57:54 +02:00
//String rxPin = sCmd.next();
//String txPin = sCmd.next();
//SoftwareSerial mySerial(rxPin.toInt(), txPin.toInt());
2020-05-19 21:13:54 +02:00
//mySerial.begin(s_speed.toInt());
2020-05-04 15:57:54 +02:00
}
void serialWrite() {
2020-05-20 02:16:23 +02:00
//String text = sCmd.next();
//mySerial.println(text);
2020-05-04 15:57:54 +02:00
}
2020-05-20 02:16:23 +02:00
#endif
2020-02-10 01:06:18 +03:00
//====================================================================================================================================================
2019-12-24 11:53:26 +03:00
//=================================================Глобальные команды удаленного управления===========================================================
void mqttOrderSend() {
String id = sCmd.next();
String order = sCmd.next();
2020-06-11 22:51:34 +02:00
String all_line = jsonReadStr(configSetupJson, "mqttPrefix") + "/" + id + "/order";
2019-12-24 11:53:26 +03:00
//Serial.print(all_line);
//Serial.print("->");
//Serial.println(order);
2020-05-02 12:20:30 +02:00
int send_status = client_mqtt.publish (all_line.c_str(), order.c_str(), false);
2019-12-24 11:53:26 +03:00
}
void httpOrderSend() {
String ip = sCmd.next();
String order = sCmd.next();
order.replace("_", "%20");
String url = "http://" + ip + "/cmd?command=" + order;
getURL(url);
}
2020-05-20 02:16:23 +02:00
void update_firmware() {
upgrade = true;
}
2019-12-24 11:53:26 +03:00
2020-05-20 02:16:23 +02:00
void firmware() {
String widget_name = sCmd.next();
String page_name = sCmd.next();
String page_number = sCmd.next();
2020-06-11 22:51:34 +02:00
jsonWriteStr(configLiveJson, "firm1", firmware_version);
2020-05-20 02:16:23 +02:00
choose_widget_and_create(widget_name, page_name, page_number, "any-data", "firm1");
}
2019-12-24 11:53:26 +03:00
//==============================================================================================================================
//============================выполнение команд (в лупе) по очереди из строки order=============================================
void handleCMD_loop() {
if (order_loop != "") {
String tmp = selectToMarker(order_loop, ","); //выделяем из страки order первую команду rel 5 1,
sCmd.readStr(tmp); //выполняем первую команду
Serial.println("[ORDER] => " + order_loop);
order_loop = deleteBeforeDelimiter(order_loop, ","); //осекаем выполненную команду
}
}
//=======================================================================================================================================
//=======================================================================================================================================
void txtExecution(String file) {
2020-04-25 16:39:36 +02:00
String command_all = readFile(file, 2048) + "\r\n";
2019-12-24 11:53:26 +03:00
command_all.replace("\r\n", "\n");
command_all.replace("\r", "\n");
while (command_all.length() != 0) {
String tmp = selectToMarker (command_all, "\n");
sCmd.readStr(tmp);
command_all = deleteBeforeDelimiter(command_all, "\n");
}
command_all = "";
2019-12-24 11:53:26 +03:00
}
2020-03-24 19:01:11 +01:00
2019-12-24 11:53:26 +03:00
void stringExecution(String str) {
2020-03-24 19:01:11 +01:00
str = str + "\r\n";
2019-12-24 11:53:26 +03:00
2020-03-24 19:01:11 +01:00
str.replace("\r\n", "\n");
str.replace("\r", "\n");
2019-12-24 11:53:26 +03:00
2020-03-24 19:01:11 +01:00
while (str.length() != 0) {
2019-12-24 11:53:26 +03:00
2020-03-24 19:01:11 +01:00
String tmp = selectToMarker (str, "\n");
2019-12-24 11:53:26 +03:00
sCmd.readStr(tmp);
2020-05-04 15:57:54 +02:00
2020-03-24 19:01:11 +01:00
str = deleteBeforeDelimiter(str, "\n");
2019-12-24 11:53:26 +03:00
}
}