Вывод на экран

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

Всем доброго времени суток!

Прошу, о уважаемые эксперты, не злиться на меня из-за создания столь пустячной темы, но я определённо что-то упускаю, а что именно не понимаю.

Суть вот в чём:

По шине UART подключен дисплей Nextion. Редактором интерфейсов были сзданы 2 ползунка (слайдера), которые сообщают текущий угол поворота валов двух сервоприводов (прим.: взаимодействие дисплея и кода налажено, обработчик работает правильно).

В ходе выполнения части кода void setup() с дисплея снимаются положения ползунков (от 0 до 180, изначально выставлено в 0) и выводятся на экран командой Serial.println(softSerial.read()); и всё работает хорошо.

Но потом начинается петлевая функция loop(), в которой ардуино ожидает сигнал с дисплея, а затем раскладывает его в соотвтетствии с именем изменённого обекта:

void loop(){                                                                                   
    if(softSerial.available()>0){                                                              
        String str;                                                                            
        while(softSerial.available()){str+=char(softSerial.read()); delay(10);}                
        for(int i=0; i<str.length(); i++){ //Serial.println(i); delay(1000);                   
            if(memcmp(&str[i],"h0" ,2) == 0){i=i+5; Serial.println(str[i-3], DEC);}              
            else if(memcmp(&str[i],"h1" ,2) == 0){i=i+5; Serial.println(str[i-3], DEC);}   
        }                                                                                      
    }                                                                                          
}

Это всё работает правильно только до тех пор, пока ползунок не достигает значения 127, после чего, видимо, вследствие наступившего переполнения, на выводе появляется число -129 и начинает возрастать (к нулю).

Я перепробовал все свои соображения по этому поводу и, чувствую, упустил что-то мелкое, но важное из виду. Буду очень признателен за помощь!

P.S. Код и бьиблиотека взяты с сайта https://wiki.iarduino.ru/page/Nextion/

P.P.S. А ещё я не очень понимаю, как в образце они так ловко передали в качестве значения рабочего цикла  выхода pinVD1 (цифру нада) элемент из массива текстового формата, что, теоритически, ардуино не должна была понять.

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

А, что кода не будет? Вы предлагает нам его сами выискивать хрен знает где и сами догудаваться какой именно код Вы оттуда взяли и как поменяли?

mixail844
Offline
Зарегистрирован: 30.04.2012

Что в вашем понимании и в данном контексте значит "работает не правильно"?

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

Давайте по порядку:

1. необходимый код я представил (в отсутствующей части нет необходимости).

