Больше не поддерживается вариант на python.
[weathermon.git] / weathermon-light
diff --git a/weathermon-light b/weathermon-light
deleted file mode 100755 (executable)
index 1827377..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-#!/usr/bin/python
-
-import serial
-
-from os import system
-
-from pprint import pprint
-
-from termios import tcflush, TCIOFLUSH
-
-from time import sleep
-
-from uuid import getnode
-
-import sys,traceback
-
-import pycurl
-from urllib import urlencode
-from StringIO import StringIO
-
-path = None
-baud = None
-timeout = None
-
-import ConfigParser
-
-import thread
-from threading import Timer
-
-def open_port(path):
-
-  global proc
-
-  print "Opening path "+path
-
-  ser = serial.Serial(path,1200);
-  ser.open();
-  ser.close();
-
-  ser = serial.Serial(path,baud,timeout=timeout)
-  if ser.portstr:
-    tcflush(ser,TCIOFLUSH);
-  return ser
-  
-def read_port(ser):
-
-  try: 
-    timeout_timer = Timer(timeout, thread.interrupt_main)
-    timeout_timer.start()
-    line = ser.readline()
-    return line.strip()
-  except KeyboardInterrupt:
-    return "<<TIMEOUT>>"
-  finally:
-    timeout_timer.cancel()
-  
-def read_loop(ser,callback):
-
-  global proc
-
-  while True:
-  
-    try:
-      line=read_port(ser)
-      if line=="<<TIMEOUT>>":
-        print "Reopening port..."
-        ser.close()
-        ser=open_port(path)
-      if line:
-        callback(line)
-    except KeyboardInterrupt:
-      break
-    finally:
-      None
-
-def print_log(str):
-  global logging
-  print str
-  if logging == "on":
-    system("logger -t weathermon \""+str+"\"")
-
-def submit_data(stype,sid,param,value):
-
-  global url,username,password
-
-  params = {'stype':stype, 'sid':sid, 'param':param, 'value':value}
-
-  pprint (params)
-
-  try:
-
-    response_buffer = StringIO()
-    curl = pycurl.Curl()
-
-    curl.setopt(curl.URL, url)
-    if username:
-      curl.setopt(curl.USERPWD, '%s:%s' % (username, password))
-    curl.setopt(curl.WRITEFUNCTION, response_buffer.write)
-    curl.setopt(curl.POST, 1)
-    curl.setopt(curl.POSTFIELDS, urlencode(params))
-
-    curl.perform()
-    curl.close()
-    
-    response_value = response_buffer.getvalue()
-    
-    print_log('Server response: '+response_value)
-  
-    return True
-  
-  except:
-
-    exc_type, exc_value, exc_traceback = sys.exc_info()
-    traceback.print_tb(exc_traceback, limit=1, file=sys.stdout)
-    traceback.print_exception(exc_type, exc_value, exc_traceback,
-                                  limit=2, file=sys.stdout)
-    return False  
-
-def process_str(str):
-  print_log("Received: "+str)
-  try:
-    msg_type, msg_body = str.split(':')
-  except:
-    return
-  try:  
-    if msg_type == 'STATUS':
-      print_log('Status: '+msg_body)
-    elif msg_type == 'ERROR':
-      print_log('Error: '+ msg_body)
-    elif msg_type == 'SENSOR':
-      sens = msg_body.split(',')
-      sensor = {}
-      sensor_type = None
-      sensor_id = None
-      for rec in sens:
-        key,value = rec.split('=')
-       value=value.strip()
-       if len(value)>0:
-          if key == 'TYPE':
-            sensor_type = value
-          elif key == 'ID':
-            sensor_id = value  
-          else:  
-            sensor[key] = value
-      if sensor_type:    
-        if not sensor_id:
-          sensor_id=devid;    
-      for key in sensor:
-       if sensor[key]:
-          print_log('Type = '+sensor_type+', ID = '+sensor_id+', Param = '+key+', Value = '+sensor[key])
-          submit_data(sensor_type,sensor_id,key,sensor[key])
-        else:
-          print_log('Error: got empty parameter value for '+sensor_type+'.'+sensor_id+'.'+key)
-  except:
-    print_log('Exception processing...')
-    exc_type, exc_value, exc_traceback = sys.exc_info()
-    traceback.print_tb(exc_traceback, limit=1, file=sys.stdout)
-    traceback.print_exception(exc_type, exc_value, exc_traceback,
-                              limit=5, file=sys.stdout)  
-
-def weather_mon():
-
-  global path
-
-  ser = open_port(path)
-  read_loop(ser,process_str)
-
-def main():
-  weather_mon()
-
-try:
-
-  cfg = ConfigParser.RawConfigParser(allow_no_value=True)
-  cfg.readfp(open('/etc/weathermon.conf'))
-  url = cfg.get("web","url")
-  path = cfg.get("serial","port");
-  try:
-    username = cfg.get("web","user");
-    password = cfg.get("web","password");
-  except:
-    username = None
-    password = None
-  try:
-    logging = cfg.get("logging","enabled")
-  except:
-    logging = None
-  try:
-    timeout = int(cfg.get("serial","timeout"))
-  except:
-    timeout = 120
-  try:
-    baud = int(cfg.get("serial","baud"))
-  except:
-    baud = 57600
-  try:
-    devid = cfg.get("web","devid")
-  except:
-    devid = "{:0>12X}".format(getnode())   
-except:
-
-  print_log("Cannot intialize system")
-  exit() 
-  
-if __name__ == "__main__":
-  import sys
-  reload(sys)
-  sys.setdefaultencoding('utf-8')
-  main()