Subversion Repositories HomeAutomation

Rev

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

Rev Author Line No. Line
1765 linlun 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