2. даже если вы хотите видеть весь код, то вам НЕ нужно думать, откуда бы его взять, поскольку я прикрепил ссылку на страницу, в конце которой находится всего ОДИН код, часть которого я представил (это максимально прозрачно.

3. дабы поберечь ваши нервы, прикладываю "столь необходимую" часть кода:

#include       <SoftwareSerial.h>                                                              // Подключаем библиотеку SoftwareSerial для работы с программным UART
const uint8_t  pinRX   = 2;  //подключать к TX ардуины                                         // Определяем константу хранящую номер вывода Arduino RX программного UART, подключается к выводу TX дисплея
const uint8_t  pinTX   = 3;  //подключать к RX ардуины                                         // Определяем константу хранящую номер вывода Arduino TX программного UART, подключается к выводу RX дисплея
//const uint8_t  pinVD1  = 6;                                                                    // Определяем константу хранящую номер вывода Arduino к которому подключён первый светодиод
//const uint8_t  pinVD2  = 7;                                                                    // Определяем константу хранящую номер вывода Arduino к которому подключён второй светодиод
//const uint8_t  pinR    = A0;                                                                   // Определяем константу хранящую номер вывода Arduino к которому подключён потенциометр
SoftwareSerial softSerial(pinRX,pinTX);                                                        // Объявляем объект softSerial с указанием выводов RX и TX по которым общаемся с дисплеем
                                                                                               //
void setup(){                                                                                  //
Serial.begin(19200);
Serial.println("1");
//  Подготовка:                                                                                //
    softSerial.begin(9600);                                                                    // Инициируем передачу данных по программному UART на скорости 9600 бит/сек
Serial.println("2");
//    pinMode(pinVD1, OUTPUT);                                                                   // Конфигурируем вывод pinVD1 как выход
//    pinMode(pinVD2, OUTPUT);                                                                   // Конфигурируем вывод pinVD2 как выход
//  Устанавливаем состояние первого светодиода:                                                //
    softSerial.print((String) "print h0.val"+char(255)+char(255)+char(255));                   // Отправляем команду дисплею: print h0.val заканчивая её тремя байтами 0xFF

    while(!softSerial.available()){Serial.println("3");}                                                           // Ждём ответа. Дисплей должен вернуть состояние слайдера h0, отправив 4 байта данных
Serial.println(softSerial.read());  delay(10);
//    analogWrite(pinVD1, softSerial.read());          delay(10);                                // Устанавливаем на выводе pinVD1 сигнал ШИМ с коэффициентом заполнения равным значению первого принятого байта ответа дисплея
    while(softSerial.available()){softSerial.read(); delay(10);}                               // Читаем остальные 3 байта ответа ничего с ними не делая, так как установленный диапазон значений слайдера от 0 до 255 уместился в первом байте данных
//  Устанавливаем состояние второго светодиода:                                                //
    softSerial.print((String) "print h1.val"+char(255)+char(255)+char(255));                  // Отправляем команду дисплею: «print bt0.val» заканчивая её тремя байтами 0xFF
    while(!softSerial.available()){Serial.println("4");}                                                           // Ждём ответа. Дисплей должен вернуть состояние кнопки bt0, отправив 4 байта данных, где 1 байт равен 0x01 или 0x00, а остальные 3 равны 0x00
Serial.println(softSerial.read());  delay(10);
//    digitalWrite(pinVD2, softSerial.read());         delay(10);                                // Устанавливаем на выводе pinVD2 состояние в соответствии с первым принятым байтом ответа дисплея
    while(softSerial.available()){softSerial.read(); delay(10);}                               // Читаем остальные 3 байта ответа ничего с ними не делая, так как состояние кнопки было передано в первом байте
}                                                                                              //
                                                                                               //
void loop(){                                                                                   //
    if(softSerial.available()>0){                                                              // Если есть данные принятые от дисплея, то ...
        String str;                                                                            // Объявляем строку для получения этих данных
        while(softSerial.available()){str+=char(softSerial.read()); delay(10);}                // Читаем принятые от дисплея данные побайтно в строку str
        for(int i=0; i<str.length(); i++){ //Serial.println(i); delay(1000);                   // Проходимся по каждому символу строки str
            if(memcmp(&str[i],"h0" ,2) == 0){i=i+5; Serial.println(str[i-3], DEC);}              // Если в строке str начиная с символа i находится текст "h0",  значит после него следует 4 символа (байта) данных слайдера, первый из который следует указать как ШИМ для вывода pinVD1
            else if(memcmp(&str[i],"h1" ,2) == 0){i=i+5; Serial.println(str[i-3], DEC);}//else          // Если в строке str начиная с символа i находится текст "ON",  значит кнопка дисплея была включена, устанавливаем высокий уровень на выводе pinVD2
//            if(memcmp(&str[i],"OFF",3)==0){i+=2; digitalWrite(pinVD2, LOW);     }              // Если в строке str начиная с символа i находится текст "OFF", значит кнопка дисплея была выключена, устанавливаем низкий уровень на выводе pinVD2
        }                                                                                      //
    }                                                                                          //
//    if(millis()%500<=5){delay(5);                                                              // Следующее действие выполняем каждые пол секунды
//    softSerial.print((String)"t0.txt=\""+analogRead(pinR)+"\""+char(255)+char(255)+char(255)); // Отправляем команду дисплею: «t0.txt="текст"» заканчивая её тремя байтами 0xFF. Эта команда устанавливает значение для текстового поля t0
//    }                                                                                          // В качестве текста передаётся значение в аналогового входа pinR считанное функцией analogRead
}

 

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

Это означает, что поставленная задача не решается, либо решается частично. Существует, как описано мной ранее, задача по выводу на экран значения положения ползунка на дисплее nextion (от 0 до 180 с шагом 1); программа считывает значения (побайтно) и "пытается" перевести их в число, но не выходит - начиная с положения ползунка, равного 128 ардуино выводит на экран -129, -128, -127 и так далее, при том, что должно выводить 128, 129, 130 и так далее.

Именно это я назвал бы "неправильной работой" - задача решается на (127/180*100)%

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

Ромуальд VII пишет:

Давайте по порядку:

Давайте.

Ромуальд VII пишет:

1. необходимый код я представил (в отсутствующей части нет необходимости).

Если бы у Вас была квалификация, достаточная для того, чтобы определить в какой части кода проблема, то этого поста бы не было вовсе. Вам так не кажется?

В куске кода используется куча переменных и нет их описаний - Бог его знает, какого они типа. Вы умеете разбираться в таких кодах? Я - нет.

Ромуальд VII пишет:

2. даже если вы хотите видеть весь код, то вам НЕ нужно думать, откуда бы его взять, поскольку я прикрепил ссылку на страницу

И я должен лазать по ссылкам? Вы ничего не перепутали? Это Ваша проблема или моя?

Ромуальд VII пишет:

3. дабы поберечь ваши нервы

Спасибо

Ромуальд VII пишет:

прикладываю "столь необходимую" часть кода:

Уже не надо.

После того, как Вы меня отчитали как мальчишку, ждите другого желающего Вам помогать, у меня есть другие занятия.

Удачи!

 

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

Я вас не отчитывал, я лишь указал на то, что вы придираетесь по чём зря, что контрпродуктивно.

По ссылкам лазить, вы, конечно же, не обязаны, но это, объективно, было бы быстрее, чем писать мне, что я должен перейти по той же ссылке, проматать вниз страницы, скопировать оттуда текст, перейти обратно сюда и вставить текст в спец. форму, чтобы только тогдаааа вы согласились изучить проблему; это сильно притормозило процесс.

По поводу моей квалификации - процесс локализации ошибок в коде называется отладкой и для этого нужно иметь уровень "новичок", который я уже давно прошёл, однако, вероятно, замыленный глаз не позволяет (на данный момент) увидеть ошибку, поскольку более глубокую отладку можно сделать только, разве что, изучив ассемблер, для чего нужно обладать не совсем среднего уровня интеллектом. Если вам интересно, локализовывалась проблема так: после каждой команды контроллер выводил на экран те, или иные цифры, которые удовлетворяли (или нет) ожиданиям; строка, предшествующая той, что передала неверный результат и есть ядро проблемы. По поводу несоздания поста - даже уберпрофессионалы иногда тупят, увы.

Вы говорите "куча переменных, нет их описаний и Бог знает, какого они типа"; отвечу так: а что конкретно вы там не увидели? Переменная str объявлена как string, данные, полученные с экрана объявлены как char, единица перебора массивов i не нуждается в объяснениях с тех пор, как стали нумеровать точки на оси X (иксы итые), str.length() можно просто перевести с английского, да и, в общем-то, на этом переменные и заканчиваются.

Не сочтите за грубость, но вы объективно придираетесь, причём это не в первый раз и не только в моём отношении :)

