Перейти к содержанию
    

juvf

Свой
  • Постов

    1 574
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

juvf стал победителем дня 13 марта

juvf имел наиболее популярный контент!

Репутация

10 Хороший

Информация о juvf

  • Звание
    Профессионал
    Профессионал

Контакты

  • Сайт
    Array
  • ICQ
    Array

Посетители профиля

6 874 просмотра профиля
  1. ни каких указателей в протоколе передачи данных нет. Данные по указателю улетают. Не указатели, а данные. Мне кажется задача действительно тривиальная. Свой класс-обёртка к указателю данных (без std::*). Легковесно и тривиально.
  2. плюсую #include <vector> struct TxRS485 { Header hdr; std::vector<u8> bytes; u32 crc; }; Использование TxRS485 tx; tx.bytes.push_back(0x01); // добавление элемента в вектор tx.bytes.push_back(0x02); // Размер вектора может быть изменен динамически tx.bytes.resize(10); // Получение доступа к элементам вектора tx.bytes[0] = 0x11; tx.bytes[1] = 0x22;
  3. Потому что компилятор не сможет установить правильный тип для этих параметров при вызове функции. Если вы вызовете эту функцию с определенным типом A, компилятору не будет известен тип B, потому что он не указан явно в аргументах функции. И, следовательно, компилятор не сможет сгенерировать соответствующий код для типа B. Вы потом сделаете вызов int asd; func(asd); компилатор сгенерирует func(int). А какой тип будет В?
  4. Моё цитирование говорит, что jcxz речь ведёт про электротранспорт. Весь мой пост - это обращение к ТС. Прочитайте весь мой пост, а не одну строчку. Замените слово "Вы" на "Вы, dimir,".
  5. Я процитировал jcxz-а. Я обращался к dimir-у, процитировал jcxz-а. Я хотел процитировать не кого попало, а именно jcxz и не кому попало а именно топикастеру, Что не так? jcxz привел пример про электротранспорт. dimir стал говорить в ответ про какой-то карбюратор. Я dimir-у процитировал jcxz-а, показав ему dimir-у, что jcxz говорить об электротранспорте. В чем ко мне претензия? Что не так? тс, разбери любую мышку старую мышку с шаром (или с не очень старую с центральным колёсиком). Там эти колёсики... и там же ИКашками можно разжиться.
  6. Это ТС-у (типикастиру), т.е. dimir-у. Тему создал dimir. Какие проблемы?
  7. да Нажимая на педаль, в контроллер двигателя попадает информация "Педаль нажата на 57,76%". Всё! Больше педаль ни чего не делает. Педаль - это просто датчик перемещения. Вы можете с телефона передать эту информацию в контроллер, а можете вообще через интернет, можете смс-кой..... Контроллер управления двигателя получив эту информацию задает ток в тяговом двигателе. В электродвигателе крутящий момент прямо пропорционален току. Если у вас двигатель может ток от 0 до 100А, то 57,76% педали соответствует 57,76А тока. При этом автомобиль может ехать 40 км/час (в горку, груженный), а может 140 км/ч (с горки, пустой). КАРБЮРАТОР!? - а что такое карбюратор? Ещё раз.... в ЭЛЕТРОТРАНСПОРТЕ!!! Вы тему создали про электродвигатель. В вашем 24-х вольтовом моторчике есть карбюратор и заслонка? Если Вам нужно контролировать крутящий момент - делайте ПИД через контроль тока. Но по току, Вы не сможете контролировать скорость вращения. ps есть ещё методики EMF Back-EMF и Current Back-EMF. Может они Вам помогут. Но гораздо проще смострячить тахометр, нежели реализовать Back-EMF. ИМХО.
  8. в данном случае это именно так.
  9. ps Ваш вердикт, уважаемые гуру. На сколько качественный код? Можно для старта/шаблона использовать подобный код/чат/бот?
  10. в телеге бот. попробуйте. всего 2 минуты и картина маслом. бомбите его уточняющими вопросами. вполне годные ответы дает. https://t.me/gpturbo_bot
  11. вот от куда ноги спора диалога растут.
  12. а причем тут строгая типизация? Вы, прежде чем кидаться словами, поймите, о чем речь идет, а потом уже будете обвинять других. Сбавьте обороты.
  13. это Вы не в ту степь ушли. А теперь напишите enum class En {FROST } и попробуйте тоже самое - int temp = FROST; 🙂 я сказал "int temp = FROST; нет ни какой разницы FROST - это дефайн или енум.". При чем тут различия между enum и enum class? Речь шла о том, что имя "FROST" писать как eFROST или как FROST? Разницы нет.
  14. Это Вы немного не поняли о чем я говорил. И причем тут проблемы енума и понимание того, каким методом была задана константа?
  15. что-то я действительно не понял. но я понял то, что Вы это сами не писали 😉 Написал. Компилятор выдал ошибку Error[Pe101]: "EN0" has already been declared in the current scope (�Hat line 32�h) myFile.cpp 36 Error[Pe101]: "EN1" has already been declared in the current scope (�Hat line 32�h) myFile.cpp 36 написал. И что? Что с этим дальше делать? Вы предлагаете int инициализировать типом A. А зачем? Теперь то, о чем я говорил. Допустим есть некий порог температуры. Автор программы библиотеки задает эту константу так: #define FROST 10 либо так enum {FORST = 10}; Сделал, отдал в продакшин. Теперь прикладной программист пишет свой код с использованием вашей библиотеки int temperature = FORST; //вот тут какая разница как в FORST попала 10? Тут прогер должен понимать, что создалась переменная типа int, и она инициализировалась значением 10. Это Эквивалент записи int temperature = 10; ps даже если очень жжет использовать enum class, очень хочется, но не хотите при каждом использовании кастовать, то закастуйте дефайном enum class A { EN0 = 10, EN1 = 20 }; #define FORST (static_cast<int>(A::EN0)) //так const int FORST2 = static_cast<int>(A::EN1); //ну или даже так int temp = FORST2 - FORST; //вот тут какая разница, как 10 и 20 попали/заменились на FORST и FORST2? эквивалент int temp = 10; Тут нужно понимать что в temp ляжет 10, которая вычислилась на этапе компиляции pps #define asd(m) (do(0){return 5*m;}) #define EN1 true #define TEMP2 asd(5) const int pi1 = 3; enum { ANGLE1 = pi1*10 + (EN1 ? TEMP2: 13)}; enum class A{ASD = ANGLE1, ASD2 = ANGLE1 + 6}; enum {QWE0 = static_cast<int>(A::ASD2), QWE1, QWE2}; #define POIU (QWE2 - 31) int angleOfHor = POIU; //в конечном счете это тоже самое, что и int angleOfHor = 32; Разворачивай хоть что, хоть в чем.
×
×
  • Создать...