Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 17.07.2019, 17:38   #11
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,648
Репутация: 2631
По умолчанию

Так зачем вам этот массив порядковых номеров dd_IntArray?

Цитата:
Сообщение от Arturlem Посмотреть сообщение
Цвет, чтобы зависел от входных сигналов, мне надо просто использовать вместе i a,b,c?
Нет. У вас же для каждого цвета свои a,b,c.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 18.07.2019, 11:36   #12
Arturlem
Пользователь
 
Регистрация: 17.07.2019
Сообщений: 24
Репутация: 10
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Так зачем вам этот массив порядковых номеров dd_IntArray?


Нет. У вас же для каждого цвета свои a,b,c.
Код:
void EP_setBackColorCB (string dpSource1, bool a, string dpSource2, bool b, string dpSource3, bool c, string dpSource4, bool d, string dpSource5, bool e, string dpSource6, bool f, string dpSource7, bool g, string dpSource8, bool k, string dpSource9, bool l,string dpSource10, bool m)
Для каждого сигнала, в данном случае, у нас 10 их есть свои a,b,c,d,e,f,g,k,l,m.

Теперь мне нужно создать цикл?
Код:
 { if (var < 4) 
     setValue("", "backCol", "red");
  if (var < 7)
      setValue("", "backCol", "yellow");
  if (var < 10) 
    setValue("", "backCol", "green");
    else 
    setValue("", "backCol", "white");
}
а var это и есть a,b,c,d,e,f,g,k,l,m.
int var[10] = {a,b,c,d,e,f,g,k,l,m}.

но потом как программа должна понять/реагировать, что если a==1 - вкл. a==0 -выкл?
a,b,c,d -красные;
e,f,g - желтые;
k,l,m - зеленые.
Arturlem вне форума   Ответить с цитированием
Старый 18.07.2019, 12:18   #13
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,648
Репутация: 2631
По умолчанию

Цитата:
Сообщение от Arturlem Посмотреть сообщение
в данном случае, у нас 10
Почему не кратно 3?

Цитата:
Сообщение от Arturlem Посмотреть сообщение
Теперь мне нужно создать цикл?
Можете и цикл сделать

Цитата:
Сообщение от Arturlem Посмотреть сообщение
но потом как программа должна понять/реагировать, что если a==1 - вкл. a==0 -выкл?
Цитата:
Сообщение от Аватар Посмотреть сообщение
если a то красный // и без разницы b и c
иначе если b то желтый // и без разницы c
иначе если c то зеленый
иначе белый
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 18.07.2019, 12:28   #14
Arturlem
Пользователь
 
Регистрация: 17.07.2019
Сообщений: 24
Репутация: 10
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Почему не кратно 3?
ну я просто взял 10 сигналов, там их может быть хоть 10тыс.
Мне главное придумать такой алгоритм, чтобы я не перебирал все условия для 10 тыс сигналов.

цикл, который Вы мне написали для трех букв я сделал. А если их будет 10 букв? все 10 букв писать? а цветов всего 3 у меня. Мне же не подходит этот цикл, если у меня больше трех букв.
Цитата:
a,b,c,d -красные;
e,f,g - желтые;
k,l,m - зеленые.
Arturlem вне форума   Ответить с цитированием
Старый 18.07.2019, 12:35   #15
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,855
Репутация: 6688
По умолчанию

Цитата:
Сообщение от Arturlem Посмотреть сообщение
30 сигналов при трех состояниях. 10 сигналов должны быть красными, 10-зелеными, 10 - желтыми
вот из этих 10, которые для красного, в цикле и определить - а есть ли хотя бы один включеный. Если есть - то красный, иначе то же самое для желтых и т.д. Если алгоритм еще правильно понял ) А то может еще если красных только 2, а желтых 5, то желтый более приоритетный. Ну это уже другая песня )
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар на форуме   Ответить с цитированием
Старый 18.07.2019, 12:36   #16
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,648
Репутация: 2631
По умолчанию

Цитата:
Сообщение от Arturlem Посмотреть сообщение
А если их будет 10 букв?
Если сигналы не зависимы, то должно быть 30 входных параметров.

Цитата:
Сообщение от Arturlem Посмотреть сообщение
все 10 букв писать?
Или писать цикл и пусть для 10 букв перебирает железка.

Цитата:
Сообщение от Arturlem Посмотреть сообщение
а цветов всего 3 у меня
Это не для кого тайной не было с самого начала. Вопрос в том почему кол-во входных сигналов не кратно 3. Почему для 4го выходного нет желтого и зеленого?