Чуть не забыл, огромное спасибо за помощь!

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Ромуальд VII пишет:
По поводу моей квалификации - процесс локализации ошибок в коде называется отладкой и для этого нужно иметь уровень "новичок", который я уже давно прошёл, однако, вероятно, замыленный глаз не позволяет (на данный момент) увидеть ошибку,
Ну по поводу квалификации уже не "новичок" в области программирования, особенно для Си, то тут появились у меня сомнения. Рассказывать Вам как проектировать такие програмы это неблагодарное занятие. ЕвгенийП просто ушел от этой неприятной ситуации.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Женя! Вот плохо ты помогаешь новичкам! Стыдно должно быть! ;) ;) ;) Тебе доверили, можно сказать, труд всей жизни, а ты какой-то "код" требуешь! Нехорошо.

"...сейчас к людЯм надо мягше, а вопросы смотреть ширше" (с).

--------------------------

2ТС: 128, а следующее значение -129, ничего тебе не говорит? Почитай букварь про двоичное представление, дополнительный код и отличие типов signed и unsigned... возможно найдешь свой путь к счастью.

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

Ну, блин, я же даже написал, что понимаю, что проблема в переполнении переменной, и знаю я что 2 в степени 8 это на самом деле +/-2 в степени 7. Исправить-то это как, если я не объявлял отдельной переменной для этого? считывать 2 байта или преобразовывать как-то хитро? В общем, по этому пути счатья я не нашёл, наверное, плохо искал.

