Subversion Repositories HomeAutomation

Rev

Rev 2275 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 2275 Rev 2280
1
 
1
 
2
PID_ModuleNames     = [ "PID" ];
2
PID_ModuleNames     = [ "PID" ];
3
PID_SensorModuleNames   = [ "DS18x20", "FOST02", "DHT11", "NTC", "TC1047A", "LM335", "TCN75A" ];
3
PID_SensorModuleNames   = [ "DS18x20", "FOST02", "DHT11", "NTC", "TC1047A", "LM335", "TCN75A" ];
4
PID_ActModuleNames  = [ "hwPWM", "softPWM", "SlowPWM", "PCAPWM" ];
4
PID_ActModuleNames  = [ "hwPWM", "softPWM", "SlowPWM", "PCAPWM" ];
5
 
5
 
6
PID_Intervals       = function() { return [ 1, 5, 10, 15, 20 ]; };
6
PID_Intervals       = function() { return [ 1, 5, 10, 15, 20 ]; };
7
//PID_Energy            = function() { return [ 0, 500, 1000, 5000, 10000 ]; };
7
//PID_Energy            = function() { return [ 0, 500, 1000, 5000, 10000 ]; };
8
PID_Temperatures    = function() { return [ 20, 25, 30, 35 ]; };
8
PID_Temperatures    = function() { return [ 20, 25, 30, 35 ]; };
9
PID_Constants       = function() { return [ 0, 0.1, 0.5, 1, 10, 100, 1000 ]; };
9
PID_Constants       = function() { return [ 0, 0.1, 0.5, 1, 10, 100, 1000 ]; };
10
PID_TimeUnits       = function() { return [ "s", "ms"]; };
10
PID_TimeUnits       = function() { return [ "s", "ms"]; };
-
 
11
PID_ControllerDirection = function() { return [ "direct", "reverse"]; };
11
PID_Times       = function() { return [ 1, 5, 10, 15, 20, 40, 60]; };
12
PID_Times       = function() { return [ 1, 5, 10, 15, 20, 40, 60]; };
12
PID_Aliases         = function() { return Module_GetAliasNames(PID_ModuleNames); };
13
PID_Aliases         = function() { return Module_GetAliasNames(PID_ModuleNames); };
13
PID_AvailableIds    = function() { return Module_GetAvailableIds(PID_ModuleNames); };
14
PID_AvailableIds    = function() { return Module_GetAvailableIds(PID_ModuleNames); };
14
PID_SensorAliases   = function() { return Module_GetAliasNames(PID_SensorModuleNames); };
15
PID_SensorAliases   = function() { return Module_GetAliasNames(PID_SensorModuleNames); };
15
PID_ActAliases      = function() { return Module_GetAliasNames(PID_ActModuleNames); };
16
PID_ActAliases      = function() { return Module_GetAliasNames(PID_ActModuleNames); };
16
 
17
 
17
function PID_SetReportInterval(alias_name, interval)
18
function PID_SetReportInterval(alias_name, interval)
18
{
19
{
19
    if (arguments.length < 2)
20
    if (arguments.length < 2)
20
    {
21
    {
21
        Log("\033[31mNot enough parameters given.\033[0m\n");
22
        Log("\033[31mNot enough parameters given.\033[0m\n");
22
        return false;
23
        return false;
23
    }
24
    }
24
   
25
   
25
    var aliases_data = Module_ResolveAlias(alias_name, PID_ModuleNames);
26
    var aliases_data = Module_ResolveAlias(alias_name, PID_ModuleNames);
26
    var found = false;
27
    var found = false;
27
   
28
   
28
    for (var name in aliases_data)
29
    for (var name in aliases_data)
29
    {
30
    {
30
        var variables = {"Time"     : interval };
31
        var variables = {"Time"     : interval };
31
       
32
       
32
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "Report_Interval", variables))
33
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "Report_Interval", variables))
33
        {
34
        {
34
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
35
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
35
        }
36
        }
36
        else
37
        else
37
        {
38
        {
38
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
39
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
39
        }
40
        }
40
       
41
       
41
        found = true;
42
        found = true;
42
    }
43
    }
43
   
44
   
44
    if (!found)
45
    if (!found)
45
    {
46
    {
46
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
47
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
47
        return false;
48
        return false;
48
    }
49
    }
49
   
50
   
50
    return true;
51
    return true;
51
}
52
}
52
Console_RegisterCommand(PID_SetReportInterval, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, PID_Aliases(), PID_Intervals()); });
53
Console_RegisterCommand(PID_SetReportInterval, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, PID_Aliases(), PID_Intervals()); });
53
 
54
 
54
 
55
 
