Перейти к содержанию
Симферопольский Форум

Нужна помощь по скетчу


MedicusAmicus

Рекомендуемые сообщения

Лазерные дальномеры (в виде готового изделия)

Готовые изделия курочить, извлекать собственно модуль, разбираться в протоколе передачи данных - не, не настолько надо.

Сейчас на одном канале трудится HC-SR501 в связке с HC-SR04, на втором - один HC-SR04. + датчик освещенности на ардуине.

Исполнитель - 4-канальное реле, 2 канала нагружены ночной подсветкой разных зон коридора, 2 канала свободны.

На один думаю повесить свет в чулан, на второй - вентиляцию в ванной.

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

Где слова теряют всякий смысл, потому что несут ложь.

 

Нравственность придумали сытые, могущественные и очень неглупые люди, чтобы все остальные посвящали свой досуг поискам правых и виноватых…

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

Допплеровский сенсор на таких расстояниях вполне прилично работает

Тут нужен будет именно дальномер, ибо дистанция содержит 3 разных изолированных зоны срабатывания.

 

"самописный алгоритм обработки" не изменит факта сложного эха от стен и мебели.

В "паспортных" условиях HC-SR04 до 4 метров меряет, мне бы одного хватило, но геометрия помещения вносит свои поправки.

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

Где слова теряют всякий смысл, потому что несут ложь.

 

Нравственность придумали сытые, могущественные и очень неглупые люди, чтобы все остальные посвящали свой досуг поискам правых и виноватых…

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

SlavaD, скетч допилен в целом, просто хотел "красоту" навести.

По рабочим характеристикам корявый оказался надежнее элегантного.

 

#define LDR_PIN A0   //пин фоторезистора
#define RELAY_PIN1 6 //пин реле коридора
#define RELAY_PIN2 7 //пин реле вход
#define pirPin 3     //датчик движения

#define S_TRIG1 12 //триггер звука коридор
#define S_ECHO1 11 //ловим эхо
#define S_TRIG2 10 //триггер звука вход
#define S_ECHO2 9 //ловим эхо

int tres = 300;  //порог освещенности
int RANGE1 = 10; //предел дистанции обнаружения коридор
int RANGE2 = 175; //предел дистанции обнаружения вход

unsigned int distance1=0; 
unsigned int impulseTime1=0;
unsigned int distance2=0; 
unsigned int impulseTime2=0;
 
unsigned long previousMillis1 = 0;      //храним время последнего Включения света
unsigned long previousMillis2 = 0;      //храним время последнего Включения света
unsigned long interval = 10000;         //интервал работы (10 секунд)

boolean CLOSE0_1, CLOSE1_1, CLOSE2_1; 
boolean CLOSE0_2, CLOSE1_2, CLOSE2_2;

void setup() {
 Serial.begin(9600);
 pinMode (pirPin, INPUT); 
 pinMode (RELAY_PIN1, OUTPUT);
 pinMode (S_TRIG1, OUTPUT);
 pinMode (RELAY_PIN2, OUTPUT);
 pinMode (S_TRIG2, OUTPUT);
}
  
