Leonid
Это то, что в мире сейчас творится
Max
это что такое?
Эмпирическое наблюдение. "Не стоит приписывать злому умыслу то, что можно объяснить банальной глупостью."
Slava
почитал 3 минуты, суть понял
Ruslan
ну, если понаблюдать, другого вывода не видно
Max
В среднем по больнице - да. Но нельзя исключать комбинаций.
iҚØN🐾🐾
https://github.com/rampa069/ZX-ESPectrum
Vladimir (Mirivlad)
https://github.com/rampa069/ZX-ESPectrum
там есть более продвинутый форк, в плане фич. не помню как точно, но в названии есть Wii
iҚØN🐾🐾
Не, wii это другой проект вроде
Vladimir (Mirivlad)
Не, wii это другой проект вроде
форк от рампы. в т.ч. с поддержкой sd карты, эмулем AY, поддержкой z80 и tap формата. и это именно форк.
iҚØN🐾🐾
Ясно. Было бы прикольно посмотреть)
Vladimir (Mirivlad)
Ясно. Было бы прикольно посмотреть)
https://github.com/dcrespo3d/ZX-ESPectrum-Wiimote
iҚØN🐾🐾
Спс
iҚØN🐾🐾
Видео прикольное, все подробно описывается) https://www.youtube.com/watch?v=ROthljwC5OA
Алексей
https://github.com/rampa069/ZX-ESPectrum
Когда то такое собрал. С дисководом, и дюралевым корпусом с клавиатурой. Давно было :)
Александр
ребята кому не трудно - можете посмотреть почему я не могу отправить пакет( не понимаю
Александр
// структура данных посылки struct SendData { const char * Pack; byte crc; // байт контрольной суммы }; SendData Send; byte crc8(String stringData) { int len = stringData.length(); int i = 0; byte crc = 0x00; //Serial.print("(0:" + stringData + ")\n"); while (len--) { byte extract; extract = (byte) stringData.charAt(i++); for (byte tempI = 8; tempI; tempI--) { byte sum = (crc ^ extract) & 0x01; crc >>= 1; if (sum) { crc ^= 0x8C; } extract >>= 1; } } return crc; } SendData Send; Send.Pack=ssid+"_"+password+"_"+urlpost+"_"+enablurlpost+"_"+urlposteverysec+"_"+restarteverysecfailpost+"_"+enablrestarteverysecfailpost+"_" // расчёт CRC (без последнего байта) byte crc = crc8((Send.Pack)); Send.crc = crc; // пакуем в посыfлку Serial2.write((byte*)&Send, sizeof(Send)); //USB,
Александр
могу отправить скетч целиком. скетч компилируется
Serg
Передавай правильную длину посылки
Александр
byte crc8(String stringData) и byte crc = crc8((Send.Pack)); - const char * так вообще можно?
Александр
это все работает если я передаю только цифры. когда в структуре например не строчка а число
Serg
byte crc8(String stringData) и byte crc = crc8((Send.Pack)); - const char * так вообще можно?
Не надо. Ты в расчете crc используешь длину строки. Так передай в send длину строки + 1 байт.
Serg
Sizeof (char *) - это 2 байта. Скорее всего. Никогда не мерял на esp. Введи в дебаг и посмотри
Александр
ничего не понимаю.
Александр
почему пустой пакет
Александр
хотя я показываю что в нутри есть данные когда формирую строчку
Serg
хотя я показываю что в нутри есть данные когда формирую строчку
Убери c_str. Если в остальных параметрах склеиваемой строки все норм, то должно вывести строку.
Александр
так я собрать не могу
Александр
потому что ни String
Serg
Send убери. Сначала понять надо, строка у тебя сформирована или нет
Александр
String ssid=""; String password=""; String mqttserver=""; String mqttport="0"; String mqttuserid=""; String mqttusername=""; String mqttpassword=""; String urlpost=""; String enablurlpost=""; String urlposteverysec=""; String restarteverysecfailpost=""; String enablrestarteverysecfailpost="";
Александр
ок
Serg
так я собрать не могу
В send передашь адрес
Александр
Александр
хм)
Александр
заработало. через доп переменную
Александр
а почему сразу не работало я так и не понял
Александр
В send передашь адрес
спасибо. сейчас попробую посмотреть передается ли во вторую есп
Александр
Александр
приходит какая то каша
Александр
принимаю вот так void loop() { // put your main code here, to run repeatedly: if (Serial2.readBytes((byte*)&Send, sizeof(Send))) { // читаем дату byte crc =Send.crc; Serial.println(Send.Pack); } }
Александр
// структура данных посылки struct SendData { const char * Pack; byte crc; // байт контрольной суммы }; SendData Send;
Александр
даже ему подкинул приемнику по умолчанию те же данные что и отправляю. все равно какая то ерунда
Serg
Serial2 - это кто?
Александр
UART2 аппаратный
Александр
Serial - это UART0
Александр
попробую для начала передать через println("123"); и там принять как текст по символьно. проверить вообще связь
Mr.Mait
// структура данных посылки struct SendData { const char * Pack; byte crc; // байт контрольной суммы }; SendData Send;
А ты выведи в консоль sizeof этой структуры, сильно удивишься :)
Serg
попробую для начала передать через println("123"); и там принять как текст по символьно. проверить вообще связь
В send просто передавай указатель. Сейчас у тебя там адрес, в котором хранится указатель
Serg
Потрать немного времени, разберись, что такое указатели, что они хранят в своем значении, что такое операция взятия адреса &
Александр
Mr.Mait
У тебя получается так. Когда передаешь структуру, то ты начинаешь с его адреса, но грубо говоря методе write не понимает что в структуре есть ещё один указатель с текстом на другую область памяти
Александр
если так отправлять и принимать то все приходит
Александр
может быть нужно добавит timeout
Александр
на приемнике. я же целиком не принял данные
Александр
сейчас верну как было+паузу
Александр
Serial.setTimeout()
Александр
имею ввижу
Александр
на приемнике
Serg
Тяжело с телефона смотреть
Serg
на приемнике
Отправь отдельно строку. Потом crc
Serg
Структура с указателем на строку в памяти предстпвоена как 2 (или 4) байта адреса, с которого начинается строка. Следом сразу идёт crc. 1 байта. Когда начинаешь передавать адрес структуры (это у тебя было верно), передаешь значение указателя (то есть адрес первого символа строки) + байт crc + мусор из памяти
Александр
таймаут не помогло
Александр
я не понимаю пока
Serg
Отправь отдельно строку. Потом crc
Вот так попробуй вместо передачи структуры
Serg
я не понимаю пока
Набери меня сегодня после 19мск. Если не разбноешься. Голосом проще объяснить
Serg
5 минут хватит
Александр
я получается передаю 1 байт данных+сrc 1 бат. вместо норм данных
Александр
ну даже не данные а только указатель
Mr.Mait
пытаюсь переварить но я не такой профи как Вы
Тогда советую пока оставить структуру и по отдельности передавать. А по теме советую почитать - указатели, структуры, как работает sizeof для структур и указателей, выравнивание структур и ещё POD(простая структура данных)