55
function PID_setValue(alias_name, temperature)
56
function PID_setValue(alias_name, temperature)
56
{
57
{
57
    if (arguments.length < 2)
58
    if (arguments.length < 2)
58
    {
59
    {
59
        Log("\033[31mNot enough parameters given.\033[0m\n");
60
        Log("\033[31mNot enough parameters given.\033[0m\n");
60
        return false;
61
        return false;
61
    }
62
    }
62
    var aliases_data = Module_ResolveAlias(alias_name, PID_ModuleNames);
63
    var aliases_data = Module_ResolveAlias(alias_name, PID_ModuleNames);
63
    var found = false;
64
    var found = false;
64
   
65
   
65
    Log ("Called SetValue: "+temperature+"\n");
66
    Log ("Called SetValue: "+temperature+"\n");
66
 
67
 
67
    for (var name in aliases_data)
68
    for (var name in aliases_data)
68
    {
69
    {
69
        var variables = {   "Value"     : temperature,
70
        var variables = {   "Value"     : temperature,
70
                    "SensorId"     : 0 };
71
                    "SensorId"     : 0 };
71
       
72
       
72
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "Temperature_Celsius", variables))
73
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "Temperature_Celsius", variables))
73
        {
74
        {
74
            Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
75
            Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
75
        }
76
        }
76
        else
77
        else
77
        {
78
        {
78
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
79
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
79
        }
80
        }
80
       
81
       
81
        found = true;
82
        found = true;
82
    }
83
    }
83
 
84
 
84
    if (!found)
85
    if (!found)
85
    {
86
    {
86
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
87
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
87
        return false;
88
        return false;
88
    }
89
    }
89
 
90
 
90
    return true;
91
    return true;
91
}
92
}
92
Console_RegisterCommand(PID_setValue, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, PID_Aliases(), PID_Temperatures());  });
93
Console_RegisterCommand(PID_setValue, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, PID_Aliases(), PID_Temperatures());  });
93
 
94
 
94
function PID_setSensor(alias_name, alias_sensor)
95
function PID_setSensor(alias_name, alias_sensor)
95
{
96
{
96
    if (arguments.length < 2)
97
    if (arguments.length < 2)
97
    {
98
    {
98
        Log("\033[31mNot enough parameters given.\033[0m\n");
99
        Log("\033[31mNot enough parameters given.\033[0m\n");
99
        return false;
100
        return false;
100
    }
101
    }
101
    var aliases_data = Module_ResolveAlias(alias_name, PID_ModuleNames);
102
    var aliases_data = Module_ResolveAlias(alias_name, PID_ModuleNames);
102
    var found = false;
103
    var found = false;
103
   
104
   
104
    var sensor_aliases_data = Module_ResolveAlias(alias_sensor, PID_SensorModuleNames);
105
    var sensor_aliases_data = Module_ResolveAlias(alias_sensor, PID_SensorModuleNames);
105
    var first = true;
106
    var first = true;
106
    for (var sensor in sensor_aliases_data)
107
    for (var sensor in sensor_aliases_data)
107
    {
108
    {
108
        if (first == false)
109
        if (first == false)
109
        {
110
        {
110
            Log("\033[31mNo sensor by the name " + alias_sensor + " were applicable for this command, or alias was a group.\033[0m\n");
111
            Log("\033[31mNo sensor by the name " + alias_sensor + " were applicable for this command, or alias was a group.\033[0m\n");
111
            return false;
112
            return false;
112
        }
113
        }
113
        Log ("Called Set Sensor:\n");
114
        Log ("Called Set Sensor:\n");
114
        Log ("sensorModuleType:   " + sensor_aliases_data[sensor]["module_name"]+"\n");
115
        Log ("sensorModuleType:   " + sensor_aliases_data[sensor]["module_name"]+"\n");
115
        Log ("sensorModuleId:     " + sensor_aliases_data[sensor]["module_id"]+"\n");
116
        Log ("sensorModuleId:     " + sensor_aliases_data[sensor]["module_id"]+"\n");
116
        Log ("SensorId:           " + sensor_aliases_data[sensor]["specific"]["SensorId"]+"\n");
117
        Log ("SensorId:           " + sensor_aliases_data[sensor]["specific"]["SensorId"]+"\n");
117
        var id = 0;
118
        var id = 0;
118
        switch (sensor_aliases_data[sensor]["module_name"])
119
        switch (sensor_aliases_data[sensor]["module_name"])
119
        {
120
        {
120
          case "DS18x20": id = 3; break;
121
          case "DS18x20": id = 3; break;
121
          case "FOST02": id = 5; break;
122
          case "FOST02": id = 5; break;
122
          case "TC1047A": id = 17; break;
123
          case "TC1047A": id = 17; break;
123
          case "TCN75A": id = 46; break;
124
          case "TCN75A": id = 46; break;
124
          case "LM335": id = 51; break;
125
          case "LM335": id = 51; break;
125
          case "NTC": id = 55; break;
126
          case "NTC": id = 55; break;
126
          case "DHT11": id = 61; break;
127
          case "DHT11": id = 61; break;
127
          default:
128
          default:
128
            Log("\033[31mCould not resolve sensor module type.\033[0m\n");
129
            Log("\033[31mCould not resolve sensor module type.\033[0m\n");
129
            return; break;
130
            return; break;
130
        }
131
        }
131
       
132
       
132
       
133
       
133
        for (var name in aliases_data)
134
        for (var name in aliases_data)
134
        {
135
        {
135
            var variables = {   "sensorModuleType"     : id,
136
            var variables = {   "sensorModuleType"     : id,
136
                        "sensorModuleId"       : sensor_aliases_data[sensor]["module_id"],
137
                        "sensorModuleId"       : sensor_aliases_data[sensor]["module_id"],
137
                        "sensorId"     : sensor_aliases_data[sensor]["specific"]["SensorId"] };
138
                        "sensorId"     : sensor_aliases_data[sensor]["specific"]["SensorId"] };
138
 
139
 
139
            if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_SENSOR", variables))
140
            if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_SENSOR", variables))
140
            {
141
            {
141
                Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
142
                Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
142
            }
143
            }
143
            else
144
            else
144
            {
145
            {
145
                Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
146
                Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
146
            }
147
            }
147
           
148
           
148
            found = true;
149
            found = true;
149
        }
150
        }
150
        first = false;
151
        first = false;
151
        if (!found)
152
        if (!found)
152
        {
153
        {
153
            Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
154
            Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
154
            return false;
155
            return false;
155
        }
156
        }
156
    }
157
    }
157
 
158
 
158
    if (!found)
159
    if (!found)
159
    {
160
    {
160
        Log("\033[31mNo sensor aliases by the name " + alias_sensor + " were applicable for this command.\033[0m\n");
161
        Log("\033[31mNo sensor aliases by the name " + alias_sensor + " were applicable for this command.\033[0m\n");
161
        return false;
162
        return false;
162
    }
163
    }
163
 
164
 
164
    return true;
165
    return true;
165
}
166
}
166
Console_RegisterCommand(PID_setSensor, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, PID_Aliases(), PID_SensorAliases());  });
167
Console_RegisterCommand(PID_setSensor, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, PID_Aliases(), PID_SensorAliases());  });
167
 
