Subversion Repositories HomeAutomation

Rev

Rev 1380 | Details | Compare with Previous | Last modification | View Log | SVN | RSS feed

Rev Author Line No. Line
1346 linlun 1
var sensorServices = new Array();
2
var sensorValues = new Array();
1432 linlun 3
//var sensorNames = new Array();
1346 linlun 4
 
1347 linlun 5
ServiceManager.addCallback(this._TempSensors_SensorSeviceOnline);
1346 linlun 6
 
1347 linlun 7
function _TempSensors_SensorSeviceOnline(service) {
1432 linlun 8
    if (service.getName() == "DS18x20" || service.getName() == "TC1047A" || service.getName() == "FOST02") {
9
        _TempSensors_updateSensorList();
10
    }
11
    //log("Sensor online\n");
1346 linlun 12
}
13
 
1347 linlun 14
function _TempSensors_updateSensorList() {
1432 linlun 15
    this.sensorServices = new Array();
16
 
17
    for (var id in ServiceManager.Services)
18
    {
19
        if (ServiceManager.Services[id].getName() == "DS18x20" || ServiceManager.Services[id].getName() == "TC1047A" || ServiceManager.Services[id].getName() == "FOST02")
20
        {
21
            ServiceManager.Services[id].registerEventCallback("newValue", function(args) { _TempSensors_NewTemperature(args); });
22
            ServiceManager.Services[id].registerEventCallback("offline", function(args) { _TempSensors_SensorOffline(args); });
23
            ServiceManager.Services[id].setReportInterval(2);
24
            this.sensorServices[sensorServices.length] = ServiceManager.Services[id];
25
            //log("found sensors\n");
26
        }
27
    }
1346 linlun 28
}
29
 
1347 linlun 30
function _TempSensors_NewTemperature(array){
1432 linlun 31
      sensorValues[""+array["moduleName"]+array["moduleId"]+array["sensor"]] = new Array();
32
      sensorValues[""+array["moduleName"]+array["moduleId"]+array["sensor"]]['value'] = array["value"];
33
      sensorValues[""+array["moduleName"]+array["moduleId"]+array["sensor"]]['service'] = array["service"];
34
      //log("new value: from: "+""+array["moduleName"]+array["moduleId"]+array["sensor"] +"with value: "+ sensorValues[""+array["moduleName"]+array["moduleId"]+array["sensor"]]["value"]+"\n");
35
      //log("length is now: "+sensorValues+" \n");
36
/*
37
      if (sensorNames[""+array["moduleName"]+array["moduleId"]+array["sensor"]] == null) {
38
        if(getSensorName(array["moduleName"], array["moduleId"], array["sensor"]) == null) {
39
            sensorNames[""+array["moduleName"]+array["moduleId"]+array["sensor"]]="TempSensor_"+array["moduleName"]+array["moduleId"]+array["sensor"]
40
        } else {
41
            sensorNames[""+array["moduleName"]+array["moduleId"]+array["sensor"]]="TempSensor_"+getSensorName(array["moduleName"], array["moduleId"], array["sensor"]);
42
        }
43
        //log("Found Temperature sensor: "+ sensorNames[""+array["moduleName"]+array["moduleId"]+array["sensor"]]+"\n");
44
      }
45
      var content = array["value"]+"\n";
46
      var filename = "/dev/shm/can/" + sensorNames[""+array["moduleName"]+array["moduleId"]+array["sensor"]];
47
      setFileContents(filename, content);
48
*/
1346 linlun 49
}
50
 
1347 linlun 51
function _TempSensors_SensorOffline(data) {
1432 linlun 52
    var sensorValues = new Array();
1346 linlun 53
}
54
 
55
function getSensorValue(SensorName)
56
{
57
    var sensorStore = DataStore.getStore("SensorNames");
58
    if (sensorStore)
59
    {
60
        for (var n = 0; n < sensorStore['SensorNames'].length; n++)
61
        {
62
            if (sensorStore['SensorNames'][n]['name'] == SensorName)
63
            {
1351 linlun 64
                if (sensorValues[sensorStore['SensorNames'][n]['moduleType']+sensorStore['SensorNames'][n]['moduleId']+sensorStore['SensorNames'][n]['sensorId']] != null) {
65
                    var returnvalue = sensorValues[sensorStore['SensorNames'][n]['moduleType']+sensorStore['SensorNames'][n]['moduleId']+sensorStore['SensorNames'][n]['sensorId']]['value'];
66
                    if (returnvalue != null) {
67
                        return returnvalue;
68
                    } else {
69
                        return -50;
70
                    }
1346 linlun 71
                }
72
            }
73
 
74
        }
75
    }
1351 linlun 76
    return -50;
1346 linlun 77
 
78
}
79
 
