#include <Arduino.h>
/**
pinMode(ledPin2, OUTPUT);
const int ledPin2 = 2;
char big_data[60000] = "val="; //Объявляет большой буфер и задаёт начальное значение
sprintf(...) //Добавляет в конец форматированную строку
memset(big_data, 0, sizeof(big_data)); //Обнуляет (очищает) строку
strcat(big_data, "val="); //Снова начинает строку с "val=" после очистки
char letter = 'X';
int number = 42;
float temp = 23.4567;
char name[] = "ESP32";
char buffer[100];
sprintf(buffer, "Char: %c, Int: %d, Float: %.2f, String: %s", letter, number, temp, name);
float some_data = %.2f
millis() = %d
String name = "ESP32";
sprintf(buffer, "Name: %s", name.c_str());
String name = "ESP32";
name.reserve(5000); // резервируем память для предотвращения фрагментации!
*/
String big_data = "";
int loop_counter = 0;
void setup() {
big_data.reserve(80000); // резервируем 5000 бит
Serial.begin(115200);
}
void loop() {
loop_counter++;
Serial.println(loop_counter);
if(loop_counter == 20){
Serial.println(big_data);
loop_counter = 0;
big_data = "";
}
byte request[] = {
0x4e, 0x57, 0x00, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x01, 0x79, 0x0c, 0x01, 0x0c, 0xce, 0x02, 0x0c, 0xcf, 0x03,
0x0c, 0xd1, 0x04, 0x0c, 0xce, 0x80, 0x00, 0x17, 0x81, 0x00, 0x16, 0x82, 0x00, 0x16, 0x83, 0x05, 0x1f, 0x84, 0x00, 0x00,
0x85, 0x5f, 0x86, 0x02, 0x87, 0x00, 0x01, 0x89, 0x00, 0x00, 0x00, 0xd2, 0x8a, 0x00, 0x04, 0x8b, 0x00, 0x00, 0x8c, 0x00,
0x02, 0x8e, 0x05, 0x44, 0x8f, 0x04, 0x10, 0x90, 0x0d, 0x2a, 0x91, 0x0c, 0xc6, 0x92, 0x00, 0x03, 0x93, 0x0a, 0x28, 0x94,
0x0a, 0x8c, 0x95, 0x00, 0x03, 0x96, 0x01, 0x2c, 0x97, 0x00, 0x64, 0x98, 0x01, 0x2c, 0x99, 0x00, 0x19, 0x9a, 0x00, 0x1e,
0x9b, 0x0b, 0xb8, 0x9c, 0x00, 0x0a, 0x9d, 0x01, 0x9e, 0x00, 0x64, 0x9f, 0x00, 0x50, 0xa0, 0x00, 0x3d, 0xa1, 0x00, 0x3c,
0xa2, 0x00, 0x14, 0xa3, 0x00, 0x38, 0xa4, 0x00, 0x3d, 0xa5, 0x00, 0x00, 0xa6, 0x00, 0x01, 0xa7, 0xff, 0xec, 0xa8, 0xff,
0xf6, 0xa9, 0x04, 0xaa, 0x00, 0x00, 0x00, 0x98, 0xab, 0x00, 0xac, 0x01, 0xad, 0x03, 0x9d, 0xae, 0x01, 0xaf, 0x00, 0xb0,
0x00, 0x0a, 0xb1, 0x14, 0xb2, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x00, 0x00, 0x00, 0x00, 0xb3, 0x00, 0xb4, 0x49, 0x6e,
0x70, 0x75, 0x74, 0x20, 0x55, 0x73, 0xb5, 0x32, 0x34, 0x31, 0x30, 0xb6, 0x00, 0x03, 0xfa, 0x1c, 0xb7, 0x31, 0x31, 0x41,
0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x53, 0x31, 0x31, 0x2e, 0x35, 0x34, 0x5f, 0xb8, 0x00, 0xb9, 0x00, 0x00, 0x00, 0x98, 0xba,
0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x55, 0x73, 0x65, 0x72, 0x64, 0x61, 0x34, 0x30, 0x37, 0x31, 0x36, 0x34, 0x33, 0x30,
0x32, 0x34, 0x38, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x48, 0x0b
};
String b1 = String((request[14] << 8) | request[15]); // 14 значит 15 и 16
String b2 = String((request[17] << 8) | request[18]); // 16 значит 17 и 18
String b3 = String((request[20] << 8) | request[21]); // 19 значит 20 и 21
String b4 = String((request[23] << 8) | request[24]); // 22 значит 23 и 24
String total_voltage = String((request[35] << 8) | request[36]); // 83 | 34 значит 35 и 36
String current = String((request[38] << 8) | request[39]); // 84 ячейка | 37 номер массива (38 39)
String soc = String(request[41]); // 85 | 40 номер массива (41)
String battery_temp = String((request[32] << 8) | request[33]); // 82 | 31 номер массива (32 33)
String mosfet_temp = String((request[26] << 8) | request[27]); // 80 | 25 (26 b 27)
String discharging_on_off = String(request[151]); // ac | 150 (151)
String charging_on_off = String(request[149]); // ab | 148 (149)
big_data += "{b1:"+b1+" b2:"+b2+" b3:"+b3+" b4:"+b4+" tv:"+total_voltage+" c:"+current+" soc:"+soc+" bt:"+battery_temp+" mt:"+mosfet_temp+" disch:"+discharging_on_off+" cha:"+charging_on_off+"}\r\n";
delay(2000); // this speeds up the simulation
}