168
 
168
function PID_setActuator(alias_name, alias_actuator)
169
function PID_setActuator(alias_name, alias_actuator)
169
{
170
{
170
    if (arguments.length < 2)
171
    if (arguments.length < 2)
171
    {
172
    {
172
        Log("\033[31mNot enough parameters given.\033[0m\n");
173
        Log("\033[31mNot enough parameters given.\033[0m\n");
173
        return false;
174
        return false;
174
    }
175
    }
175
    var aliases_data = Module_ResolveAlias(alias_name, PID_ModuleNames);
176
    var aliases_data = Module_ResolveAlias(alias_name, PID_ModuleNames);
176
    var found = false;
177
    var found = false;
177
   
178
   
178
    var act_aliases_data = Module_ResolveAlias(alias_actuator, PID_ActModuleNames);
179
    var act_aliases_data = Module_ResolveAlias(alias_actuator, PID_ActModuleNames);
179
    var first = true;
180
    var first = true;
180
    for (var act in act_aliases_data)
181
    for (var act in act_aliases_data)
181
    {
182
    {
182
        if (first == false)
183
        if (first == false)
183
        {
184
        {
184
            Log("\033[31mNo actuator by the name " + alias_actuator + " were applicable for this command, or alias was a group.\033[0m\n");
185
            Log("\033[31mNo actuator by the name " + alias_actuator + " were applicable for this command, or alias was a group.\033[0m\n");
185
            return false;
186
            return false;
186
        }
187
        }
187
        Log ("Called Set Actuator:\n");
188
        Log ("Called Set Actuator:\n");
188
        Log ("actModuleType:   " + act_aliases_data[act]["module_name"]+"\n");
189
        Log ("actModuleType:   " + act_aliases_data[act]["module_name"]+"\n");
189
        Log ("actModuleId:     " + act_aliases_data[act]["module_id"]+"\n");
190
        Log ("actModuleId:     " + act_aliases_data[act]["module_id"]+"\n");
190
        Log ("actId:           " + act_aliases_data[act]["specific"]["Channel"]+"\n");
191
        Log ("actId:           " + act_aliases_data[act]["specific"]["Channel"]+"\n");
191
        var id = 0;
192
        var id = 0;
192
        switch (act_aliases_data[act]["module_name"])
193
        switch (act_aliases_data[act]["module_name"])
193
        {
194
        {
194
          case "hwPWM": id = 13; break;
195
          case "hwPWM": id = 13; break;
195
          case "softPWM": id = 21; break;
196
          case "softPWM": id = 21; break;
196
          case "SlowPWM": id = 19; break;
197
          case "SlowPWM": id = 19; break;
197
          case "PCAPWM": id = 29; break;
198
          case "PCAPWM": id = 29; break;
198
          default:
199
          default:
199
            Log("\033[31mCould not resolve actuator module type.\033[0m\n");
200
            Log("\033[31mCould not resolve actuator module type.\033[0m\n");
200
            return; break;
201
            return; break;
201
        }
202
        }
202
       
203
       
203
       
204
       
204
        for (var name in aliases_data)
205
        for (var name in aliases_data)
205
        {
206
        {
206
            var variables = {   "actuatorModuleType"     : id,
207
            var variables = {   "actuatorModuleType"     : id,
207
                        "actuatorModuleId"       : act_aliases_data[act]["module_id"],
208
                        "actuatorModuleId"       : act_aliases_data[act]["module_id"],
208
                        "actuatorId"             : act_aliases_data[act]["specific"]["Channel"] };
209
                        "actuatorId"             : act_aliases_data[act]["specific"]["Channel"] };
209
 
210
 
210
            if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_ACTUATOR", variables))
211
            if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_ACTUATOR", variables))
211
            {
212
            {
212
                Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
213
                Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
213
            }
214
            }
214
            else
215
            else
215
            {
216
            {
216
                Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
217
                Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
217
            }
218
            }
218
           
219
           
219
            found = true;
220
            found = true;
220
        }
221
        }
221
        first = false;
222
        first = false;
222
        if (!found)
223
        if (!found)
223
        {
224
        {
224
            Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
225
            Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
225
            return false;
226
            return false;
226
        }
227
        }
227
    }
228
    }
228
 
229
 
229
    if (!found)
230
    if (!found)
230
    {
231
    {
231
        Log("\033[31mNo actuator aliases by the name " + alias_actuator + " were applicable for this command.\033[0m\n");
232
        Log("\033[31mNo actuator aliases by the name " + alias_actuator + " were applicable for this command.\033[0m\n");
232
        return false;
233
        return false;
233
    }
234
    }
234
 
235
 
235
    return true;
236
    return true;
236
}
237
}
237
Console_RegisterCommand(PID_setActuator, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, PID_Aliases(), PID_ActAliases());  });
238
Console_RegisterCommand(PID_setActuator, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, PID_Aliases(), PID_ActAliases());  });
238
 
