Subversion Repositories HomeAutomation

Rev

Blame | Last modification | View Log | SVN | RSS feed

  1.  
  2. Touch_ModuleNames    = [ "Touch" ];
  3. Touch_Aliases        = function() { return Module_GetAliasNames(Touch_ModuleNames); };
  4. Touch_AvailableIds   = function() { return Module_GetAvailableIds(Touch_ModuleNames); };
  5.  
  6.  
  7. function Touch_OnMessage(module_name, module_id, command, variables)
  8. {
  9.     if (in_array(Touch_ModuleNames, module_name))
  10.     {
  11.         var aliases_data = Module_LookupAliases({
  12.             "module_name" : module_name,
  13.             "module_id"   : module_id,
  14.             "group"       : false
  15.         });
  16.        
  17.         switch (command)
  18.         {
  19.             case "Gesture":
  20.                 var gesture = null;
  21.                 gesture = Touch_lookupGesture(variables["f1"],variables["f2"],variables["f3"],variables["f4"],variables["f5"],variables["f6"],variables["f7"],variables["f8"],variables["f9"]);
  22.                 for (var alias_name in aliases_data)
  23.                 {
  24.                     if (gesture == null)
  25.                     {
  26.                         Log("\033[31m" + alias_name + ": New Gesture, f1: "+ variables["f1"] + ", f2: " + variables["f2"] + ", f3: " + variables["f3"] + ", f4: " + variables["f4"] + ", f5: " + variables["f5"] + ", f6: " + variables["f6"] + ", f7: " + variables["f7"] + ", f8: " + variables["f8"] + ", f9: " + variables["f9"] +".\033[0m\n");
  27.                     }
  28.                     else
  29.                     {
  30.                         //Log("\033[31m"+alias_name+": New Gesture: "+ gesture +".\033[0m\n");
  31.                        
  32.                     }  
  33.                     var last_value = {};
  34.                     var last_value_string = Storage_GetParameter("LastValues", alias_name);
  35.                
  36.                     if (last_value_string)
  37.                     {
  38.                         last_value = eval("(" + last_value_string + ")");
  39.                     }
  40.                    
  41.                     last_value[command] = { "Gesture" : gesture, "timestamp" : get_time() };
  42.                    
  43.                     Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
  44.                 }
  45.                 break;
  46.             case "Raw":
  47.  
  48.                 break;
  49.         }
  50.     }
  51. }
  52. Module_RegisterToOnMessage("all", Touch_OnMessage);
  53.  
  54. function Touch_lookupGesture(f1, f2, f3, f4, f5, f6, f7, f8, f9)
  55. {
  56.     var gestures = Storage_GetParameters("Gestures");
  57.    
  58.     for (var gesture in gestures)
  59.     {
  60.         gesture_value = eval("(" + gestures[gesture] + ")");
  61.        
  62.         //log(this.myName + ":" + this.myId + "> Checking : " + gestureStore['gestures'][n]['name'] + "\n");
  63.         var result = 1;
  64.         if (gesture_value['masks']['f1_lower'] > f1 || gesture_value['masks']['f1_upper'] < f1)
  65.         {
  66.         //  log("1");
  67.             result = 0;
  68.             continue;
  69.         }
  70.         if (gesture_value['masks']['f2'] == 1 && gesture_value['functions']['f2'] != f2)
  71.         {
  72.         //  log("2");
  73.             result = 0;
  74.             continue;
  75.         }
  76.         if (gesture_value['masks']['f3'] == 1 && gesture_value['functions']['f3'] != f3)
  77.         {
  78.         //  log("3");
  79.             result = 0;
  80.             continue;
  81.         }
  82.         if (gesture_value['masks']['f4'] == 1 && gesture_value['functions']['f4'] != f4)
  83.         {
  84.         //  log("4");
  85.             result = 0;
  86.             continue;
  87.         }
  88.         if (gesture_value['masks']['f5'] == 1 && gesture_value['functions']['f5'] != f5)
  89.         {
  90.         //  log("5");
  91.             result = 0;
  92.             continue;
  93.         }
  94.         if (gesture_value['masks']['f6'] == 1 && gesture_value['functions']['f6'] != f6)
  95.         {
  96.         //  log("6");
  97.             result = 0;
  98.             continue;
  99.         }
  100.         if (gesture_value['masks']['f7_lower'] > f7 || gesture_value['masks']['f7_upper'] < f7)
  101.         {
  102.         //  log("7");
  103.             result = 0;
  104.             continue;
  105.         }
  106.         if (gesture_value['masks']['f8'] == 1 && gesture_value['functions']['f8'] != f8)
  107.         {
  108.         //  log("8");
  109.             result = 0;
  110.             continue;
  111.         }
  112.         if (gesture_value['masks']['f9'] == 1 && gesture_value['functions']['f9'] != f9)
  113.         {
  114.         //  log("9");
  115.             result = 0;
  116.             continue;
  117.         }
  118.         if (result == 1) {
  119.             return gesture;
  120.         }
  121.     }
  122. }
  123.  
  124.