void loop() 
{
     boolean dark = (analogRead(LDR_PIN) > tres); //сравниваем освещенность с порогом
     Serial.println("dark \t distance1 \t CLOSE0_1  \t needLight1 \t distance2 \t CLOSE0_2  \t needLight2 ");
     Serial.print(analogRead(LDR_PIN));        Serial.print("\t");
  int motion = digitalRead(pirPin); //считываем датчик движения
       
  digitalWrite(S_TRIG1, HIGH);   // Подаем импульс на вход trig дальномера 
  delayMicroseconds(10); // равный 10 микросекундам 
  digitalWrite(S_TRIG1, LOW); // Отключаем 
  impulseTime1 = pulseIn(S_ECHO1, HIGH); 
  distance1=impulseTime1/58; // Пересчитываем в сантиметры 
    Serial.print(distance1);    Serial.print("\t \t");
  CLOSE0_1 = distance1<RANGE1 && distance1>1;
    Serial.print (CLOSE0_1); Serial.print("\t \t");
    delay (30);
     //начинаем проверки
   if (CLOSE0_1 == 1)
       {
       digitalWrite(S_TRIG1, HIGH);   // Подаем импульс на вход trig дальномера 
       delayMicroseconds(10); // равный 10 микросекундам 
       digitalWrite(S_TRIG1, LOW); // Отключаем 
        CLOSE1_1 = (pulseIn(S_ECHO1, HIGH)/58) <RANGE1;
       delay (30);
       }
            if (CLOSE1_1 == 1)
            {
            digitalWrite(S_TRIG1, HIGH);   // Подаем импульс на вход trig дальномера 
            delayMicroseconds(10); // равный 10 микросекундам 
            digitalWrite(S_TRIG1, LOW); // Отключаем 
            CLOSE2_1 = (pulseIn(S_ECHO1, HIGH)/58) <RANGE1;
            }
   boolean CLOSE1 = (CLOSE0_1 && CLOSE1_1 && CLOSE2_1); 
         
boolean needLight1 = (CLOSE1 && dark) || (motion &&  dark);
 
 if (needLight1 == 1) 
   {
   digitalWrite (RELAY_PIN1, HIGH); // горит 
   previousMillis1 = millis(); // отсчёт отсрочки начинается сначала...
   }
 // Прошло время выключаем свет
       if (previousMillis1 && (millis()-previousMillis1 >= interval)) 
 {
   digitalWrite (RELAY_PIN1, LOW); // не горит 
   previousMillis1 = 0;
 }
  Serial.print (needLight1); Serial.print("\t \t ");

 digitalWrite(S_TRIG2, HIGH);   /* Подаем импульс на вход trig дальномера */
  delayMicroseconds(10); // равный 10 микросекундам 
  digitalWrite(S_TRIG2, LOW); // Отключаем 
  impulseTime2 = pulseIn(S_ECHO2, HIGH); 
  distance2=impulseTime2/58; // Пересчитываем в сантиметры 
    Serial.print(distance2);    Serial.print("\t \t ");
  CLOSE0_2 = distance2<RANGE2 && distance2>1;
    Serial.print (CLOSE0_2); Serial.print("\t \t");
    delay (30);
     //начинаем проверки
   if (CLOSE0_2 == 1)
       {
       digitalWrite(S_TRIG2, HIGH);   /* Подаем импульс на вход trig дальномера */
       delayMicroseconds(10); // равный 10 микросекундам 
       digitalWrite(S_TRIG2, LOW); // Отключаем 
        CLOSE1_2 = (pulseIn(S_ECHO2, HIGH)/58) <RANGE2;
       delay (30);
       }
            if (CLOSE1_2 == 1)
            {
            digitalWrite(S_TRIG2, HIGH);   /* Подаем импульс на вход trig дальномера */
            delayMicroseconds(10); // равный 10 микросекундам 
            digitalWrite(S_TRIG2, LOW); // Отключаем 
            CLOSE2_2 = (pulseIn(S_ECHO2, HIGH)/58) <RANGE2;
            }
   boolean CLOSE2 = (CLOSE0_2 && CLOSE1_2 && CLOSE2_2);
         
boolean needLight2 = (CLOSE2 && dark);
 
 if (needLight2 == 1) // Если расстояние менее предела 
   {
   digitalWrite (RELAY_PIN2, HIGH); // горит 
   previousMillis2 = millis(); // отсчёт отсрочки начинается сначала...
   }
 // Прошло время выключаем свет
       if (previousMillis2 && (millis()-previousMillis2 >= interval)) 
 {
   digitalWrite (RELAY_PIN2, LOW); // не горит 
   previousMillis2 = 0;
 }
  Serial.println (needLight2);
  delay (500);
 }

 

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

Где слова теряют всякий смысл, потому что несут ложь.

 

Нравственность придумали сытые, могущественные и очень неглупые люди, чтобы все остальные посвящали свой досуг поискам правых и виноватых…

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

Доброго времени, кому не спится.

Новая задача.

Имеем два массива: названия кнопок/команд и коды этих команд (ИК пульты)

Задача - найти в массиве поступившие данные, выдать нагорА адрес ячейки, во втором массиве найти соответствующее значение и передать в терминал/ик-излучатель.

char* codeNames[]={"Vol_Up","Vol_Down","Mute","PC/Aux","Opt/Cox"};
char* codes[]={"1E70807F","1E7040BF","1E70906F","1E7000FF","1E70C03F"};

Как пример. Коды есть возможность пересчитать в любой кодировке.

Через switch(results.value){ case ....} делать муторно - 3 пульта, почти сотня кнопок.

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

Где слова теряют всякий смысл, потому что несут ложь.

 

Нравственность придумали сытые, могущественные и очень неглупые люди, чтобы все остальные посвящали свой досуг поискам правых и виноватых…

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

MedicusAmicus

Ну циклом, думаю, проще всего будет:

 

char* codeNames[]={"Vol_Up","Vol_Down","Mute","PC/Aux","Opt/Cox"};
char* codes[]={"1E70807F","1E7040BF","1E70906F","1E7000FF","1E70C03F"};

