Помогите с флагом для реле

Тема в разделе "Arduino & Shields", создана пользователем A.R., 25 дек 2017.

  1. DIYMan

    DIYMan Guest

    В смысле? Языку С++ пофиг на человеческие языки, это раз. Два - исходные файлы хранятся в кодировке UTF-8, там можно писать не только на русском. Если же вы про вывод куда-то - то в зависимости от представления формата хранения символов - надо делать разные телодвижения. И если выводящяя сторона может работать с набором символов, хранящихся в UTF-8, то она это сделает. Если не умеет - выведет кракозябры.
     
  2. NikitOS

    NikitOS Король шутов Администратор

    Это я не так выразился, си то сможет, но монитор порта в Arduino IDЕ... увы...
     
  3. akl

    akl Гуру

    для русских букв возможно CharToOem() поможет или типа того
     
  4. DIYMan

    DIYMan Guest

    Где, в Arduino IDE? Это функция WinAPI, к МК не имеет никакого отношения. Или я где-то пропустил нить обсуждения?
     
  5. akl

    akl Гуру

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

    а да, там надо windows.h подрубать. возможно ли это в ардуино?
     
  6. DIYMan

    DIYMan Guest

    1. Читаем: https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms647473(v=vs.85).aspx
    2. Видим, что эта функция - часть WinAPI, и к Arduino не имеет никакого отношения.
     
  7. DIYMan

    DIYMan Guest

    Можно, но только не хватит места на дуне.
    Ещё раз: не путайте тёплое с круглым: WinAPI - это WinAPI, это, грубо говоря, набор всяких интерфейсов взаимодействия с операционной системой семейства Windows. У вас на дуне стоит операционная система семейства Windows? Если да - то тогда смело можете в исходном коде прошивки юзать любую функцию WinAPI, в том числе CharToOem.
     
  8. SergeiL

    SergeiL Оракул Модератор

    А с чего взяли то?
    Раньше не пробовал, только что попробовал - все нормально выводится под виндой:

    russian.png
     
  9. NikitOS

    NikitOS Король шутов Администратор

    У меня всегда иероглифы...
     
  10. SergeiL

    SergeiL Оракул Модератор

    В настройках, "язык редактора" какой стоит?
    У меня в Windows интерфейс русский, в Arduino IDE "язык редактора" - по умолчанию.
     
  11. NikitOS

    NikitOS Король шутов Администратор

    А это влияет?
     
  12. DIYMan

    DIYMan Guest

    Версия IDE какая? Софт имеет обыкновения развиваться от версии к версии ;)
     
  13. NikitOS

    NikitOS Король шутов Администратор

  14. DIYMan

    DIYMan Guest

    Тогда хз, в чём дело. Я как-то не задавался вопросом, что там выводит в мониторе порта при выводе русских букв: привык, что при сохранении файлов исходников по умолчанию в кодировке UTF-8 в мониторе порта при выводе русских букв - кракозяблы, да как-то и забил на это, главное, что по UART корректно такие строки передаются, а уж там дело принимающей стороны, разобраться - что к чему.
    Возможно, у Сергея файлы исходников сохранены в кодировке Windows-1251, тогда должно корректно выводить в монитор порта русские символы. Гадать не буду, лишь предположил.

    З.Ы. Для себя решил, что лучше в UTF-8 всё оставить, т.к. более универсальная штука.
     
    NikitOS нравится это.
  15. SergeiL

    SergeiL Оракул Модератор

    Посмотрел специально - у меня исходник хранится в UTF-8.
    А вот в случае какозябин - вопрос.
     
  16. DIYMan

    DIYMan Guest

    Дык и у мну в UTF-8, а вывод русского в монитор порта - в кракозяблах. Винда русифицированная, настройки редактора в Arduino IDE - как вы указали. Чудеса :) Оговорка - проверил сейчас под 1.6.7, гоняю проекты сперва на ней, там выпадает вот такое:
    Вместо кракозябл - должно быть слово "Свободная". По кракозяблам видно, что кодировка UTF-8, я уже на глаз такое определяю :)
     
  17. ZAZ-965

    ZAZ-965 Гуру

    С версии ARDUINO 1.8.2
    * Serial monitor: now properly decodes UTF8 characters (thanks @aknrdureegaesr)
     
    DIYMan и SergeiL нравится это.
  18. SergeiL

    SergeiL Оракул Модератор

    Проверил на развернутой из ZIP v.1.6.12 - тоже некорректно выводит.
     
  19. DIYMan

    DIYMan Guest

    Спасибо, как я и предполагал - допилили в какой-то версии, не прошло и пятилетки :) Хотя вот, хоть убей, не понимаю - зачем русские буквы в UART нужны? Дело даже не в UTF-8 (хорошо, что допилили ребята это дело), а в принципе? Все железки, которые щупал - исключительно на латинице общаются по UART, а если где и используются какие кодировки - то это что-то типа UCS2. А чтоб вот прям на кириллице - не встречал. Или есть такие?
     
  20. SergeiL

    SergeiL Оракул Модератор

    Согласен! Мне тоже всегда латиницы хватало. :)