Судя по вашим междусобойским шуткам, для вас это пустяковое дело; терпеть не могу, когда профессионалы начинают смеяться над непрофессионалами в ответ на просьбу о помощи.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Ромуальд VII пишет:
Судя по вашим междусобойским шуткам, для вас это пустяковое дело; терпеть не могу, когда профессионалы начинают смеяться над непрофессионалами в ответ на просьбу о помощи.
Так это такой случай когда для помощи в написании программы , надо гнать текущего программиста подальше, причем ногами и далеко.И что бы не тратить на это силы и нервы, то можно пошутить с коллегой стоя в толпе зрителей.

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

Наверное, это моя ошибка, но я не говорил, что я не новичок в си. Я не новичок в матлабе и паскале (но больше в матлабе), оттуда отладке и обучился (обучили). Про проектирование программ я и не спрашиваю даже - у меня по курсу есть предмет "оптимизация систем оснащения и далее, далее" и это такая тьма, что я даже не хочу думать про проектирование наиэффективнейших (по тем, или иным критериям) алгоритмов и управляющих последовательностей, а уж тем более, спрашивать у вас, основываясь на постулатах безвозмездной помощи (не порядочно это, как минимум).

А, вот, от какой конкретно ситуации ушёл ЕвгенийП, я не совсем понял - по моему, он просто обошёл ВСЕ мои вопросы по сути дела.

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

То есть, вы считаете, что человеку не нужно самообразовываться, а нужно, в случае, если у него что-то не получается, завязывать с этим делом, и, постулируя, что "это не моё" идти занимать чем-то другим?

Апплодисменты в студию, что ли.

Ну серьёзно, вы ввели меня в состояние негодования - вы советуете мне взять и прекратить самообразовываться; вернее, не так - вы говорите, что меня нужно пинками отгонять от программирования куда-нибудь к пираньям Амазонии.

А в чём помощь-то тогда? Проблема-то останется нерешённой. Вы, простите, перевираете смысл помощи.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Ромуальд VII пишет:
По шине UART подключен дисплей Nextion. Редактором интерфейсов были сзданы 2 ползунка (слайдера), которые сообщают текущий угол поворота валов двух сервоприводов (прим.: взаимодействие дисплея и кода налажено, обработчик работает правильно).
Ничего не напоминает. У вас есть Ардуина и Nextion. Ардуина отвечает только за сервы и отравку положения в Nextion. А Ползунки уже находятся в ..... (где, догадаетесь.)

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

Не совсем - я такого не говорил. Ардуина отвечает за приём данных с дисплея и (в будущем, действительно, за поворот серв) передачу их на экран компьютера. Обратной связи нет! Собственный МК дисплея отображает новое положение ползунка своими силами и лишь даёт целеуказания; он не нуждается (пока что) в данных, подтверждающих поворот, иными словами - если серва не повернётся, дисплей об этом не скажет. 

Поэтому! где находятся ползунки вообще не имеет занчения - они посылают 4 байта данных по юарт и всё. (А вообще, вопрос я не понял - ползунки находятся в интерфейсе дисплея, созданном в Nextion editor)

mixail844
Offline
Зарегистрирован: 30.04.2012

Ещё раз, прошу разъясните , что бы все было однозначно.. Вот дошёл ползунок до 128..-129..-128 Случилось "переполнение"... Кроме как отрицательных значений в Serial Monitor ваша неправильность, как то еще проявляется?

Я к тому что, вы считываете переменную которая находиться в памяти модуля..потом значение этой переменной вам пересылаться по последовательно у порту, потом вы его выводите в SerialMonitor. То есть то что в Мониторе вы видите отрицательное число, не факт что оригинальная переменная с отрицательным значением.

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

Нет, больше ни в чём не проявляется.

В принципе, я изначально понимал, что дело именно в выводе на экран, а оригинальная переменная генерируется правильно, но вы навели меня на мою возможную неправоту поэтому поводу; впрочем, как говорит инструкция, по юарту могут быть отправлены любые значяения ползунка, и, при условии правильности прошивки встроенного в экран МК (почти 100%), это так и есть. Всё же, я склоняюсь к неправильности приёма отправляемой информации. Но с интерфейсом UART я познакомился, буквально, на днях, отсюда и тупые вопросы))

mixail844
Offline
Зарегистрирован: 30.04.2012

Сами переменные, которые определены в модуле, содержащие значения ползунков скольки байтные?
По ЮАРТУ-то, с ваших слов, передаётся 4 байта, но сколько из них служебные а сколько из них относяться к переменной, где расположены, и 4-ре ли?