#define ArrSize(arg) ((unsigned int) (sizeof (arg) / sizeof (arg[0])))

for (i = 0; i < ArrSize(codeNames)-1; i++) {
 if ( input_code == codeNames[i]) {
   // как-то передаём в терминал значение элемента codes[i] 
  }
}

Ссылка на комментарий
Поделиться на другие сайты

Попробую, спасибо.

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

Где слова теряют всякий смысл, потому что несут ложь.

 

Нравственность придумали сытые, могущественные и очень неглупые люди, чтобы все остальные посвящали свой досуг поискам правых и виноватых…

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

Не знаю, в каком формате он принимает данные, но по значению кода искать отказывается напрочь, сволочь такая.

Буду через свитч делать.

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

Где слова теряют всякий смысл, потому что несут ложь.

 

Нравственность придумали сытые, могущественные и очень неглупые люди, чтобы все остальные посвящали свой досуг поискам правых и виноватых…

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

Не будет так искать по коденамес !

У Вас элементы массива - строки,

нельзя сравнивать в IF две строки - (можно только переменные типа char - 1 байт).

Для сравнения строк в стандартном (ANSI C) есть специальная функция strcmp,

вот и копайте в этом направлении ...

Ссылка на комментарий
Поделиться на другие сайты

или может такая муть сработает ))) не вкурсе просто что там на скетче работает )

const  char* codeNames[]={"Vol_Up","Vol_Down","Mute","PC/Aux","Opt/Cox","\0"};
const  char* codeHex[]={"1E70807F","1E7040BF","1E70906F","1E7000FF","1E70C03F","\0"};

int getHexPosition( gainCode[] ) {  //подразумевается char gainCode[] 

int i = 0;
while ( !strcmp(codeNames[i], "\0" )) {
   	strcmp( receiveCode, codeNames[i]) ? i++ : return i;
}
return -1;
}

 

 

//в мейне или где там цикл основной вызываем примерно так

const char hexSignal[] = codeHex[getHexPosition( gainCode[])]); 

Ссылка на комментарий
Поделиться на другие сайты

Этот вариант пробовал, не хочет.

Пилю универсальный пульт из ардуины.

Этот скетч должен получить код ик-пульта, найти соответствие в базе, выдать в терминал название команды.

Потом из него переделаю на отправку последовательности через ик-диод по поступившей команде.

Возможно, даже на 8266 сделаю. Если памяти хватит.

Вероятнее всего, буду что-то подобное лепить:

switch ( results.value ) {
   case 0xFFA857:
       serial.println ("Vol_Up");
       break;
   case 0xFFE01F:
       serial.println ("Vol_Down");
       break;
   }    

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

Где слова теряют всякий смысл, потому что несут ложь.

 

Нравственность придумали сытые, могущественные и очень неглупые люди, чтобы все остальные посвящали свой досуг поискам правых и виноватых…

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

Да не надо мудрить-как было первоначально предложено, так и оставить,

просто вместо сравнениия input_code == codeNames

поставить вызов strcmp, в соответствии с её реализацией в Вашей системе.

Ссылка на комментарий
Поделиться на другие сайты

strcmp ругается на несоответствие типов.

Массив типа char - двухмерный, итоговый указатель - одно значение. Не разобрался, что ему скормить, чтобы удовлетворить.

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

Где слова теряют всякий смысл, потому что несут ложь.

 

Нравственность придумали сытые, могущественные и очень неглупые люди, чтобы все остальные посвящали свой досуг поискам правых и виноватых…

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

минутку, посмотрю хелп

 

if(strcmp(input_code, codeNames) == 0) { действия по совпадению }

 

может быть потребуется &input_code

 

просто я не пользуюсь ардуиной и скетчами-всё самописное,

без RTOS и прочего-могут быть нюансы в функциях

Ссылка на комментарий
Поделиться на другие сайты

#include "IRremote.h"

IRrecv irrecv(2); // указываем вывод, к которому подключен приемник
#define Led 4   //визуальный контроль сигнала 
decode_results results;

void setup() {  
 Serial.begin(9600); // выставляем скорость COM порта
 pinMode (Led, OUTPUT);
 irrecv.enableIRIn(); // запускаем прием
}

void loop() {
 if ( irrecv.decode( &results )) { // если данные пришли
   digitalWrite (Led, &results);
   delay (1);
   digitalWrite (Led,0);
     switch ( results.value ) 
     {
       case 0x1E70807F: Serial.println("Vol_Up"); break;
       case 0x1E7040BF: Serial.println("Vol_Down"); break;
       case 0x1E70906F: Serial.println("Mute"); break;
       case 0x1E7000FF: Serial.println("PC/Aux"); break;
       case 0x1E70C03F: Serial.println("Opt/Cox"); break;
     }    
   }
 Serial.println(results.value, HEX);
 
   irrecv.resume(); // принимаем следующую команду
 }

