Нужна ваша помощь господа

Тема в разделе "Закажу проект", создана пользователем BlazeWork, 4 фев 2019.

  1. BlazeWork

    BlazeWork Нуб

    Итакс на ардуинь UNO через монитор порта приходит сообщение в виде "red=150" или "blue=255" или "green=0" и надо через switch() распределить по цвету а потом прислать по analogWrite(пин цвета, значение);
    Нужен скетч
    Заранее спасибо.
     
  2. DetSimen

    DetSimen Guest

  3. Vovka

    Vovka Гик

    я так понял, что пришедшее не разделять по имя-значение? :D
     
  4. Airbus

    Airbus Радиохулиган Модератор

    if/else не предлагать.:D:D:D
     
  5. BlazeWork

    BlazeWork Нуб

    Не оптимальное решение xD
     
  6. BlazeWork

    BlazeWork Нуб

    Дорого
    надо разделить по
    red=255
    ^^^ именно эта часть и нужна в свитче, сам в С не шарю т.к. пишу на PHP
     
  7. Vovka

    Vovka Гик

    тогда озвучьте цену ;)
     
  8. Vovka

    Vovka Гик

    А в чем существенная разница для данной задачи? ;)
     
  9. b707

    b707 Гуру

    уважаемый, вы понимаете вообще. что заказываете?
    какой нафик свитч для строк переменной длины? :)
    Или давай от названия цвета оставим только первую букву - будем передавать так "R=244" - тогда можно и свитч
     
    Daniil нравится это.
  10. BlazeWork

    BlazeWork Нуб

    в php это делается так
    PHP:
    $arr = explode($str, "=");
    switch($arr[0]){
    case "red":
    //red
    break;
    case "blue":

    break;
    }
     
  11. BlazeWork

    BlazeWork Нуб

    ну так-то можно и буквой
     
  12. b707

    b707 Гуру

    во-во - оно и видно, что в С не шаришь
    В С switch для строк не работает
     
  13. b707

    b707 Гуру

    ну так-то лучше. Ша тебе какой-нить пионер напишет
    Цену только озвучь, а то потом скажешь, что это стоит 100 рублей :)
     
  14. parovoZZ

    parovoZZ Гуру

    А было б очень хорошо, если бы работало. А то иногда алгоритм так хорошо бы зашел с переменной на switch - ан нет - низзя((
     
  15. parovoZZ

    parovoZZ Гуру

    Может, со скидочкой по приятнее будет? 999 руб.
     
    Vovka нравится это.
  16. Vovka

    Vovka Гик

    для php-программиста большая сложность написать на си аналог функции explode()?
     
  17. Vovka

    Vovka Гик

    в данном случае это лишнее, достаточно анализа первой буквы, поиска знака "равно" и все после него засылать в соответствующий бит порта...
    В итоге, как всегда простая задача для ардруины, превратится из десяти байт кода в десятки килобайт (утрирую)...
     
  18. DetSimen

    DetSimen Guest

    Тебе тада не наша помощь нужна, а пианэров. Они за Доширак сделають
     
  19. Rassamaha78

    Rassamaha78 Гик

    Я бы вообще отказался от строковых переменных, а что бы никто ничего не понял, написал код на Pascal:
    Код (Text):

    type
    TColor = ( clRed, clGreen, clBlue );

    //Тогда передаваемая строка примет вид: 0=255 или 1=128 и т.д.
    //А парсинг будет типа:
    case Color of
    clRed    : analogWrite();
    clGreen: analogWrite();
    clBlue   : analogWrite();
    end;
     
    Кстати, только что подметил что на форуме нет подсветки Pascal синтаксиса.

    P.S. Одни словом лучше отказаться от строк, и передавать цвета цифрами, и трафика меньше, и case заработает на любом языке.
     
    Последнее редактирование: 4 фев 2019
    Daniil нравится это.