239
 
239
 
240
 
240
function PID_setParameters(alias_name, KP,KI,KD,Time,Unit)
241
function PID_setParameters(alias_name, KP,KI,KD,Time,Unit,ControllerDirection)
241
{
242
{
242
    if (arguments.length < 6)
243
    if (arguments.length < 6)
243
    {
244
    {
244
        Log("\033[31mNot enough parameters given.\033[0m\n");
245
        Log("\033[31mNot enough parameters given.\033[0m\n");
245
        return false;
246
        return false;
246
    }
247
    }
247
    var aliases_data = Module_ResolveAlias(alias_name, PID_ModuleNames);
248
    var aliases_data = Module_ResolveAlias(alias_name, PID_ModuleNames);
248
    var found = false;
249
    var found = false;
249
 
250
 
250
    for (var name in aliases_data)
251
    for (var name in aliases_data)
251
    {
252
    {
252
        var variables = {   "K_P"     : KP,
253
        var variables = {   "K_P"           : KP,
253
                    "K_I"     : KI,
254
                    "K_I"           : KI,
254
                    "K_D"     : KD,
255
                    "K_D"           : KD,
255
                    "RegulatorTime"     : Time,
256
                    "RegulatorTime"         : Time,
256
                    "TimeUnit"     : Unit };
257
                    "TimeUnit"          : Unit };
257
        var variables_P_I = {   "K_P"     : KP,
258
        var variables_P_I = {   "K_P"           : KP,
258
                    "K_I"     : KI };
259
                    "K_I"           : KI };
259
        var variables_D_T = {   "K_D"     : KD,
260
        var variables_D_T = {   "K_D"           : KD,
-
 
261
                    "ControllerDirection"   : ControllerDirection,
260
                    "RegulatorTime"     : Time,
262
                    "RegulatorTime"         : Time,
261
                    "TimeUnit"     : Unit };
263
                    "TimeUnit"          : Unit };
262
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_PARAMETER", variables))
264
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_PARAMETER", variables))
263
        {
265
        {
264
            Log("\033[32mCommand sent successfully to " + name + ".\033[0m");
266
            Log("\033[32mCommand sent successfully to " + name + ".\033[0m");
265
            Log("\033[32mK_P = " + KP + "K_I = " + KI + "K_D = " + KD + "RegTime = " + Time + "Unit = " + Unit + ".\033[0m\n");
267
            Log("\033[32mK_P = " + KP + "K_I = " + KI + "K_D = " + KD + "RegTime = " + Time + "Unit = " + Unit + ".\033[0m\n");
266
        }
268
        }
267
        else
269
        else
268
        {
270
        {
269
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
271
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
270
        }
272
        }
271
       
273
       
272
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_PARAMETER_P_I", variables_P_I))
274
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_PARAMETER_P_I", variables_P_I))
273
        {
275
        {
274
            Log("\033[32mK_P = " + KP + "K_I = " + KI + ".\033[0m\n");
276
            Log("\033[32mK_P = " + KP + "K_I = " + KI + ".\033[0m\n");
275
        }
277
        }
276
        else
278
        else
277
        {
279
        {
278
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
280
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
279
        }
281
        }
280
       
282
       
281
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_PARAMETER_D_T", variables_D_T))
283
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_PARAMETER_D_T", variables_D_T))
282
        {
284
        {
283
            Log("\033[32mK_D = " + KD + "RegTime = " + Time + "Unit = " + Unit + ".\033[0m\n");
285
            Log("\033[32mK_D = " + KD + " RegTime = " + Time + " Unit = " + Unit + " Direction = " + ControllerDirection +".\033[0m\n");
284
        }
286
        }
285
        else
287
        else
286
        {
288
        {
287
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
289
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
288
        }
290
        }
289
       
291
       
290
        found = true;
292
        found = true;
291
    }
293
    }
292
 
294
 
293
    if (!found)
295
    if (!found)
294
    {
296
    {
295
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
297
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
296
        return false;
298
        return false;
297
    }
299
    }
298
 
300
 
299
    return true;
301
    return true;
300
}
302
}
301
Console_RegisterCommand(PID_setParameters, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, PID_Aliases(), PID_Constants(), PID_Constants(), PID_Constants(), PID_Times(), PID_TimeUnits()); });
303
Console_RegisterCommand(PID_setParameters, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, PID_Aliases(), PID_Constants(), PID_Constants(), PID_Constants(), PID_Times(), PID_TimeUnits(), PID_ControllerDirection()); });
302
 