В общем случае,вам надо собрать те последовательные байты в переменную типа которому они соответвуют(зависит от количества байт).
Делается это не сложно:битвыми операциями сдвига.

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

Уже поздно, и мыслю я туманненько, но вот вам кусок статьи, по которой я учусь: "В нашем случае, дисплею отправляется команда в виде строки: "print h0.val" после чего следуют три байта 0xFF = char(255). На что дисплей вернёт значение аргумента val элемента h0 уместив ответ в четырёх байтах. При редактировании атрибутов элементов мы указали что слайдер будет возвращать значения в диапазоне от 0 до 255 (minval=0, maxval=255), значит каким бы ни было положение его ползунка, значение аргумента val уместится в первом байте ответа (если бы мы присвоили аргументу maxval значение от 256 до 65535, то...

То есть, как я понял, мы можем отправить экрану любой запрос и он ответит в точности так же (как товарный поезд - сколько вагонов послали, столько и можно заполнить :) )

Но, видимо, в статье ошибка - ведь число 255 не уместится в байт, при условии, что байт, включающий отрицательные числа, ограничивается 127 значениями. Но как тогда экран пишет? В 2 байта?

А вы не могли бы описать процедуру битового сдвига? Я даже не слышал о таком.

mixail844
Offline
Зарегистрирован: 30.04.2012

В статье(насколько я могу судить из отрезка) все правильно. Если у вас диапазон 0-255 то одного байта достаточно для безнаковой переменной. Минус вылазит при печати.Просто сохраните байт со значением во временную беззнаковую переменную и потом распечатайте

С телефона нельзя вставлять код:

unsigned byte tmp= str[i-3];

Serial. println(tmp);

Вобщем сделать casting,возможно даже явно.

Сдвиговые операции с одним байтом не понадобятся. Но для примера, скажем у вас есть массив двух байт, который содержит двухбайтовую переменную

tmp[0] - содержит Most significant byte

tmp[1] - содержит Last significant byte 2-ух байтовой переменной.

после приёма по ЮАРТУ, с некоторыми оговорками, так и будет. И надo эти два чиста поместить в одну 2-ух байтовую переменную чтобы с ней работать. Например uint16_t num.

Делается так:

num = tmp[0];

num = num<<8;// 8 битовых сдвигов влево, что соответвуют одному байту

num = num | tmp[1] ;// bitwise OR.

И все.

bwn
Offline
Зарегистрирован: 25.08.2014

Ромуальд VII пишет:

Я вас не отчитывал, я лишь указал на то, что вы придираетесь по чём зря, что контрпродуктивно.

По ссылкам лазить, вы, конечно же, не обязаны, но это, объективно, было бы быстрее, чем писать мне, что я должен перейти по той же ссылке, проматать вниз страницы, скопировать оттуда текст, перейти обратно сюда и вставить текст в спец. форму, чтобы только тогдаааа вы согласились изучить проблему; это сильно притормозило процесс.

По поводу моей квалификации - процесс локализации ошибок в коде называется отладкой и для этого нужно иметь уровень "новичок", который я уже давно прошёл, однако, вероятно, замыленный глаз не позволяет (на данный момент) увидеть ошибку, поскольку более глубокую отладку можно сделать только, разве что, изучив ассемблер, для чего нужно обладать не совсем среднего уровня интеллектом. Если вам интересно, локализовывалась проблема так: после каждой команды контроллер выводил на экран те, или иные цифры, которые удовлетворяли (или нет) ожиданиям; строка, предшествующая той, что передала неверный результат и есть ядро проблемы. По поводу несоздания поста - даже уберпрофессионалы иногда тупят, увы.

Вы говорите "куча переменных, нет их описаний и Бог знает, какого они типа"; отвечу так: а что конкретно вы там не увидели? Переменная str объявлена как string, данные, полученные с экрана объявлены как char, единица перебора массивов i не нуждается в объяснениях с тех пор, как стали нумеровать точки на оси X (иксы итые), str.length() можно просто перевести с английского, да и, в общем-то, на этом переменные и заканчиваются.

Не сочтите за грубость, но вы объективно придираетесь, причём это не в первый раз и не только в моём отношении :)

Чуть не забыл, огромное спасибо за помощь!

