... Видите ли, я работаю на станках с ЧПУ, и частенько, для упрощения действия использую макропеременные (переменные), и при работе на очередном станке и написании на нем программы, был сильно разачарован в том, что железо его не способно отрабатывать не то, что тысячные и сотые части, но и десятичные числа тоже, все выходы из условий легко теряются и программа начинает выполнять условие до момента когда концевики сработают или до момента, когда кончится вычислительная способность.
Т.е. Вы пишете прошивку для станка с ЧПУ, а она работает не так, как Вам бы хотелось?
напрашивается вопрос: Неужели все настолько непродумано, что приходится пилить костыли?
это никакой не костыль, а нормальное решение. Да, если ты ждешь, что кто-то это уже "продумал" за тебя - можешь поискать в сети какую-нить готовую библиотеку. Но почти наверняка это будет не совсем то. что тебе надо, будет медленнее и занимать больше места в памяти. Поэтому проще написать самому. тем более что речь о 10-20 строчках
2 ТС, ты можешь не читать символ из сериала, а сначала посмотреть на него Serial.peek(). Если это цыфра, то вызывать Serial.parseInt(), а если нет - считывать и пропускать ничего не делая. Код усложнится ненамного.
И, да, хватит обучаца по видео из ютуба, почитай наконец Библию от Кернигана.
Немогли бы Вы, описать пример использования .peek()? Или поделиться сцылкой, на которой я смогу все разобрать? Пока Гоголь'ю и тщетно...
2 ТС, ты можешь не читать символ из сериала, а сначала посмотреть на него Serial.peek(). Если это цыфра, то вызывать Serial.parseInt(), а если нет - считывать и пропускать ничего не делая. Код усложнится ненамного.
И, да, хватит обучаца по видео из ютуба, почитай наконец Библию от Кернигана.
Немогли бы Вы, описать пример использования .peek()? Или поделиться сцылкой, на которой я смогу все разобрать? Пока Гоголь'ю и тщетно...
Интересная полемика, чтоб сказать сразу человеку, что посылаешь вроде "ADA" и пишется на экране также, а приходит на самом деле "ADA\r\n" и именно её надо сравнивать на совпадение... (мой вопрос днЕвной давности).
Благо в инвенторе есть функция проверки на содержание в тексте указанного фрагмента, а так же функция определения длины текста в символах, а то как вообще можно заподозрить лишнее, особенно если об этом не знать:)
Благо в инвенторе есть функция проверки на содержание в тексте указанного фрагмента, а так же функция определения длины текста в символах, а то как вообще можно заподозрить лишнее, особенно если об этом не знать:)
И что в этом такого страшного? Включение буквами тебе привели только как пример, который легко обьяснить (хотя ты и его не понял :) Если же делать по взрослому. то нужно использовать последовательности из нескольких символов. Всего два байта подряд УЖЕ дают 65 с половиной тысяч различных комбинаций.
Хочу вас огрочить, я это понял, но у меня идея использовать ИМЕННО эти комбинации, а не какие другие. Боюсь, что именно Вы меня не поняли... Делать по взрослому? Эти слова когда-то в 90х звучали особенно. Сейчас нужно подстраиваться под отпределенные требования. Я уже говорил, что работаю на станках с ЧПУ, может я хочу пришиться именно к станку и облегчить себе жизнь в миллионы раз ? А там что, есть буквенные переменные ? Там есть макропеременные которые используют численные значения(нет, ну там можно на некоторых численным присвоить буквы, но числа будут не основными.), к примеру от 1 до 10 могут работать в одной программе не мешая работе других модулей и не сохраняясь в постоянной памяти станка. Они работают только в этой программе(подпрограмме) и при вызове другой (пускай даже с возвратом в основную) не испортят вычисления первой по возвращению. Можно конечно все это обойти, но зачем такие сложности? Это же вилка. А мой вопрос начинался с того, что можно как-то по простому использовать код? Не втыкая вилку.
Интересная полемика, чтоб сказать сразу человеку, что посылаешь вроде "ADA" и пишется на экране также, а приходит на самом деле "ADA\r\n" и именно её надо сравнивать на совпадение... (мой вопрос днЕвной давности).
странный вопрос вообще-то... о том, что в любой компьютерной строке в конце есть служебные символы - знает, имхо, каждый школьник... и это не специфика ардуины, на большом компе под виндоуз, например - все точно так же.
Интересно, во сколько же лет вы это впервые узнали? :)
Хочу вас огрочить, я это понял, но у меня идея использовать ИМЕННО эти комбинации
ну и используйте - в чем проблема-то? Это ж вы начинаете плакаться. что это "офигать как сложно" - удалить из строки CR-LF
вернулся назад - перечитал - и уже в принципе перестал понимать, что вы хотите сделать и в чем ваша проблема. По-моему, она в основном в том, что вы ленивы и желали бы программировать ардуино по правилам для станков с ЧПУ. Если да - то увы. не все желания исполняются...
Интересная полемика, чтоб сказать сразу человеку, что посылаешь вроде "ADA" и пишется на экране также, а приходит на самом деле "ADA\r\n" и именно её надо сравнивать на совпадение... (мой вопрос днЕвной давности).
странный вопрос вообще-то... о том, что в любой компьютерной строке в конце есть служебные символы - знает, имхо, каждый школьник... и это не специфика ардуины, на большом компе под виндоуз, например - все точно так же.
Интересно, во сколько же лет вы это впервые узнали? :)
Мне 45 лет... Сходу спросил у жены - Что в конце строки? - говорит "ентер". Счас придут дети, их буду пытать...
Т.е. Вы пишете прошивку для станка с ЧПУ, а она работает не так, как Вам бы хотелось?
Нет, это всего лишь пример, но в дальнейшем возможено мне захочется пришиться к большому станку(fanuc, haas, mazak) для упрощения некоторых действий. Я в первом сообщении написал, что я только начал изучать ардуинку, потому, сейчас очень рано говорить про идеи. Именно по этому я и не озвучивал ничего подобного в первом сообщении.
b707 пишет:
Да, если ты ждешь, что кто-то это уже "продумал" за тебя
Нет, я именно уточняю, есть или нет простое решение подобному вопросу, вопросы в интернете есть, а вот решения на уровне языка - нет.
DetSimen пишет:
ты не то что в гугл не ходил, ты даже ЭТОТ сайт пролистать не удосужился.
Нет, я не требую "Дайте" и извиняюсь за неверно поставленные вопросы если навёл вас на такую мысль. У меня были уточняющие вопросы, и были просьбы поделиться материалом, если он у вас имеется. Да, я через поиск сайта не пользовался, но пользовался гуглом. Могу предоставить вам скрины истории со временем. А по ссылке: они в интернете продублированы, примера нет...
leks пишет:
Интересная полемика, чтоб сказать сразу человеку, что посылаешь вроде "ADA" и пишется на экране также, а приходит на самом деле "ADA\r\n" и именно её надо сравнивать на совпадение... (мой вопрос днЕвной давности).
Сравнения это не вилка разве?...
leks пишет:
Благо в инвенторе есть функция проверки на содержание в тексте указанного фрагмента, а так же функция определения длины текста в символах, а то как вообще можно заподозрить лишнее, особенно если об этом не знать:)
Действительно, о таком пока не слышал, сейчас полезу искать...
sadman41 пишет:
leks пишет:
Благо в инвенторе есть функция проверки на содержание в тексте указанного фрагмента, а так же функция определения длины текста в символах, а то как вообще можно заподозрить лишнее, особенно если об этом не знать:)
Новые непонятные команды... Полезу про них читать...
b707 пишет:
странный вопрос вообще-то... о том, что в любой компьютерной строке в конце есть служебные символы - знает, имхо, каждый школьник... и это не специфика ардуины, на большом компе под виндоуз, например - все точно так же.
Интересно, во сколько же лет вы это впервые узнали? :)
Ну везет тем школьникам, которые это знают, я этим похвастаться не могу, на уроках информатики (которые появились у нас только в 11 классе) нас учили пользоваться поирпоинтом... А узнал только сегодня, на этой неделе 29 будет.
b707 пишет:
ну и используйте - в чем проблема-то? Это ж вы начинаете плакаться. что это "офигать как сложно" - удалить из строки CR-LF
вернулся назад - перечитал - и уже в принципе перестал понимать, что вы хотите сделать и в чем ваша проблема. По-моему, она в основном в том, что вы ленивы и желали бы программировать ардуино по правилам для станков с ЧПУ. Если да - то увы. не все желания исполняются...
я не плакаюсь, я в начале своего обучения пытаюсь узнать, можно ли без обходов это использовать или нет. Ну неужели так сложно ответить: "Нет, такой команды нет, нужно обойти." У меня нет проблемы, у меня есть недопонимание. Я не хочу программировать ардуино по правилам работы ЧПУ :) Для этого, у меня есть само устройство с ЧПУ... Сейчас, начиная с азов, у меня появляются вопросы, я всего лишь хочу знать все варианты их решений :) Ведь я только начал свой первый проект "Hello world" мигания светодиодом! :)
Чтобы лезть к станку со светодиодами - надо узнать, есть ли у него UART в принципе. В противном случае вы задачу не решите энивэй. Конечно чему-то научитесь, но...
Сын сказал точка с запятой - закончил ВУЗ, программирование было- паскаль (специальность ни как не связанная с компьютерами, кроме готовых программ), у меня бейсик. Ждём дочь.
ТС , "мит апп инвентор" нужен для создания простеньких приложений для смартфона, я использую его как пульт управления поделками через блютуз модуль. Теперь захотелось добавить обратной связи в приложение от Ардуино платы.
Чтобы лезть к станку со светодиодами - надо узнать, есть ли у него UART в принципе. В противном случае вы задачу не решите энивэй. Конечно чему-то научитесь, но...
Да поймите, я не лезу сейчас к станку, я хочу научиться избавляться от лишних символов без сравнения. Это возможно или нет ? Я ввел ЧИСЛО 0, мне передалось ЧИСЛО 0, я ввел ЧИСЛО 10 мне передалось ЧИСЛО 10. И я с этими числами могу дальше работать, складывать, умножать, делить и тд
leks пишет:
Сын сказал точка с запятой - закончил ВУЗ, программирование было- паскаль (специальность ни как не связанная с компьютерами, кроме готовых программ), у меня бейсик. Ждём дочь.
А точка с запятой это и есть энтер? Это не просто конец строки ? Жду вместе с Вами.
Сын сказал точка с запятой - закончил ВУЗ, программирование было- паскаль (специальность ни как не связанная с компьютерами, кроме готовых программ), у меня бейсик. Ждём дочь.
имхо, спрашивали неправильно. Спросите, знает ли он, что такое "CR-LF"
Чтобы лезть к станку со светодиодами - надо узнать, есть ли у него UART в принципе. В противном случае вы задачу не решите энивэй. Конечно чему-то научитесь, но...
Да поймите, я не лезу сейчас к станку, я хочу научиться избавляться от лишних символов без сравнения. Это возможно или нет ? Я ввел ЧИСЛО 0, мне передалось ЧИСЛО 0, я ввел ЧИСЛО 10 мне передалось ЧИСЛО 10. И я с этими числами могу дальше работать, складывать, умножать, делить и тд
Да я-то Вас понимаю. Ваш черед понять, что программирование на МК не бывает абстрактным. Вы всегда будете ограничены памятью, скоростью, доступными интерфейсами, еще много чем.
Вы же не можете потренироваться на своем станке, а потом херак - и квадракоптер запрограммировать.
Если хотите просто поупражняться в разборе строки - это одно. Устроить сопряжение с реальным станком - другое. Для первого никакая ардуина не нужна - возьмите любую среду программирования на BigPC и до посинения там разделывайте CRLF на запчасти.
Да поймите, я не лезу сейчас к станку, я хочу научиться избавляться от лишних символов без сравнения. Это возможно или нет ? Я ввел ЧИСЛО 0, мне передалось ЧИСЛО 0, я ввел ЧИСЛО 10 мне передалось ЧИСЛО 10.
между числом 0 и числом 10 есть принципиальная разница. ноль - это один символ, а 10 - это два, '1' + '0'.
И для того, чтобы работать с числами от 10 и выше - в любом случае надо осваиваться с обработкой многих символов - что на порядок сложнее, чем прием одного символа.
Именно поэтому вам Садман41 предлагал заменить числа после 10 буквами - он вам хотел упростить задачу, а вы не поняли....
Сын сказал точка с запятой - закончил ВУЗ, программирование было- паскаль (специальность ни как не связанная с компьютерами, кроме готовых программ), у меня бейсик. Ждём дочь.
имхо, спрашивали неправильно. Спросите, знает ли он, что такое "CR-LF"
Хотя, возможно, я переоценил знания школьников :)
Не спрошу, отъехали все до завтра, но вряд ли он знает. Вот что смешно - он может сам собрать компьютер из деталек о которых сам всё узнает и купит, сам выберит и установит, настроит желаемое ПО , и много ещё чего, но с опаской спросит не убьёт ли его электричество в только что выключенном компьютере. Вообщем философия бытия...
о которых сам всё узнает и купит, сам выберит и установит, настроит желаемое ПО , и много ещё чего, но с опаской спросит не убьёт ли его электричество в только что выключенном компьютере.
Да я-то Вас понимаю. Ваш черед понять, что программирование на МК не бывает абстрактным. Вы всегда будете ограничены памятью, скоростью, доступными интерфейсами, еще много чем.
Вы же не можете потренироваться на своем станке, а потом херак - и квадракоптер запрограммировать.
Если хотите просто поупражняться в разборе строки - это одно. Устроить сопряжение с реальным станком - другое. Для первого никакая ардуина не нужна - возьмите любую среду программирования на BigPC и до посинения там разделывайте CRLF на запчасти.
Понял Вас, более детально разберу этот вопрос.
b707 пишет:
между числом 0 и числом 10 есть принципиальная разница. ноль - это один символ, а 10 - это два, '1' + '0'.
И для того, чтобы работать с числами от 10 и выше - в любом случае надо осваиваться с обработкой многих символов - что на порядок сложнее, чем прием одного символа.
Именно поэтому вам Садман41 предлагал заменить числа после 10 буквами - он вам хотел упростить задачу, а вы не поняли....
Да я понял, мне нужно было упростить по другому, parseInt работает же не с одним числом. ввожу 10, он мне передает 10, а не 1,0.
Я ввел ЧИСЛО 0, мне передалось ЧИСЛО 0, я ввел ЧИСЛО 10 мне передалось ЧИСЛО 10.
Вы ввели число или текстовую строку?
Если Вы не видите разницы, то Ваша проблема именно в этом.
Когда научитесь различать эти понятия, сами удивитесь насколько легче станет жить.
Не, не начнёт,
Вы не ввели число вы ввели символ нуля, чтобы оно стало числом его надо преобразовать, отнять 48 )))
Проверка совершенно простая
1. Нажимаем клавишу NumLock (будем вводить числа)
2. Нажимаем клавишу Alt и удерживая её набираем на цифровой клавиатуре 48
3. Отпускаем клавишу Alt - созерцаем символ 0
В бытность СССР мои станки на фрезеровании имели точность 2 микрона, координатный станок 1 микрон, и программист для этих станков имел высшее математическое образование
То были неправильные станки, не ардуиновские. Почитайте рекламу, она врать не будет - на ардуине не нужно никакого образование, любая беременная доярка может делать а@@ительные двайсы, роботов, свето-шоу и дома, которые умнее её самой. Вот они (доярки) и делают :)
о которых сам всё узнает и купит, сам выберит и установит, настроит желаемое ПО , и много ещё чего, но с опаской спросит не убьёт ли его электричество в только что выключенном компьютере.
Очень умнО. Конденсаторы - они злопамятные...
Ну самые злые в клетке сидят... По молодости курочил телевизор, зачем включал не знаю, прошёл час или больше, стал с кинескопа вроде ленту сматывать. Куда коснулся, не помню, но прошло ощущение до локтя...
Знакомый рассказывал как кабель тронули свеже отключенный и в земле, но очень длинный и тоже ощущения не ах.
Разве не как обзовешь переменную, тем она и будет ? Я обозвал int, на сколько я помню это именно целочисленные значения, а строки идут как char..
Ну, вот, собственно, и я про тоже.
Пока Вы не пойиёте что Вы вводите, что читаете, чем отличается '0' от "0" и они оба от '\0", вы так и будете как котёнок слепой тыкаться.
В общем, так:
1 кладите ардуину на полку подальше
2. скачивайте любой бесплатный компилятор
3. Берите КиР и читайте его, запуская и отлаживая ВСЕ приведённые там примеры до тех пор, пока Вы не сможете этот пример осознанно изменять и получать то, что ожидали.
4. ТОлько после этого возвращайтесь к ардуине.
Если Вы этого не сделаете - так и будете беременной дояркой.
И да, кстати, никакие отмазы "я потом почитаю, а щас памагите решить проблему" не принимаются. Сначала КиР, потом программировть - именно в таком порядке. Иначе Вы сами себя на смех выставляете. Несолидно.
Там нет ничего заумного. Любой нормальный человек (не идиот в медицинском смысле) вполне может освоить. И Вы можете, просто сделайте то, что Вам написал.
Разве не как обзовешь переменную, тем она и будет ? Я обозвал int, на сколько я помню это именно целочисленные значения, а строки идут как char..
Ну, вот, собственно, и я про тоже.
Пока Вы не пойиёте что Вы вводите, что читаете, чем отличается '0' от "0" и они оба от '\0", вы так и будете как котёнок слепой тыкаться.
В общем, так:
1 кладите ардуину на полку подальше
2. скачивайте любой бесплатный компилятор
3. Берите КиР и читайте его, запуская и отлаживая ВСЕ приведённые там примеры до тех пор, пока Вы не сможете этот пример осознанно изменять и получать то, что ожидали.
4. ТОлько после этого возвращайтесь к ардуине.
Если Вы этого не сделаете - так и будете беременной дояркой.
И да, кстати, никакие отмазы "я потом почитаю, а щас памагите решить проблему" не принимаются. Сначала КиР, потом программировть - именно в таком порядке. Иначе Вы сами себя на смех выставляете. Несолидно.
Там нет ничего заумного. Любой нормальный человек (не идиот в медицинском смысле) вполне может освоить. И Вы можете, просто сделайте то, что Вам написал.
Поясните, что такое КиР? Да и на смех я себя не выставляю, вы в одном масле варитесь, я в другом. Просто мне моё масло надоело. Или те, кто не скажет что я делаю своей программой тоже на смех себя выставляют? Я же просил меня отправить в учебник или статью, но почему-то так принято на форуме видимо, что нужно показать свое превосходство.
Вам про эту книгу ещё #43 писали (более полусотни постов назад). Вы читаете что Вам пишут?
zkxFTF пишет:
Да и на смех я себя не выставляю
Выставляете. Вы даже не представляете детсадовскость Ваших вопросов. Читайте КиР, разбирайтесь, потом перечитаете пост - посмеётесь.
zkxFTF пишет:
так принято на форуме видимо
Не будьте гимназисткой и не надувайте обиженно губки, услышав слово "писька". Я дал Вам самый лучший совет, который только можно дать в Вашей ситуации. Просто следуйте ему. Если же Вы будете продолжать здесь "решать проблему" не прочитав матчасть - будет гораздо хуже.
Да поймите, я не лезу сейчас к станку, я хочу научиться избавляться от лишних символов без сравнения. Это возможно или нет ? Я ввел ЧИСЛО 0, мне передалось ЧИСЛО 0, я ввел ЧИСЛО 10 мне передалось ЧИСЛО 10. И я с этими числами могу дальше работать, складывать, умножать, делить и тд
Если коротко, то "невозможно".
Потому, что если хотите получить число 0, то и передавать должны число 0, а Вы вместо этого передаете строку "0". А получить хотите число. Так не бывает. Либо передавайте и принимайте число, либо передавайте и принимайте строку, но тогда нужно будет преобразовывать строку в число. (обратите внимание - не символ, а именно строку. Это не одно и то же)
... Видите ли, я работаю на станках с ЧПУ, и частенько, для упрощения действия использую макропеременные (переменные), и при работе на очередном станке и написании на нем программы, был сильно разачарован в том, что железо его не способно отрабатывать не то, что тысячные и сотые части, но и десятичные числа тоже, все выходы из условий легко теряются и программа начинает выполнять условие до момента когда концевики сработают или до момента, когда кончится вычислительная способность.
напрашивается вопрос: Неужели все настолько непродумано, что приходится пилить костыли?
это никакой не костыль, а нормальное решение. Да, если ты ждешь, что кто-то это уже "продумал" за тебя - можешь поискать в сети какую-нить готовую библиотеку. Но почти наверняка это будет не совсем то. что тебе надо, будет медленнее и занимать больше места в памяти. Поэтому проще написать самому. тем более что речь о 10-20 строчках
2 ТС, ты можешь не читать символ из сериала, а сначала посмотреть на него Serial.peek(). Если это цыфра, то вызывать Serial.parseInt(), а если нет - считывать и пропускать ничего не делая. Код усложнится ненамного.
И, да, хватит обучаца по видео из ютуба, почитай наконец Библию от Кернигана.
Немогли бы Вы, описать пример использования .peek()? Или поделиться сцылкой, на которой я смогу все разобрать? Пока Гоголь'ю и тщетно...
нет. на этих враках мой гуманизм заканчивается.
Надо дать ТС пишущую машинку, просто так он не разберётся с управляющими сигналами и, на ней объяснить построение общения человека с железом
2 ТС, ты можешь не читать символ из сериала, а сначала посмотреть на него Serial.peek(). Если это цыфра, то вызывать Serial.parseInt(), а если нет - считывать и пропускать ничего не делая. Код усложнится ненамного.
И, да, хватит обучаца по видео из ютуба, почитай наконец Библию от Кернигана.
Немогли бы Вы, описать пример использования .peek()? Или поделиться сцылкой, на которой я смогу все разобрать? Пока Гоголь'ю и тщетно...
нет. на этих враках мой гуманизм заканчивается.
ДШК, СГМТ,калаш?
ты не то что в гугл не ходил, ты даже ЭТОТ сайт пролистать не удосужился.
http://arduino.ru/Reference/Serial/Peek
слышу только "ДАЙТЕ!!! ДАЙТЕ!!!"
Интересная полемика, чтоб сказать сразу человеку, что посылаешь вроде "ADA" и пишется на экране также, а приходит на самом деле "ADA\r\n" и именно её надо сравнивать на совпадение... (мой вопрос днЕвной давности).
Благо в инвенторе есть функция проверки на содержание в тексте указанного фрагмента, а так же функция определения длины текста в символах, а то как вообще можно заподозрить лишнее, особенно если об этом не знать:)
Благо в инвенторе есть функция проверки на содержание в тексте указанного фрагмента, а так же функция определения длины текста в символах, а то как вообще можно заподозрить лишнее, особенно если об этом не знать:)
Лехко: Serial.print("0x");Serial.println((byte)Serial.read(), HEX);
И что в этом такого страшного? Включение буквами тебе привели только как пример, который легко обьяснить (хотя ты и его не понял :) Если же делать по взрослому. то нужно использовать последовательности из нескольких символов. Всего два байта подряд УЖЕ дают 65 с половиной тысяч различных комбинаций.
Хочу вас огрочить, я это понял, но у меня идея использовать ИМЕННО эти комбинации, а не какие другие. Боюсь, что именно Вы меня не поняли... Делать по взрослому? Эти слова когда-то в 90х звучали особенно. Сейчас нужно подстраиваться под отпределенные требования. Я уже говорил, что работаю на станках с ЧПУ, может я хочу пришиться именно к станку и облегчить себе жизнь в миллионы раз ? А там что, есть буквенные переменные ? Там есть макропеременные которые используют численные значения(нет, ну там можно на некоторых численным присвоить буквы, но числа будут не основными.), к примеру от 1 до 10 могут работать в одной программе не мешая работе других модулей и не сохраняясь в постоянной памяти станка. Они работают только в этой программе(подпрограмме) и при вызове другой (пускай даже с возвратом в основную) не испортят вычисления первой по возвращению. Можно конечно все это обойти, но зачем такие сложности? Это же вилка. А мой вопрос начинался с того, что можно как-то по простому использовать код? Не втыкая вилку.
Интересная полемика, чтоб сказать сразу человеку, что посылаешь вроде "ADA" и пишется на экране также, а приходит на самом деле "ADA\r\n" и именно её надо сравнивать на совпадение... (мой вопрос днЕвной давности).
странный вопрос вообще-то... о том, что в любой компьютерной строке в конце есть служебные символы - знает, имхо, каждый школьник... и это не специфика ардуины, на большом компе под виндоуз, например - все точно так же.
Интересно, во сколько же лет вы это впервые узнали? :)
Хочу вас огрочить, я это понял, но у меня идея использовать ИМЕННО эти комбинации
ну и используйте - в чем проблема-то? Это ж вы начинаете плакаться. что это "офигать как сложно" - удалить из строки CR-LF
вернулся назад - перечитал - и уже в принципе перестал понимать, что вы хотите сделать и в чем ваша проблема. По-моему, она в основном в том, что вы ленивы и желали бы программировать ардуино по правилам для станков с ЧПУ. Если да - то увы. не все желания исполняются...
Интересная полемика, чтоб сказать сразу человеку, что посылаешь вроде "ADA" и пишется на экране также, а приходит на самом деле "ADA\r\n" и именно её надо сравнивать на совпадение... (мой вопрос днЕвной давности).
странный вопрос вообще-то... о том, что в любой компьютерной строке в конце есть служебные символы - знает, имхо, каждый школьник... и это не специфика ардуины, на большом компе под виндоуз, например - все точно так же.
Интересно, во сколько же лет вы это впервые узнали? :)
Мне 45 лет... Сходу спросил у жены - Что в конце строки? - говорит "ентер". Счас придут дети, их буду пытать...
На площади полки - темно в конце строки... :)
Т.е. Вы пишете прошивку для станка с ЧПУ, а она работает не так, как Вам бы хотелось?
Нет, это всего лишь пример, но в дальнейшем возможено мне захочется пришиться к большому станку(fanuc, haas, mazak) для упрощения некоторых действий. Я в первом сообщении написал, что я только начал изучать ардуинку, потому, сейчас очень рано говорить про идеи. Именно по этому я и не озвучивал ничего подобного в первом сообщении.
Да, если ты ждешь, что кто-то это уже "продумал" за тебя
Нет, я именно уточняю, есть или нет простое решение подобному вопросу, вопросы в интернете есть, а вот решения на уровне языка - нет.
ты не то что в гугл не ходил, ты даже ЭТОТ сайт пролистать не удосужился.
http://arduino.ru/Reference/Serial/Peek
слышу только "ДАЙТЕ!!! ДАЙТЕ!!!"
Нет, я не требую "Дайте" и извиняюсь за неверно поставленные вопросы если навёл вас на такую мысль. У меня были уточняющие вопросы, и были просьбы поделиться материалом, если он у вас имеется. Да, я через поиск сайта не пользовался, но пользовался гуглом. Могу предоставить вам скрины истории со временем. А по ссылке: они в интернете продублированы, примера нет...
Интересная полемика, чтоб сказать сразу человеку, что посылаешь вроде "ADA" и пишется на экране также, а приходит на самом деле "ADA\r\n" и именно её надо сравнивать на совпадение... (мой вопрос днЕвной давности).
Сравнения это не вилка разве?...
Благо в инвенторе есть функция проверки на содержание в тексте указанного фрагмента, а так же функция определения длины текста в символах, а то как вообще можно заподозрить лишнее, особенно если об этом не знать:)
Действительно, о таком пока не слышал, сейчас полезу искать...
Благо в инвенторе есть функция проверки на содержание в тексте указанного фрагмента, а так же функция определения длины текста в символах, а то как вообще можно заподозрить лишнее, особенно если об этом не знать:)
Лехко: Serial.print("0x");Serial.println((byte)Serial.read(), HEX);
Новые непонятные команды... Полезу про них читать...
странный вопрос вообще-то... о том, что в любой компьютерной строке в конце есть служебные символы - знает, имхо, каждый школьник... и это не специфика ардуины, на большом компе под виндоуз, например - все точно так же.
Интересно, во сколько же лет вы это впервые узнали? :)
Ну везет тем школьникам, которые это знают, я этим похвастаться не могу, на уроках информатики (которые появились у нас только в 11 классе) нас учили пользоваться поирпоинтом... А узнал только сегодня, на этой неделе 29 будет.
ну и используйте - в чем проблема-то? Это ж вы начинаете плакаться. что это "офигать как сложно" - удалить из строки CR-LF
вернулся назад - перечитал - и уже в принципе перестал понимать, что вы хотите сделать и в чем ваша проблема. По-моему, она в основном в том, что вы ленивы и желали бы программировать ардуино по правилам для станков с ЧПУ. Если да - то увы. не все желания исполняются...
я не плакаюсь, я в начале своего обучения пытаюсь узнать, можно ли без обходов это использовать или нет. Ну неужели так сложно ответить: "Нет, такой команды нет, нужно обойти." У меня нет проблемы, у меня есть недопонимание. Я не хочу программировать ардуино по правилам работы ЧПУ :) Для этого, у меня есть само устройство с ЧПУ... Сейчас, начиная с азов, у меня появляются вопросы, я всего лишь хочу знать все варианты их решений :) Ведь я только начал свой первый проект "Hello world" мигания светодиодом! :)
Мне 45 лет... Сходу спросил у жены - Что в конце строки? - говорит "ентер". Счас придут дети, их буду пытать...
На площади полки - темно в конце строки... :)
Разные регионы, разные учителя... Для меня это открытие. Узнал только сегодня. Поделитесь ответом детей, мне даже интересно стало :)
Мне 45 лет... Сходу спросил у жены - Что в конце строки? - говорит "ентер". Счас придут дети, их буду пытать...
Главное - чтобы "Return" не сказали...
А вот чо мне гугаль выдал, даже капаца не пришлось
https://www.google.ru/search?q=Serial.peek&oq=Serial.peek&aqs=chrome..69...
Чтобы лезть к станку со светодиодами - надо узнать, есть ли у него UART в принципе. В противном случае вы задачу не решите энивэй. Конечно чему-то научитесь, но...
Сын сказал точка с запятой - закончил ВУЗ, программирование было- паскаль (специальность ни как не связанная с компьютерами, кроме готовых программ), у меня бейсик. Ждём дочь.
ТС , "мит апп инвентор" нужен для создания простеньких приложений для смартфона, я использую его как пульт управления поделками через блютуз модуль. Теперь захотелось добавить обратной связи в приложение от Ардуино платы.
Чтобы лезть к станку со светодиодами - надо узнать, есть ли у него UART в принципе. В противном случае вы задачу не решите энивэй. Конечно чему-то научитесь, но...
Да поймите, я не лезу сейчас к станку, я хочу научиться избавляться от лишних символов без сравнения. Это возможно или нет ? Я ввел ЧИСЛО 0, мне передалось ЧИСЛО 0, я ввел ЧИСЛО 10 мне передалось ЧИСЛО 10. И я с этими числами могу дальше работать, складывать, умножать, делить и тд
Сын сказал точка с запятой - закончил ВУЗ, программирование было- паскаль (специальность ни как не связанная с компьютерами, кроме готовых программ), у меня бейсик. Ждём дочь.
А точка с запятой это и есть энтер? Это не просто конец строки ? Жду вместе с Вами.
Дочь сказала "закрывающий тег".
Сын сказал точка с запятой - закончил ВУЗ, программирование было- паскаль (специальность ни как не связанная с компьютерами, кроме готовых программ), у меня бейсик. Ждём дочь.
имхо, спрашивали неправильно. Спросите, знает ли он, что такое "CR-LF"
Хотя, возможно, я переоценил знания школьников :)
Настало время спросить у гугла :), потом перевести на сомалийский и опять на русский - вот и откроется истина :)
Чтобы лезть к станку со светодиодами - надо узнать, есть ли у него UART в принципе. В противном случае вы задачу не решите энивэй. Конечно чему-то научитесь, но...
Да поймите, я не лезу сейчас к станку, я хочу научиться избавляться от лишних символов без сравнения. Это возможно или нет ? Я ввел ЧИСЛО 0, мне передалось ЧИСЛО 0, я ввел ЧИСЛО 10 мне передалось ЧИСЛО 10. И я с этими числами могу дальше работать, складывать, умножать, делить и тд
Да я-то Вас понимаю. Ваш черед понять, что программирование на МК не бывает абстрактным. Вы всегда будете ограничены памятью, скоростью, доступными интерфейсами, еще много чем.
Вы же не можете потренироваться на своем станке, а потом херак - и квадракоптер запрограммировать.
Если хотите просто поупражняться в разборе строки - это одно. Устроить сопряжение с реальным станком - другое. Для первого никакая ардуина не нужна - возьмите любую среду программирования на BigPC и до посинения там разделывайте CRLF на запчасти.
Да поймите, я не лезу сейчас к станку, я хочу научиться избавляться от лишних символов без сравнения. Это возможно или нет ? Я ввел ЧИСЛО 0, мне передалось ЧИСЛО 0, я ввел ЧИСЛО 10 мне передалось ЧИСЛО 10.
между числом 0 и числом 10 есть принципиальная разница. ноль - это один символ, а 10 - это два, '1' + '0'.
И для того, чтобы работать с числами от 10 и выше - в любом случае надо осваиваться с обработкой многих символов - что на порядок сложнее, чем прием одного символа.
Именно поэтому вам Садман41 предлагал заменить числа после 10 буквами - он вам хотел упростить задачу, а вы не поняли....
Сын сказал точка с запятой - закончил ВУЗ, программирование было- паскаль (специальность ни как не связанная с компьютерами, кроме готовых программ), у меня бейсик. Ждём дочь.
имхо, спрашивали неправильно. Спросите, знает ли он, что такое "CR-LF"
Хотя, возможно, я переоценил знания школьников :)
Не спрошу, отъехали все до завтра, но вряд ли он знает. Вот что смешно - он может сам собрать компьютер из деталек о которых сам всё узнает и купит, сам выберит и установит, настроит желаемое ПО , и много ещё чего, но с опаской спросит не убьёт ли его электричество в только что выключенном компьютере. Вообщем философия бытия...
в дальнейшем возможено мне захочется пришиться к большому станку (fanuc, haas, mazak)
сейчас очень рано говорить про идеи.
А мозг выносить себе и всем остальным – в самый раз.
о которых сам всё узнает и купит, сам выберит и установит, настроит желаемое ПО , и много ещё чего, но с опаской спросит не убьёт ли его электричество в только что выключенном компьютере.
Очень умнО. Конденсаторы - они злопамятные...
Да я-то Вас понимаю. Ваш черед понять, что программирование на МК не бывает абстрактным. Вы всегда будете ограничены памятью, скоростью, доступными интерфейсами, еще много чем.
Вы же не можете потренироваться на своем станке, а потом херак - и квадракоптер запрограммировать.
Если хотите просто поупражняться в разборе строки - это одно. Устроить сопряжение с реальным станком - другое. Для первого никакая ардуина не нужна - возьмите любую среду программирования на BigPC и до посинения там разделывайте CRLF на запчасти.
Понял Вас, более детально разберу этот вопрос.
между числом 0 и числом 10 есть принципиальная разница. ноль - это один символ, а 10 - это два, '1' + '0'.
И для того, чтобы работать с числами от 10 и выше - в любом случае надо осваиваться с обработкой многих символов - что на порядок сложнее, чем прием одного символа.
Именно поэтому вам Садман41 предлагал заменить числа после 10 буквами - он вам хотел упростить задачу, а вы не поняли....
Да я понял, мне нужно было упростить по другому, parseInt работает же не с одним числом. ввожу 10, он мне передает 10, а не 1,0.
Если Вы не видите разницы, то Ваша проблема именно в этом.
Когда научитесь различать эти понятия, сами удивитесь насколько легче станет жить.
Кто объяснит ТС про управляющие символы?
Если Вы не видите разницы, то Ваша проблема именно в этом.
Когда научитесь различать эти понятия, сами удивитесь насколько легче станет жить.
Не, не начнёт,
Вы не ввели число вы ввели символ нуля, чтобы оно стало числом его надо преобразовать, отнять 48 )))
Проверка совершенно простая
1. Нажимаем клавишу NumLock (будем вводить числа)
2. Нажимаем клавишу Alt и удерживая её набираем на цифровой клавиатуре 48
3. Отпускаем клавишу Alt - созерцаем символ 0
В бытность СССР мои станки на фрезеровании имели точность 2 микрона, координатный станок 1 микрон, и программист для этих станков имел высшее математическое образование
Если Вы не видите разницы, то Ваша проблема именно в этом.
Когда научитесь различать эти понятия, сами удивитесь насколько легче станет жить.
Разве не как обзовешь переменную, тем она и будет ? Я обозвал int, на сколько я помню это именно целочисленные значения, а строки идут как char..
То были неправильные станки, не ардуиновские. Почитайте рекламу, она врать не будет - на ардуине не нужно никакого образование, любая беременная доярка может делать а@@ительные двайсы, роботов, свето-шоу и дома, которые умнее её самой. Вот они (доярки) и делают :)
о которых сам всё узнает и купит, сам выберит и установит, настроит желаемое ПО , и много ещё чего, но с опаской спросит не убьёт ли его электричество в только что выключенном компьютере.
Очень умнО. Конденсаторы - они злопамятные...
Ну самые злые в клетке сидят... По молодости курочил телевизор, зачем включал не знаю, прошёл час или больше, стал с кинескопа вроде ленту сматывать. Куда коснулся, не помню, но прошло ощущение до локтя...
Знакомый рассказывал как кабель тронули свеже отключенный и в земле, но очень длинный и тоже ощущения не ах.
Разве не как обзовешь переменную, тем она и будет ? Я обозвал int, на сколько я помню это именно целочисленные значения, а строки идут как char..
Ну, вот, собственно, и я про тоже.
Пока Вы не пойиёте что Вы вводите, что читаете, чем отличается '0' от "0" и они оба от '\0", вы так и будете как котёнок слепой тыкаться.
В общем, так:
1 кладите ардуину на полку подальше
2. скачивайте любой бесплатный компилятор
3. Берите КиР и читайте его, запуская и отлаживая ВСЕ приведённые там примеры до тех пор, пока Вы не сможете этот пример осознанно изменять и получать то, что ожидали.
4. ТОлько после этого возвращайтесь к ардуине.
Если Вы этого не сделаете - так и будете беременной дояркой.
И да, кстати, никакие отмазы "я потом почитаю, а щас памагите решить проблему" не принимаются. Сначала КиР, потом программировть - именно в таком порядке. Иначе Вы сами себя на смех выставляете. Несолидно.
Там нет ничего заумного. Любой нормальный человек (не идиот в медицинском смысле) вполне может освоить. И Вы можете, просто сделайте то, что Вам написал.
чем дальше, тем увлекательнее...
Евгений Петрович, как всегда - самую суть ухватил.
Ха. Я это еще в #43 говорил.
Ха. Я это еще в #43 говорил.
надеялся, что ТС после #3 осмысленно и внимательно посмотрит код и попросит, а где почитать, ан нет, теперь админу сколько работы зачищать это флуд
Разве не как обзовешь переменную, тем она и будет ? Я обозвал int, на сколько я помню это именно целочисленные значения, а строки идут как char..
Ну, вот, собственно, и я про тоже.
Пока Вы не пойиёте что Вы вводите, что читаете, чем отличается '0' от "0" и они оба от '\0", вы так и будете как котёнок слепой тыкаться.
В общем, так:
1 кладите ардуину на полку подальше
2. скачивайте любой бесплатный компилятор
3. Берите КиР и читайте его, запуская и отлаживая ВСЕ приведённые там примеры до тех пор, пока Вы не сможете этот пример осознанно изменять и получать то, что ожидали.
4. ТОлько после этого возвращайтесь к ардуине.
Если Вы этого не сделаете - так и будете беременной дояркой.
И да, кстати, никакие отмазы "я потом почитаю, а щас памагите решить проблему" не принимаются. Сначала КиР, потом программировть - именно в таком порядке. Иначе Вы сами себя на смех выставляете. Несолидно.
Там нет ничего заумного. Любой нормальный человек (не идиот в медицинском смысле) вполне может освоить. И Вы можете, просто сделайте то, что Вам написал.
Поясните, что такое КиР? Да и на смех я себя не выставляю, вы в одном масле варитесь, я в другом. Просто мне моё масло надоело. Или те, кто не скажет что я делаю своей программой тоже на смех себя выставляют? Я же просил меня отправить в учебник или статью, но почему-то так принято на форуме видимо, что нужно показать свое превосходство.
КиР=книга по С от Кернигана и Ритчи
В песочнице есть на нее ссылка, в прилепленном
КиР=книга по С от Кернигана и Ритчи
Спасибо.
Поясните, что такое КиР?
Вам про эту книгу ещё #43 писали (более полусотни постов назад). Вы читаете что Вам пишут?
Да и на смех я себя не выставляю
Выставляете. Вы даже не представляете детсадовскость Ваших вопросов. Читайте КиР, разбирайтесь, потом перечитаете пост - посмеётесь.
так принято на форуме видимо
Не будьте гимназисткой и не надувайте обиженно губки, услышав слово "писька". Я дал Вам самый лучший совет, который только можно дать в Вашей ситуации. Просто следуйте ему. Если же Вы будете продолжать здесь "решать проблему" не прочитав матчасть - будет гораздо хуже.
Да поймите, я не лезу сейчас к станку, я хочу научиться избавляться от лишних символов без сравнения. Это возможно или нет ? Я ввел ЧИСЛО 0, мне передалось ЧИСЛО 0, я ввел ЧИСЛО 10 мне передалось ЧИСЛО 10. И я с этими числами могу дальше работать, складывать, умножать, делить и тд
Потому, что если хотите получить число 0, то и передавать должны число 0, а Вы вместо этого передаете строку "0". А получить хотите число. Так не бывает. Либо передавайте и принимайте число, либо передавайте и принимайте строку, но тогда нужно будет преобразовывать строку в число. (обратите внимание - не символ, а именно строку. Это не одно и то же)