304
 
303
 
305
 
304
function PID_setOutputMaxMin(alias_name, Max,Min)
306
function PID_setOutputMaxMin(alias_name, Max,Min)
305
{
307
{
306
    if (arguments.length < 3)
308
    if (arguments.length < 3)
307
    {
309
    {
308
        Log("\033[31mNot enough parameters given.\033[0m\n");
310
        Log("\033[31mNot enough parameters given.\033[0m\n");
309
        return false;
311
        return false;
310
    }
312
    }
311
    var aliases_data = Module_ResolveAlias(alias_name, PID_ModuleNames);
313
    var aliases_data = Module_ResolveAlias(alias_name, PID_ModuleNames);
312
    var found = false;
314
    var found = false;
313
 
315
 
314
    for (var name in aliases_data)
316
    for (var name in aliases_data)
315
    {
317
    {
316
        var variables = {   "Min"     : Min,
318
        var variables = {   "Min"     : Min,
317
                    "Max"     : Max };
319
                    "Max"     : Max };
318
       
320
       
319
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "OutMinMax", variables))
321
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "OutMinMax", variables))
320
        {
322
        {
321
            Log("\033[32mMin = " + Min + "Max = " + Max + ".\033[0m\n");
323
            Log("\033[32mMin = " + Min + "Max = " + Max + ".\033[0m\n");
322
        }
324
        }
323
        else
325
        else
324
        {
326
        {
325
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
327
            Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
326
        }
328
        }
327
       
329
       
328
        found = true;
330
        found = true;
329
    }
331
    }
330
 
332
 
331
    if (!found)
333
    if (!found)
332
    {
334
    {
333
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
335
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
334
        return false;
336
        return false;
335
    }
337
    }
336
 
338
 
337
    return true;
339
    return true;
338
}
340
}
339
Console_RegisterCommand(PID_setOutputMaxMin, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, PID_Aliases(), PID_Constants(), PID_Constants()); });
341
Console_RegisterCommand(PID_setOutputMaxMin, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, PID_Aliases(), PID_Constants(), PID_Constants()); });
340
 
342
 
341
function PID_getConfiguration(alias_name)
343
function PID_getConfiguration(alias_name)
342
{
344
{
343
    if (arguments.length < 1)
345
    if (arguments.length < 1)
344
    {
346
    {
345
        Log("\033[31mNot enough parameters given.\033[0m\n");
347
        Log("\033[31mNot enough parameters given.\033[0m\n");
346
        return false;
348
        return false;
347
    }
349
    }
348
    var aliases_data = Module_ResolveAlias(alias_name, PID_ModuleNames);
350
    var aliases_data = Module_ResolveAlias(alias_name, PID_ModuleNames);
349
    var found = false;
351
    var found = false;
350
 
352
 
351
    for (var name in aliases_data)
353
    for (var name in aliases_data)
352
    {
354
    {
353
        var variables = {};
355
        var variables = {};
354
       
356
       
355
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_SENSOR", variables))
357
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_SENSOR", variables))
356
        {
358
        {
357
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
359
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
358
        }
360
        }
359
        else
361
        else
360
        {
362
        {
361
            Log("\033[31mFailed to send command 1 to " + name + ".\033[0m\n");
363
            Log("\033[31mFailed to send command 1 to " + name + ".\033[0m\n");
362
        }
364
        }
363
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_ACTUATOR", variables))
365
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_ACTUATOR", variables))
364
        {
366
        {
365
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
367
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
366
        }
368
        }
367
        else
369
        else
368
        {
370
        {
369
            Log("\033[31mFailed to send command 2 to " + name + ".\033[0m\n");
371
            Log("\033[31mFailed to send command 2 to " + name + ".\033[0m\n");
370
        }
372
        }
371
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_PARAMETER", variables))
373
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_PARAMETER", variables))
372
        {
374
        {
373
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
375
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
374
        }
376
        }
375
        else
377
        else
376
        {
378
        {
377
            Log("\033[31mFailed to send command 3 to " + name + ".\033[0m\n");
379
            Log("\033[31mFailed to send command 3 to " + name + ".\033[0m\n");
378
        }
380
        }
379
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "Report_Interval", variables))
381
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "Report_Interval", variables))
380
        {
382
        {
381
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
383
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
382
        }
384
        }
383
        else
385
        else
384
        {
386
        {
385
            Log("\033[31mFailed to send command 4 to " + name + ".\033[0m\n");
387
            Log("\033[31mFailed to send command 4 to " + name + ".\033[0m\n");
386
        }
388
        }
387
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_PARAMETER_P_I", variables))
389
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_PARAMETER_P_I", variables))
388
        {
390
        {
389
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
391
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
390
        }
392
        }
391
        else
393
        else