Цитата:
Сообщение от Arturlem Посмотреть сообщение
Мне же не подходит этот цикл, если у меня больше трех букв.
Отлично подходит. Если полжили кжзкжзкжз..., то цикл с шагом 3 и сравнения с m[i], m[i+1], m[i+2]
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 18.07.2019, 12:37   #17
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,648
Репутация: 2631
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Если алгоритм еще правильно понял )
Я уже не уверен. Вроде изначально шел разговор, что на каждый выходный по своему сигналу к ж з и в зависимости от них результирующий цвет.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 18.07.2019, 12:45   #18
Arturlem
Пользователь
 
Регистрация: 17.07.2019
Сообщений: 24
Репутация: 10
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Или писать цикл и пусть для 10 букв перебирает железка.
4 первых сигнала, я определил как красные, потом 3- желтые, 3 зеленые.
И мне надо сохранить при этом приоритет (красный -высокий, потом желтый, потом зеленый).
Код:
 main()
{
  EP_setBackColor();

}

void EP_setBackColor()
{
  dyn_errClass err;

 if( !dpExists( "System1:SP1.SP1:_online.._value") || !dpExists( "System1:SP2.SP2:_online.._value") || !dpExists( "System1:SP3.SP3:_online.._value") 
       || !dpExists( "System1:SP4.SP4:_online.._value") || !dpExists( "System1:SP5.SP5:_online.._value") || !dpExists( "System1:SP6.SP6:_online.._value") ||
       !dpExists( "System1:SP7.SP7:_online.._value")|| !dpExists( "System1:SP8.SP8:_online.._value")|| !dpExists( "System1:SP9.SP9:_online.._value") ||
       !dpExists( "System1:SP10.SP10:_online.._value"))
  {
    setValue("", "color", "black");
    return;
  }

    dpConnect("EP_setBackColorCB", "System1:SP1.SP1:_online.._value", "System1:SP2.SP2:_online.._value", "System1:SP3.SP3:_online.._value"
            , "System1:SP4.SP4:_online.._value","System1:SP5.SP5:_online.._value", "System1:SP6.SP6:_online.._value", "System1:SP7.SP7:_online.._value"
            , "System1:SP8.SP8:_online.._value", "System1:SP9.SP9:_online.._value", "System1:SP10.SP10:_online.._value");


  err = getLastError();
  if (dynlen(err) > 0)
    setValue("", "color", "black");
}




void EP_setBackColorCB (string dpSource1, bool a, string dpSource2, bool b, string dpSource3, bool c,
                        string dpSource4, bool d, string dpSource5, bool e, string dpSource6, bool f,
                        string dpSource7, bool g, string dpSource8, bool k, string dpSource9, bool l,
                        string dpSource10, bool m)
{
 dyn_int var;
 var = makeDynInt(a,b,c,d,e,f,g,k,l,m);
  if (var < 4) 
     setValue("", "backCol", "red");
  if (var < 7)
      setValue("", "backCol", "yellow");
  if (var < 10) 
    setValue("", "backCol", "green");
    else 
    setValue("", "backCol", "white");
}
Вот весь мой код. Что не так у меня тут? И как мне там определить приоритет?
если красный включен и при этом я включаю зеленый, то должен гореть красный.
Arturlem вне форума   Ответить с цитированием
Старый 18.07.2019, 12:50   #19
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,648
Репутация: 2631
По умолчанию

Начнем с протого:
Сколько выходных сигналов/цветов у вас? Заисит ли кол-во выходных от кол-ва входных сигналов?
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 18.07.2019, 12:50   #20
Arturlem
Пользователь
 
Регистрация: 17.07.2019
Сообщений: 24
Репутация: 10
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Я уже не уверен. Вроде изначально шел разговор, что на каждый выходный по своему сигналу к ж з и в зависимости от них результирующий цвет.
В общем))
У нас есть 10 сигналов. У этих 10 сигналов есть состояния - к ж з.
1-4 - красные.
5-7 - желтые.
8-10 -зеленые.

Когда на симуляторе включаю первый сигнал, должен загореться красный цвет.
Если включаю 5 сигнал - желтый, но при этом первый сигнал должен быть в нуле.
Но если и первый и пятый сигнал в единице - то горит красный, так как он в приоритете
Arturlem вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сигналы из вне JohnSh C# (си шарп) 2 10.11.2016 22:38
QT - сигналы Базиля Помощь студентам 13 06.10.2013 19:39
Сигналы Yelisey Общие вопросы C/C++ 1 08.05.2011 17:54
сигналы в Qt! marselik Qt и кроссплатформенное программирование С/С++ 1 25.11.2010 00:29


16:36.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru