changed temp/photo listener to sensor listener
[svn42.git] / sensor_graph / sample_sensor.lua
old mode 100644 (file)
new mode 100755 (executable)
index ad3550d..d5be01d
@@ -1,3 +1,4 @@
+#!/usr/bin/lua
 require('os')
 require('string')
 
@@ -13,47 +14,53 @@ end
 
 function parse_value(str)
   if string.find(str,"Temp C:") then
-    last_temp = tonumber(string.sub(str,8))
+    last_temp = tonumber(string.sub(str,11))
     --print(string.format("t: %f Grad Celsius",last_temp))
   end
   if string.find(str,"Photo:") then
-    last_light = tonumber(string.sub(str,7))
+    last_light = tonumber(string.sub(str,10))
     --print(string.format("p: %d",last_light))
   end
   if string.find(str,"movement") then
    last_movement=1
    --print "something moved"
   end
-
 end
 
 
-
-
 local socket = require("socket")
-local client = assert(socket.connect("127.0.0.1",2010))
---socket.unix = require("socket.unix")
---local socket = assert(socket.unix())
---local client = assert(socket:connect("/var/run/power_sensor.socket"))
-client:settimeout(10)
-
-
-
 
 while 1 do
-  local line, err = client:receive()
-  if not err then 
-    parse_value(line) 
-  end
-  client:send("T")
-  line, err = client:receive()
-  if not err then 
-    parse_value(line)
-  end
-  client:send("P")
-  line, err = client:receive()
-  if not err then 
-    parse_value(line)
+  local client = socket.connect("127.0.0.1",2010)
+  --socket.unix = require("socket.unix")
+  --local socket = assert(socket.unix())
+  --local client = assert(socket:connect("/var/run/power_sensor.socket"))
+  if client then
+    client:settimeout(30)
+    while 1 do
+      local line, err = client:receive()
+      if not err then 
+        parse_value(line) 
+      elseif err ~= "timeout" then
+        break
+      end
+      client:send("T")
+      line, err = client:receive()
+      if not err then 
+        parse_value(line)
+      elseif err ~= "timeout" then
+        break
+      end
+      client:send("P")
+      line, err = client:receive()
+      if not err then 
+        parse_value(line)
+      elseif err ~= "timeout" then
+        break
+      end
+      save_values()
+    end
+    client:shutdown("both")
   end
-  save_values()
+  socket.select(nil, nil, 10)
 end