392
        {
394
        {
393
            Log("\033[31mFailed to send command 5 to " + name + ".\033[0m\n");
395
            Log("\033[31mFailed to send command 5 to " + name + ".\033[0m\n");
394
        }
396
        }
395
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_PARAMETER_D_T", variables))
397
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "CONFIG_PARAMETER_D_T", variables))
396
        {
398
        {
397
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
399
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
398
        }
400
        }
399
        else
401
        else
400
        {
402
        {
401
            Log("\033[31mFailed to send command 6 to " + name + ".\033[0m\n");
403
            Log("\033[31mFailed to send command 6 to " + name + ".\033[0m\n");
402
        }
404
        }
403
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "OutMinMax", variables))
405
        if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "OutMinMax", variables))
404
        {
406
        {
405
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
407
            //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
406
        }
408
        }
407
        else
409
        else
408
        {
410
        {
409
            Log("\033[31mFailed to send command 6 to " + name + ".\033[0m\n");
411
            Log("\033[31mFailed to send command 6 to " + name + ".\033[0m\n");
410
        }
412
        }
411
        found = true;
413
        found = true;
412
    }
414
    }
413
 
415
 
414
    if (!found)
416
    if (!found)
415
    {
417
    {
416
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
418
        Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
417
        return false;
419
        return false;
418
    }
420
    }
419
 
421
 
420
    return true;
422
    return true;
421
}
423
}
422
Console_RegisterCommand(PID_getConfiguration, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, PID_Aliases()); });
424
Console_RegisterCommand(PID_getConfiguration, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, PID_Aliases()); });
423
 
425
 