Примерно так будет.

Таблица соответствия кодов у меня уже есть, "кейсы"и прочее наклепаю.

Вернусь домой, проверю работоспособность.

Изменено пользователем MedicusAmicus

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

Где слова теряют всякий смысл, потому что несут ложь.

 

Нравственность придумали сытые, могущественные и очень неглупые люди, чтобы все остальные посвящали свой досуг поискам правых и виноватых…

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

На минуточку поржать. Коды кнопок пульта кондиционера.

//кондей
       case 0x1090060A	: Serial.println("	Mode Auto On	");	break;
       case 0x2030040A	: Serial.println("	Mode Heat Off	");	break;
       case 0x3030060A	: Serial.println("	Mode Heat On	");	break;
       case 0x4890040A	: Serial.println("	Mode Moist Off	");	break;
       case 0x5890060A	: Serial.println("	Mode Moist On	");	break;
       case 0x8800040A	: Serial.println("	Mode Cold Off	");	break;
     //  case 0x9000060A	: Serial.println("	Fan Auto	");	break;
     //  case 0x9000060A	: Serial.println("	Sleep Off	");	break;
     //  case 0x9000060A	: Serial.println("	Turbo Off	");	break;
       case 0x90000E0A	: Serial.println("	Turbo On	");	break;
       case 0x90040A	  : Serial.println("	Mode Auto Off	");	break;
       case 0x9100060A	: Serial.println("	Sleep On	");	break;
     //  case 0x9400060A	: Serial.println("	Fan Mid	");	break;
     //  case 0x9400060A	: Serial.println("	X-Fan Off	");	break;
     //  case 0x9400060A	: Serial.println("	Swing Up	");	break;
     //  case 0x9400060A	: Serial.println("	Swing Mid-up	");	break;
     //  case 0x9400060A	: Serial.println("	Swing Mid	");	break;
     //  case 0x9400060A	: Serial.println("	Swing Mid-down	");	break;
     //  case 0x9400060A	: Serial.println("	Swing Down	");	break;
     //  case 0x9400060A	: Serial.println("	Swing Off	");	break;
     //  case 0x9400060A	: Serial.println("	16	");	break;
       case 0x9400070A	: Serial.println("	X-Fan On	");	break;
       case 0x9410060A	: Serial.println("	24	");	break;
       case 0x9420060A	: Serial.println("	20	");	break;
       case 0x9430060A	: Serial.println("	28	");	break;
       case 0x9450060A	: Serial.println("	26	");	break;
       case 0x9460060A	: Serial.println("	22	");	break;
       case 0x9470020A	: Serial.println("	Light Off	");	break;
     //  case 0x9470060A	: Serial.println("	30	");	break;
     //  case 0x9470060A	: Serial.println("	Light On	");	break;
     
     //  case 0x9480060A	: Serial.println("	17	");	break;
     //  case 0x9480060A	: Serial.println("	18	");	break;
       case 0x9490060A	: Serial.println("	25	");	break;
       case 0x94A0060A	: Serial.println("	21	");	break;
       case 0x94B0060A	: Serial.println("	29	");	break;
       case 0x94C0060A	: Serial.println("	19	");	break;
       case 0x94D0060A	: Serial.println("	27	");	break;
       case 0x94E0060A	: Serial.println("	23	");	break;
     //  case 0x9600060A	: Serial.println("	Swing Mov Down	");	break;
     //  case 0x9600060A	: Serial.println("	Swing Mov Mid	");	break;
     //  case 0x9600060A	: Serial.println("	Swing Mov Up	");	break;
     //  case 0x9800060A	: Serial.println("	Mode Cold On	");	break;
     //  case 0x9800060A	: Serial.println("	Fan Low	");	break;
       case 0x9C00060A	: Serial.println("	Fan High	");	break;
       case 0xC4E0040A	: Serial.println("	Mode Vent Off	");	break;
       case 0xD4E0060A	: Serial.println("	Mode Vent On	");	break;

Закоментированные строки.

И как эту хрень различать?

Надо будет попробовать слать эти команды и смотреть на результат. Похоже, пульт хитрожелтый.

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

Где слова теряют всякий смысл, потому что несут ложь.

 

Нравственность придумали сытые, могущественные и очень неглупые люди, чтобы все остальные посвящали свой досуг поискам правых и виноватых…

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