Отчитывание Евгения и тыканье его носом в типа его недостатки, не менее контрпродуктивно. За время написания своего поста было бы более продуктивно залезть в раздел погромирования, прямо на этом форуме и узнать, что 255 является невпихуемой величиной для чаров. Но графомания, она такая графомания.((((

Ворота
Ворота аватар
Онлайн
Зарегистрирован: 10.01.2016

Ромуальд VII пишет:

терпеть не могу, когда профессионалы начинают смеяться над непрофессионалами 

А что ещё делать, когда ты лезешь учить профессионалов их профессии и при этом с серьёзным видом выдаёшь абсолютные, патентованные, рафинированные глупости типа

Ромуальд VII пишет:
процесс локализации ошибок в коде называется отладкой и для этого нужно иметь уровень "новичок"

 

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

wdrakula пишет:

Женя! Вот плохо ты помогаешь новичкам! Стыдно должно быть! ;) ;) ;) 

И не говорите, стыдно "по самое не могу".

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Чуется мне, что Ромуальдушка наш - это переобутый LEOWRS, судя по графомании.

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

Ворота пишет:

А что ещё делать, когда ты лезешь учить профессионалов их профессии и при этом с серьёзным видом выдаёшь абсолютные, патентованные, рафинированные глупости типа

Ромуальд VII пишет:
процесс локализации ошибок в коде называется отладкой и для этого нужно иметь уровень "новичок"

Вы, конечно, не обижайтесь, но вы видите, что пишете? И понимаете что именно прочитали?

Вы называете определение отладки "абсолютной, патентованной, рафинированной глупостью", что понять мне не суждено - "Отла́дка — этап разработки компьютерной программы, на котором обнаруживают, локализуют и устраняют ошибки" (взято с http://www.любой_сайт_или_учебник.ru/com)

Про уровень новичка, я, может, и погорячился, но без этого умения ничего нормального написать не получится, поэтому этому учат (или учатся), действительно, почти в самом начале пути, что, опять же, не стыкуется с "абсолютной, патентованной, рафинированной глупостью".

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

bwn, я с вами полностью согласен, однако я не мог подумать, что нужно смотреть именно в этом направлении. Если бы я до этого, что называется, допёр сам, то не стал бы вас всех беспокоить.

Ворота
Ворота аватар
Онлайн
Зарегистрирован: 10.01.2016

Ромуальд VII пишет:

Вы, конечно, не обижайтесь, 

И не подумаю. Ты вообще кто, чтобы я на тебя обижался? Ты несёшь такой бред, что тут не обижаться впору, а ...

Отладка, это самое сложное, что есть в практическом программировании. Сложнее там нет ничего. А ты что-то несёшь про уровень новичка.

Прекрати учить профессионалов их профессии выставлять себя идиотом ... хотя ... хочешь - выставляй, мне пофиг.

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

DIYMan пишет:

Чуется мне, что Ромуальдушка наш - это переобутый LEOWRS, судя по графомании.

А мне, вот, кажется, что я не единственный, кто просил о помощи, и кому всесто этой самой помощи пишут гневную тираду, жалуясь на потраченное на меня время, в то время как могли бы потратить равное количество времени на помощь.

А по поводу гарфомании - я не из тех людей, которые молчат при появлении явных возмущающих факторов типа: "а какого ж хрена вы не выложили код? мы должны сами догадаться? почему я должен лазить по сайтам" и т.д. Никто никому ничего не должен, но можно по-человечески сказать: "чтобы я смог вам помочь, приложите полный код". Вы разницу понимаете? Времени уходит меньше, процесс идёт быстрее, а, самое главное, не разводится демогогия и меня не начинают сравнивать с другими гражданинами.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

А ты, случайна, 20 языков не знаешь на уровне выше университетского?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Точно LEOWRS, талантище - умудриться написать в ответ 20 никому не нужных предложений вместо того, чтобы просто сказать - нет, я не он. Так и запишем - он :)

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

Ворота пишет:

Ромуальд VII пишет:

Вы, конечно, не обижайтесь, 

Ты вообще кто, чтобы я на тебя обижался? Ты несёшь такой бред, что тут не обижаться впору, а ...

Отладка, это самое сложное, что есть в практическом программировании. Сложнее там нет ничего. А ты что-то несёшь про уровень новичка.

Ны "ты" мы не переходили, если не ошибаюсь; сохраняйте "профессионализм" до конца - вплоть до уровня общения.

И я не пойму - вы издеваетесь? Откройте учебник/интернет/что_хотите и прочтите определение "отладка кода". Я рассуждаю строго в границах определений; вы не слышите что я говорю.

Ей Богу, зайдите в браузер/откройте книгу и скопируйте оттуда определение. Пока что, вы просто меня оскорбляете явным образом.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Неть. Это называется стеб над персонажем, чье ЧСВ не имеет видимых границ. 

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

DIYMan пишет:

Точно LEOWRS, талантище - умудриться написать в ответ 20 никому не нужных предложений вместо того, чтобы просто сказать - нет, я не он. Так и запишем - он :)