424
function PID_OnMessage(module_name, module_id, command, variables)
426
function PID_OnMessage(module_name, module_id, command, variables)
425
{
427
{
426
    if (in_array(PID_ModuleNames, module_name))
428
    if (in_array(PID_ModuleNames, module_name))
427
    {
429
    {
428
        var aliases_data = Module_LookupAliases({
430
        var aliases_data = Module_LookupAliases({
429
            "module_name" : module_name,
431
            "module_name" : module_name,
430
            "module_id"   : module_id,
432
            "module_id"   : module_id,
431
            "group"       : false
433
            "group"       : false
432
        });
434
        });
433
       
435
       
434
        switch (command)
436
        switch (command)
435
        {
437
        {
436
            case "DEBUG":
438
            case "DEBUG":
437
                for (var alias_name in aliases_data)
439
                for (var alias_name in aliases_data)
438
                {
440
                {
439
                    var last_value = {};
441
                    var last_value = {};
440
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
442
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
441
 
443
 
442
                    if (last_value_string)
444
                    if (last_value_string)
443
                    {
445
                    {
444
                        last_value = eval("(" + last_value_string + ")");
446
                        last_value = eval("(" + last_value_string + ")");
445
                    }
447
                    }
446
                   
448
                   
447
                    last_value["Debug"] = { "value" : { "P_term" : variables["P_term"],"I_term" : variables["I_term"],"D_term" : variables["D_term"],"Sum" : variables["Sum"] }, "timestamp" : get_time() };
449
                    last_value["Debug"] = { "value" : { "P_term" : variables["P_term"],"I_term" : variables["I_term"],"D_term" : variables["D_term"],"Sum" : variables["Sum"] }, "timestamp" : get_time() };
448
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
450
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
449
                    //Log("Got message DEBUG");
451
                    //Log("Got message DEBUG");
450
                }
452
                }
451
            break;
453
            break;
452
            case "CONFIG_SENSOR":
454
            case "CONFIG_SENSOR":
453
                for (var alias_name in aliases_data)
455
                for (var alias_name in aliases_data)
454
                {
456
                {
455
                    var last_value = {};
457
                    var last_value = {};
456
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
458
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
457
 
459
 
458
                    if (last_value_string)
460
                    if (last_value_string)
459
                    {
461
                    {
460
                        last_value = eval("(" + last_value_string + ")");
462
                        last_value = eval("(" + last_value_string + ")");
461
                    }
463
                    }
462
                   
464
                   
463
                    last_value["Sensor"] = { "value" : { "sensorModuleType" : variables["sensorModuleType"],"sensorModuleId" : variables["sensorModuleId"],"sensorId" : variables["sensorId"] }, "timestamp" : get_time() };
465
                    last_value["Sensor"] = { "value" : { "sensorModuleType" : variables["sensorModuleType"],"sensorModuleId" : variables["sensorModuleId"],"sensorId" : variables["sensorId"] }, "timestamp" : get_time() };
464
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
466
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
465
                }
467
                }
466
            break;
468
            break;
467
            case "CONFIG_ACTUATOR":
469
            case "CONFIG_ACTUATOR":
468
                for (var alias_name in aliases_data)
470
                for (var alias_name in aliases_data)
469
                {
471
                {
470
                    var last_value = {};
472
                    var last_value = {};
471
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
473
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
472
 
474
 
473
                    if (last_value_string)
475
                    if (last_value_string)
474
                    {
476
                    {
475
                        last_value = eval("(" + last_value_string + ")");
477
                        last_value = eval("(" + last_value_string + ")");
476
                    }
478
                    }
477
                   
479
                   
478
                    last_value["Actuator"] = { "value" : { "actuatorModuleType" : variables["actuatorModuleType"],"actuatorModuleId" : variables["actuatorModuleId"],"actuatorId" : variables["actuatorId"] }, "timestamp" : get_time() };
480
                    last_value["Actuator"] = { "value" : { "actuatorModuleType" : variables["actuatorModuleType"],"actuatorModuleId" : variables["actuatorModuleId"],"actuatorId" : variables["actuatorId"] }, "timestamp" : get_time() };
479
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
481
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
480
                }
482
                }
481
            break;
483
            break;
482
            case "CONFIG_PARAMETER":
484
            case "CONFIG_PARAMETER":
483
                for (var alias_name in aliases_data)
485
                for (var alias_name in aliases_data)
484
                {
486
                {
485
                    var last_value = {};
487
                    var last_value = {};
486
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
488
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
487
 
489
 
488
                    if (last_value_string)
490
                    if (last_value_string)
489
                    {
491
                    {
490
                        last_value = eval("(" + last_value_string + ")");
492
                        last_value = eval("(" + last_value_string + ")");
491
                    }
493
                    }
492
                   
494
                   
493
                    last_value["Parameters"] = { "value" : { "K_P" : variables["K_P"],"K_I" : variables["K_I"],"K_D" : variables["K_D"],"TimeUnit" : variables["TimeUnit"],"RegulatorTime" : variables["RegulatorTime"] }, "timestamp" : get_time() };
495
                    last_value["Parameters"] = { "value" : { "K_P" : variables["K_P"],"K_I" : variables["K_I"],"K_D" : variables["K_D"],"TimeUnit" : variables["TimeUnit"],"RegulatorTime" : variables["RegulatorTime"] }, "timestamp" : get_time() };
494
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
496
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
495
                }
497
                }
496
            break;
498
            break;
497
            case "PID_STATUS":
499
            case "PID_STATUS":
498
                for (var alias_name in aliases_data)
500
                for (var alias_name in aliases_data)
499
                {
501
                {
500
                    var last_value = {};
502
                    var last_value = {};
501
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
503
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
502
 
504
 
503
                    if (last_value_string)
505
                    if (last_value_string)
504
                    {
506
                    {
505
                        last_value = eval("(" + last_value_string + ")");
507
                        last_value = eval("(" + last_value_string + ")");
506
                    }
508
                    }
507
                   
509
                   
508
                    last_value["PID_status"] = { "value" : { "Measurment" : variables["Measurment"],"Reference" : variables["Reference"],"PWM" : variables["PWM"],"Sum" : variables["Sum"] }, "timestamp" : get_time() };
510
                    last_value["PID_status"] = { "value" : { "Measurment" : variables["Measurment"],"Reference" : variables["Reference"],"PWM" : variables["PWM"],"Sum" : variables["Sum"] }, "timestamp" : get_time() };
509
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
511
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
510
                }
512
                }
511
    //log("PID status: mea:" + this.Measurment + " ref:" + this.Reference + " pwm:" + this.PWM/100 + " sum:" + this.Sum + "\n");
513
    //Log("PID status: mea:" + this.Measurment + " ref:" + this.Reference + " pwm:" + this.PWM/100 + " sum:" + this.Sum + "\n");
512
                //this.callEvent("newValue", canMessage.getData("Id"));
514
                //this.callEvent("newValue", canMessage.getData("Id"));
513
 
515
 
514
    //var self = this;
516
    //var self = this;
515
    //  this.myHTTP.request(function(result, header, content) { self.httpCallback(result, header, content); }, "linuxz.mine.nu/canlogg/add.php?measurment="+ this.Measurment + "&reference="+this.Reference+"&pwm="+this.PWM/100+"&sum="+this.Sum+"&p="+this.K_P+"&i="+this.K_I+"&d="+this.K_D+"&timeunit="+this.TimeUnit+"&pidtime="+this.RegulatorTime+"");
517
    //  this.myHTTP.request(function(result, header, content) { self.httpCallback(result, header, content); }, "linuxz.mine.nu/canlogg/add.php?measurment="+ this.Measurment + "&reference="+this.Reference+"&pwm="+this.PWM/100+"&sum="+this.Sum+"&p="+this.K_P+"&i="+this.K_I+"&d="+this.K_D+"&timeunit="+this.TimeUnit+"&pidtime="+this.RegulatorTime+"");
516
            break;
518
            break;
517
            case "Temperature_Celsius":
519
            case "Temperature_Celsius":
518
                for (var alias_name in aliases_data)
520
                for (var alias_name in aliases_data)
519
                {
521
                {
520
                    var last_value = {};
522
                    var last_value = {};
521
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
523
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
522
 
524
 
523
                    if (last_value_string)
525
                    if (last_value_string)
524
                    {
526
                    {
525
                        last_value = eval("(" + last_value_string + ")");
527
                        last_value = eval("(" + last_value_string + ")");
526
                    }
528
                    }
527
                   
529
                   
528
                    last_value["Reference"] = { "value" : variables["Value"], "timestamp" : get_time() };
530
                    last_value["Reference"] = { "value" : variables["Value"], "timestamp" : get_time() };
529
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
531
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
530
                }  
532
                }  
531
                break;
533
                break;
532
            case "Report_Interval":
534
            case "Report_Interval":
533
                this.myReportInterval = canMessage.getData("Time");
535
                this.myReportInterval = canMessage.getData("Time");
-
 
536
                break;
-
 
537
               
-
 
538
            case "CONFIG_PARAMETER_P_I":
-
 
539
                for (var alias_name in aliases_data)
-
 
540
                {
-
 
541
                    var last_value = {};
-
 
542
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
-
 
543
 
-
 
544
                    if (last_value_string)
-
 
545
                    {
-
 
546
                        last_value = eval("(" + last_value_string + ")");
-
 
547
                    }
-
 
548
                   
-
 
549
                    last_value["Parameters"] = { "value" : { "K_P" : variables["K_P"],"K_I" : variables["K_I"], "K_D" : last_value["Parameters"]["value"]["K_D"],"ControllerDirection" : last_value["Parameters"]["value"]["ControllerDirection"],"TimeUnit" : last_value["Parameters"]["value"]["TimeUnit"],"RegulatorTime" : last_value["Parameters"]["value"]["RegulatorTime"] }, "timestamp" : get_time() };
-
 
550
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
-
 
551
                }  
-
 
552
            case "CONFIG_PARAMETER_D_T":
-
 
553
                for (var alias_name in aliases_data)
-
 
554
                {
-
 
555
                    var last_value = {};
-
 
556
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
-
 
557
 
-
 
558
                    if (last_value_string)
-
 
559
                    {
-
 
560
                        last_value = eval("(" + last_value_string + ")");
-
 
561
                    }
-
 
562
                    last_value["Parameters"] = { "value" : { "K_P" : last_value["Parameters"]["value"]["K_P"],"K_I" : last_value["Parameters"]["value"]["K_I"], "K_D" : variables["K_D"],"ControllerDirection" : variables["ControllerDirection"],"TimeUnit" : variables["TimeUnit"],"RegulatorTime" : variables["RegulatorTime"] }, "timestamp" : get_time() };
-
 
563
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
-
 
564
                }  
-
 
565
            case "P_I_term":
-
 
566
                for (var alias_name in aliases_data)
-
 
567
                {
-
 
568
                    var last_value = {};
-
 
569
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
-
 
570
 
-
 
571
                    if (last_value_string)
-
 
572
                    {
-
 
573
                        last_value = eval("(" + last_value_string + ")");
-
 
574
                    }
-
 
575
                   
-
 
576
                    last_value["Debug"] = { "value" : { "P_term" : variables["P_term"],"I_term" : variables["I_term"],"D_term" : last_value["Debug"]["value"]["D_term"],"Output" : last_value["Debug"]["value"]["Output"],"Min" : last_value["Debug"]["value"]["Min"],"Max" : last_value["Debug"]["value"]["Max"] }, "timestamp" : get_time() };
-
 
577
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
-
 
578
                    //Log("Got message DEBUG");
-
 
579
                }
-
 
580
            break; 
-
 
581
            case "D_term_Out":
-
 
582
                for (var alias_name in aliases_data)
-
 
583
                {
-
 
584
                    var last_value = {};
-
 
585
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
-
 
586
 
-
 
587
                    if (last_value_string)
-
 
588
                    {
-
 
589
                        last_value = eval("(" + last_value_string + ")");
-
 
590
                    }
-
 
591
                   
-
 
592
                    Log("Got message DEBUG");
-
 
593
                   
-
 
594
                    last_value["Debug"] = { "value" : { "P_term" : last_value["Debug"]["value"]["P_term"],"I_term" : last_value["Debug"]["value"]["I_term"],"D_term" : variables["D_term"],"Output" : variables["Output"],"Min" : last_value["Debug"]["value"]["Min"],"Max" : last_value["Debug"]["value"]["Max"] }, "timestamp" : get_time() };
-
 
595
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
-
 
596
                    //Log("Got message DEBUG");
-
 
597
                }
-
 
598
            break;     
-
 
599
            case "OutMinMax":
-
 
600
                for (var alias_name in aliases_data)
-
 
601
                {
-
 
602
                    var last_value = {};
-
 
603
                    var last_value_string = Storage_GetParameter("LastValues", alias_name);
-
 
604
 
-
 
605
                    if (last_value_string)
-
 
606
                    {
-
 
607
                        last_value = eval("(" + last_value_string + ")");
-
 
608
                    }
-
 
609
                   
-
 
610
                    last_value["Debug"] = { "value" : { "P_term" : last_value["Debug"]["value"]["P_term"],"I_term" : last_value["Debug"]["value"]["I_term"],"D_term" : last_value["Debug"]["value"]["D_term"],"Output" : last_value["Debug"]["value"]["Output"], "Min" : variables["Min"],"Max" : variables["Max"] }, "timestamp" : get_time() };
-
 
611
                    Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
-
 
612
                    //Log("Got message DEBUG");
-
 
613
                }
534
                break;
614
            break; 
535
        }
615
        }
536
    }
616
    }
537
}
617
}
538
Module_RegisterToOnMessage("all", PID_OnMessage);
618
Module_RegisterToOnMessage("all", PID_OnMessage);
539
 
619