Вот держу в руках пульт кондиционера.

К примеру имеется одна кнопка Fan Speed - скорость вращения вентилятора.

Но скоростей 5, они перебираются последовательно, циклически, а код команды один и тот же.

Та же картина с клавишей положения заслонки - код один, а положений несколько.

Именно это и имелось в виду.

Ссылка на комментарий
Поделиться на другие сайты

Добавлю по распознаванию кодов:

 

у многих кодов одинаковое тело и окончание - можно проанализировать и,

возможно, достаточно будет сравнивать один байт, а не всю строку.

Ссылка на комментарий
Поделиться на другие сайты

CIBAS, внимательно посмотрите на коды. Шторка - даихусей.

А вот температура 30 градусов и световой индикатор, переключение на охлаждение/свинг/и малая скорость потока - несколько наводят на мысли.

Где-то что упущено.

Похоже, реакция на код зависит от текущего режима кондиционера и еще какой-нибудь фазы 4 луны Юпитера.

Позабавили отдельные коды на выключение из разных режимов.

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

Где слова теряют всякий смысл, потому что несут ложь.

 

Нравственность придумали сытые, могущественные и очень неглупые люди, чтобы все остальные посвящали свой досуг поискам правых и виноватых…

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

Сам, через IRremote

Документации нет.

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

Где слова теряют всякий смысл, потому что несут ложь.

 

Нравственность придумали сытые, могущественные и очень неглупые люди, чтобы все остальные посвящали свой досуг поискам правых и виноватых…

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

Понятно, надо взглянуть осциллограммы и сравнить с кодами, бывает

всякое - импульсы не очень красивые или декодер не совсем честный ....

Ссылка на комментарий
Поделиться на другие сайты

Этот вариант пробовал, не хочет.

Хотелось более подробное что - то, почему бы не поставить софт https://habr.com/post/149773/ и не смотреть хотябы в нем на работоспособность, народ же накидывает примерный алгоритм малоли где какие указатели и ссылки надо накнопать )))

 

IDE написало бы ошибку так как нужно подключить #include для работы strcmp, а что там в ардуино хз..

 

strcmp ругается на несоответствие типов.

это один тип char* codes[]={"1E70807F",

 

и это другой results.value который 0x1E70807F

 

разные типы, поэтому изначально неправильно задача поставлена сравнивать массивы char.

 

Нужно посмотреть что за тип results.value, создать такой же массив. Предполагаю что будет массив типов decode_results, посмотреть что там внутри может уже все сделано давно..

 

 

if(strcmp(input_code, codeNames) == 0) { действия по совпадению } может быть потребуется &input_code

 

или так

 

char* currentCode = *( codeNames + i++ );
strcmp( receiveCode, currentCode )

 

хотя уже наверное неважно т.к. не те типы используются

Ссылка на комментарий
Поделиться на другие сайты

Iverton, вариант с массивами я уже отставил, немного "автоматизации" в excell решило проблему однотипных выражений.

CIBAS, осциллографа нет, городить его из аудиокарты пока не хочется. Соберу макетку на передачу, буду тестировать на пациенте.

В худшем случае - откажусь от некоторых функций, если остальные будут нормально работать.

Для удаленного включения реально нужны 3-4 команды.

Мы живём в мире, где улыбка уже не значит хорошее отношение к тебе.

Где поцелуи совсем не значат чувства.

Где признания не значат любовь.

Где каждый одинок и никто не старается это изменить.

Где слова теряют всякий смысл, потому что несут ложь.

 

Нравственность придумали сытые, могущественные и очень неглупые люди, чтобы все остальные посвящали свой досуг поискам правых и виноватых…

и не мешали им спокойно кушать! (магистр Нуффлин Мони Мах)

Ссылка на комментарий
Поделиться на другие сайты

Понятно. Если 3-4 команды, то можно сгородить не разбираясь в деталях.

Ежели завтра не забуду из дома прихватить ИК датчик и его удастся запустить,

то на работе посмотрю, что пульт выдаёт.

Ссылка на комментарий
Поделиться на другие сайты

вариант с массивами я уже отставил, немного "автоматизации" в excell решило проблему однотипных выражений.

Если свичем решение будет, советую добавить default значение. Кто знает что там придет на приемник, вдруг такого значения не окажется в кейсах.

 

Все равно конечно непонятно приходит хекс 0x1E70807F , а отправлять надо строку Vol_Up, это все принимает и отправляет одно и то же устройство ?

 

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...

Чат

Чат

Please enter your display name

×
×
  • Создать...