Да еклм, зачем тогда вы тратите своё и моё время? Никому не нужные - так не читайте и не отвечайте.

Оправдываться мне надоело - считайте меня кем хотите.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ворота, тащемта, прав: отладка - это самая сложная часть разработки, требующая, порой, до 80% времени от общего времени разработки. Если бы это было не так - не было бы тут и данной темы, потому как ТС - не может в отладку, хотя и новичок. Triggered, о чём и упомянул Ворота. Так что он - дважды прав.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ромуальд VII пишет:

DIYMan пишет:

Точно LEOWRS, талантище - умудриться написать в ответ 20 никому не нужных предложений вместо того, чтобы просто сказать - нет, я не он. Так и запишем - он :)

Да еклм, зачем тогда вы тратите своё и моё время? Никому не нужные - так не читайте и не отвечайте.

Оправдываться мне надоело - считайте меня кем хотите.

Так ты слона не продашь ;)

З.Ы. Не забудь и мне упомянуть, что мы на "ты" не переходили. Но, щитаю, после такого секса, что пошёл в теме - мы все вообще обязаны на тебе жениться. Так что на "ты" - уже норм. Пойду сигарету выкурю.

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

DetSimen пишет:

Неть. Это называется стеб над персонажем, чье ЧСВ не имеет видимых границ. 

Вы с этого стёба самоутверждаетесь или что? У менгя нет завышенного чувства собственной важности - я попросил о помощи и был бы благодарен любым полезным ответам, но не балагану. Я не говорил, что я тут самый умный.

А, вот, вам тоже время девать некуда? Вы не помогаете.

Ворота
Ворота аватар
Онлайн
Зарегистрирован: 10.01.2016

Ромуальд VII пишет:
скопируйте оттуда определение.

В каком именно определении написано, что отладка - это уровень новичка?

Еще, раз, прекрати выставлять себя идиотом, иначе все подумают, что ты таковой и есть.

Ворота
Ворота аватар
Онлайн
Зарегистрирован: 10.01.2016

Ромуальд VII пишет:
Я не говорил, что я тут самый умный.

А что же ты говорил? В посте #3 ты объяснял профессионалу с сорокалетним стажем, что ему нужно для поиска ошибки, а что - не нужно. Ты ... это .... вообще-то здоров?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ромуальд VII пишет:

У менгя нет завышенного чувства собственной важности 

Сказал чел с ником "Ромуальд VII", попутно побыв кэпом и непонятно зачем расшифровав всем известную аббревиатуру. Ага, так и запишем - ЧСВ нет (нет).

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

Ребятаааааа, у вас всё хорошо? Может быть, в матлабе всё как-то иначе, чем в языках, которые вы знаете, но там отладка выглядит так:

мы согдаём десятистрочную программу, после чего её сохраняем и ставим на панели номеров строк красный кружочек, означающий остановку выполенния в данном месте. На панели справа смотрим текущие значения всех переменных и такаем "шаг вперёд" до тех пор, пока не увидим отклонений от требуемых значений, после чего останавливаем выполнение программы и исправляем ошибку. ВСЁ! 

Вы увидели что-то сложное? Если да - прошу вас, напишите мне об этом; возможно я чего-то недопонял.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

О, нас учат, как отлаживать программы, супер :) У тебя всё в порядке с головой? Ты поди в автосервис к дизелисту - и учи его, как перебирать движок, мотивируя это тем, что, когда бы велосипед перебирал - там всё просто. У тебя всё нормально с головой?

З.Ы. Что касается по теме: в документации к Nextion прописан формат пакетов, для каждого типа данных, передаваемого с него. Достаточно просто понять, что пакеты - это поток байт определённого формата, принимать пакет, и разбирать его как положено - и всё будет ок.

З.Ы. Ромуальдушка - минусы тут ничего не значат, хоть обтыкайся ;)

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