80
function getSensorInfo(SensorName)
81
{
82
    var sensorStore = DataStore.getStore("SensorNames");
83
    if (sensorStore)
84
    {
85
        for (var n = 0; n < sensorStore['SensorNames'].length; n++)
86
        {
87
            if (sensorStore['SensorNames'][n]['name'] == SensorName)
88
            {
89
                var returnvalue = new Array();
1350 linlun 90
                returnvalue['name'] = sensorStore['SensorNames'][n]['name'];
91
                returnvalue['description'] = sensorStore['SensorNames'][n]['description'];
92
                returnvalue['shortName'] = sensorStore['SensorNames'][n]['shortName'];
93
                returnvalue['moduleType'] = sensorStore['SensorNames'][n]['moduleType'];
94
                returnvalue['moduleId'] = sensorStore['SensorNames'][n]['moduleId'];
95
                returnvalue['sensorId'] = sensorStore['SensorNames'][n]['sensorId'];
1346 linlun 96
                return returnvalue;
97
            }
98
 
99
        }
100
    }
101
    return null;
102
}
103
 
1351 linlun 104
function getSensorService(SensorName)
105
{
106
    var sensorStore = DataStore.getStore("SensorNames");
107
    if (sensorStore)
108
    {
109
        for (var n = 0; n < sensorStore['SensorNames'].length; n++)
110
        {
111
            if (sensorStore['SensorNames'][n]['name'] == sensorName)
112
            {
113
                return this.sensorValues[sensorStore['SensorNames'][n]['moduleType']+sensorStore['SensorNames'][n]['moduleId']+sensorStore['SensorNames'][n]['sensorId']]['service'];
114
            }
115
 
116
        }
117
    }
118
    return null;
119
}
1346 linlun 120
 
1351 linlun 121
function getSensorList()
122
{
123
    var sensorStore = DataStore.getStore("SensorNames");
124
    var sensorList = new Array();
125
    var sensorIndex = 0;
126
    if (sensorStore)
127
    {
128
        for (var n = 0; n < sensorStore['SensorNames'].length; n++)
129
        {
130
            if (this.sensorValues[sensorStore['SensorNames'][n]['moduleType']+sensorStore['SensorNames'][n]['moduleId']+sensorStore['SensorNames'][n]['sensorId']] != null)
131
            {
132
                if (this.sensorValues[sensorStore['SensorNames'][n]['moduleType']+sensorStore['SensorNames'][n]['moduleId']+sensorStore['SensorNames'][n]['sensorId']]['service'].isOnline()) {
133
                    sensorList[sensorIndex] = new Array();
134
                    sensorList[sensorIndex]['name'] = sensorStore['SensorNames'][n]['name'];
135
                    sensorList[sensorIndex]['shortName'] = sensorStore['SensorNames'][n]['shortName'];
136
                    sensorList[sensorIndex]['sensorId'] = sensorStore['SensorNames'][n]['sensorId'];
137
                    sensorList[sensorIndex]['description'] = sensorStore['SensorNames'][n]['description'];
138
                    sensorList[sensorIndex]['service'] = this.sensorValues[sensorStore['SensorNames'][n]['moduleType']+sensorStore['SensorNames'][n]['moduleId']+sensorStore['SensorNames'][n]['sensorId']]['service'];
139
//log("SensorList"+sensorIndex+" "+sensorList[sensorIndex]['name']+" \n");
140
                    sensorIndex++;
141
                }
142
            }
143
        }
144
    }
145
    return sensorList;
146
}
147
 
1380 linlun 148
function getSensorName(moduleType, moduleId, sensorId)
149
{
150
    var sensorStore = DataStore.getStore("SensorNames");
151
    var sensorIndex = 0;
152
    if (sensorStore)
153
    {
154
        for (var n = 0; n < sensorStore['SensorNames'].length; n++)
155
        {
1432 linlun 156
            if (sensorStore['SensorNames'][n]['sensorId'] == sensorId)
1380 linlun 157
            {
1432 linlun 158
                if (sensorStore['SensorNames'][n]['moduleId'] == moduleId)
159
                {
160
                    if (sensorStore['SensorNames'][n]['moduleType'] == moduleType) {
161
                        return sensorStore['SensorNames'][n]['name'];
162
                    }
163
                }
1380 linlun 164
            }
165
        }
166
    }
167
    return null;
168
}