Профессионалы такие профессионалы, конечно. Если у ЕвгенияП стаж 40 лет, стало быть, ему лет 60, а по опыту знакоммства с преподавателями, которым за 60, помощи от них не дождёшься - сначала идёт лекция по терминологии, потом идёт лекция про то, что я ни хрена не знаю и что меня даже в пту обучать нельзя, а лучше сразу застрелиться, и только потоооом, так уж и быыыыыть, мооожет быыыть, ответят мне на вопрос, похожий на заданный мной.

Как жаль, что хорошие инженеры идут в юристы, а хорошие судьи и критики становятся программистами (в чём убедиться вы мне так и не дали).

ВСЕМ СПАСИБО ЗА ПОМОЩЬ!

Ворота
Ворота аватар
Онлайн
Зарегистрирован: 10.01.2016

Нет, ребята, он не прикидывается идиотом, он таковой и есть

Ромуальд VII пишет:
согдаём десятистрочную программу

Это твои школярские фантазии. А теперь тоже самое, только с начни так: "У нас есть полумиллионострочная программа ..."

Ромуальд VII пишет:
возможно я чего-то недопонял

И недопоймёшь никогда. Допонималка явно не выросла.

До свиданья.

Ворота
Ворота аватар
Онлайн
Зарегистрирован: 10.01.2016

А ведь самое смешное, что если бы вместо поста №3 ты просто выложил бы код, твоя проблема давно была бы решена. Но тебе приятнее было выставить себя дураком и устроить срач :))))

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ромуальд VII пишет:

 сначала идёт лекция по терминологии, потом идёт лекция про то, что я ни хрена не знаю и что меня даже в пту обучать нельзя, а лучше сразу застрелиться, и только потоооом, так уж и быыыыыть, мооожет быыыть, ответят мне на вопрос, похожий на заданный мной.

Может быть потому, что вас, дебилов, только так и надо учить? Вы же свои ленивые жопы оторвать от танчиков не способны - вам вынь да положь готовое решение.

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

А вот не нужно впихивать в контекст какую-то абстракную полумиллионострочную программу. Не возьмусь утверждать, но вряд ли вы писали ОС или серьёзную игру.

Программистом-профессионалом вы явно не являетесь - они не переходят на оскорбления по столь незначительному поводу и умеют сохранять спокойствие; более того - обучены правилам общения. Я же не берусь вас судить - просто перечисляю факты.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Рома, заметь - срач начал ты, своим позёрством. И продолжаешь накалять. Эдак не за горами тот момент, когда тебя прямым текстом пошлют. И, скорее всего, это буду я, тут так заведено.

Сейчас послать, или ты успокоишься?

Ромуальд VII
Offline
Зарегистрирован: 21.07.2018

Простите, но какое право вы имеете меня оскорблять и грести под одну гребёнку с неучами, которые даже не хотят ни в чём разбираться? Я учусь в институте и на военной кафедре, причём ни там, ни там меня не учат ни программированию, ни смежным дисциплинам - у нас, в основном расчёты механических узлов.

Если вы считате, что лентяй и дэбил, то какого хрена я вообще занимаюсь всем этим, а не играю в танчики? Почему я не лежу на диване и не смотрю телевизор? Не гуляю с друзьями? И на это у вас есть ответ, не так ли?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ромуальд VII пишет:

А вот не нужно впихивать в контекст какую-то абстракную полумиллионострочную программу. Не возьмусь утверждать, но вряд ли вы писали ОС или серьёзную игру.

Тебе конкретную привести, где строк - ну точно больше полутора сотен тысяч? Ты же, судя по всему, и тогда не успокоишься.

Ворота
Ворота аватар
Онлайн
Зарегистрирован: 10.01.2016

Изучил другие темы ТС. Расходимся, мужики, случай клинический. Без Пухлявого с Клапой нам тут никак.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ромуальд VII пишет:

Если вы считате, что лентяй и дэбил, то какого хрена я вообще занимаюсь всем этим, а не играю в танчики? Почему я не лежу на диване и не смотрю телевизор? Не гуляю с друзьями? И на это у вас есть ответ, не так ли?

У меня есть на всё ответ, и начался он в сообщении номер 3. Это ты тут пришёл всех учить, как надо общаться, и что надо делать, чтобы помочь великому ромуальду.

Если сейчас же не извинишься перед Евгением - будешь послан.