Skip to content

Commit 20f11b8

Browse files
committed
new file: TH300.1.py
new file: TH300.py new file: TH300test.py new file: TH300test1.py new file: data/record.csv new file: data/record.zip new file: static/getvalue.js new file: static/getvalue2.js new file: static/jquery-1.11.0.min.js new file: templates/index.htm new file: text
1 parent 9a62f10 commit 20f11b8

File tree

14 files changed

+3957
-0
lines changed

14 files changed

+3957
-0
lines changed

README

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
To Control TH300 with browser. OS , devices independent.

TH300.1.py

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
# -*- coding:utf-8 -*-
2+
3+
#import threading
4+
import thread
5+
import serial, time
6+
from flask import Flask, render_template, make_response
7+
from httplib2 import Http
8+
from struct import unpack
9+
#from flask.ext.autoindex import AutoIndex
10+
#import os.path
11+
#import thread
12+
from apscheduler.scheduler import Scheduler
13+
14+
sched = Scheduler()
15+
sched.start()
16+
17+
app = Flask(__name__)
18+
19+
#AutoIndex(app, browse_root = os.path.curdir + '/static')
20+
21+
ser = serial.Serial(
22+
port='/dev/ttyUSB0',
23+
baudrate='38400',
24+
parity=serial.PARITY_NONE,
25+
stopbits=serial.STOPBITS_ONE,
26+
bytesize=serial.EIGHTBITS,
27+
28+
)
29+
class TH350:
30+
def __init__(self):
31+
self.IS = '\x00'
32+
url = "http://192.168.0.8:9090/sendsms?phone=13013786354&text="
33+
self.value = 'started'
34+
35+
TH = TH350()
36+
37+
SMS = Http()
38+
URL = "http://192.168.0.8:9090/sendsms?phone=13013786354&text="
39+
40+
if not ser.isOpen():
41+
ser.open()
42+
43+
44+
def SendSMS(InnerS):
45+
for i in range(8):
46+
if InnerS[i] == 1:
47+
URL = URL + "警報" + i + "On,"
48+
else:
49+
URL = URL + "警報" + i + "Off,"
50+
SMS.request(URL,'GET')
51+
52+
53+
54+
55+
@app.route('/')
56+
def index():
57+
return render_template("index.htm")
58+
59+
60+
@app.route('/getva')
61+
def returnv():
62+
#global TH
63+
#print TH.value
64+
return TH.value
65+
66+
67+
68+
69+
70+
71+
#@app.route("/getva")
72+
def getv():
73+
#global ser
74+
#global TH
75+
#while True:
76+
ser.flushInput()
77+
ser.write('\x01\x03\x75\x95\x00\x1b\x0f\xe1')
78+
time.sleep(0.04)
79+
if ser.inWaiting() == 59:
80+
81+
TH.value = ser.read(59)
82+
if TH.IS != TH.value[16]:#without threading,perhapse delayed
83+
TH.IS = TH.value[16]
84+
#SendSMS(format(TH.IS,'08b'))
85+
thread.start_new_thread(SendSMS,(format(TH.IS,'08b'),))
86+
return TH.value
87+
88+
else:
89+
getv()
90+
91+
92+
93+
@app.route('/run')
94+
def run():
95+
ser.write('\x01\x06\x9c\x41\x00\x01\x36\x4e')
96+
r = ser.read(8)
97+
return "TH300 is Running ..."
98+
99+
@app.route('/stop')
100+
def stop():
101+
ser.write('\x01\x06\x9c\x41\x00\x00\xf7\x8e')
102+
r = ser.read(8)
103+
return "TH300 stopped......"
104+
105+
def RecordData():
106+
da = open('text','a')
107+
da.write(TH.value)
108+
109+
110+
@app.route('/csv')
111+
def ConvertCSV():
112+
csvtxt = open('./TH300/data/record.csv','w')
113+
da = open('text','rb')
114+
csv = ''
115+
records = da.read()
116+
for i in range(len(records)/59):
117+
da.seek(i*59 + 3)
118+
data = unpack('>hhhhhh',da.read(12))
119+
csv = csv + str(float(data[0])/100-100) + ',' + str(float(data[1])/100-100) \
120+
+ ',' + str(float(data[2])/100) + ',' + str(float(data[3])/10) + ',' + str(float(data[4])/10) \
121+
+ ',' + str(float(data[5])/100) + '\n'
122+
#for j in range(6):
123+
# csv = csv + str(data[j]) + ','
124+
#csv = csv + '\n'
125+
csvtxt.write(csv)
126+
return 'converted to csv!!'
127+
128+
129+
@app.route('/data')
130+
def data():
131+
da = open("./TH300/data/record.csv",'r')
132+
response = make_response(da.read())
133+
response.headers['Content-Disposition'] = 'attachment;filename=record.csv'
134+
return response
135+
136+
137+
@app.route('/sms')
138+
def sms():
139+
return "sms"
140+
141+
@app.route('/email')
142+
def email():
143+
return "email"
144+
145+
146+
147+
sched.add_interval_job(getv,seconds=1)
148+
sched.add_interval_job(RecordData,seconds=5)
149+
#t = threading.Timer(1.0,getv)
150+
#t.start()
151+
'''def thread1():
152+
threading.Timer(1,getv)
153+
#time.sleep(1)
154+
thread1()
155+
'''
156+
157+
if __name__=='__main__':
158+
app.run('0.0.0.0',port=80,debug=True)
159+
#thread.start_new_thread(getv,(0.2,))
160+
#sched.add_interval_job(getv,seconds=1)

TH300.py

Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
# -*- coding:utf-8 -*-
2+
3+
#import threading
4+
import serial, time
5+
from flask import Flask, render_template, make_response
6+
from httplib2 import Http
7+
from struct import unpack
8+
#from flask.ext.autoindex import AutoIndex
9+
#import os.path
10+
#import thread
11+
from apscheduler.scheduler import Scheduler
12+
13+
sched = Scheduler()
14+
sched.start()
15+
16+
app = Flask(__name__)
17+
18+
#AutoIndex(app, browse_root = os.path.curdir + '/static')
19+
20+
ser = serial.Serial(
21+
port='/dev/ttyUSB0',
22+
baudrate='38400',
23+
parity=serial.PARITY_NONE,
24+
stopbits=serial.STOPBITS_ONE,
25+
bytesize=serial.EIGHTBITS,
26+
27+
)
28+
29+
SMS = Http()
30+
IS = '\x00'
31+
URL = "http://192.168.0.3:9090/sendsms?phone=13013786354&text="
32+
33+
if not ser.isOpen():
34+
ser.open()
35+
36+
37+
def SMS(InnerS):
38+
for i in range(8):
39+
if InnerS[i] == 1:
40+
URL = URL + "警報" + i + "On,"
41+
else:
42+
URL = URL + "警報" + i + "Off,"
43+
SMS.request(URL,'GET')
44+
45+
46+
47+
48+
@app.route('/')
49+
def index():
50+
return render_template("index.htm")
51+
52+
53+
@app.route('/getva')
54+
def returnv():
55+
#global TH
56+
#print TH.value
57+
return TH.value
58+
59+
60+
61+
62+
63+
64+
#@app.route("/getva")
65+
def getv():
66+
#global ser
67+
#global TH
68+
#while True:
69+
ser.flushInput()
70+
ser.write('\x01\x03\x75\x95\x00\x1b\x0f\xe1')
71+
time.sleep(0.04)
72+
if ser.inWaiting() == 59:
73+
#r = ser.read(59).encode('hex')
74+
#global IS
75+
TH.value = ser.read(59)
76+
#print len(TH.value)
77+
78+
#RecordData(TH.value)
79+
#if IS != r[16].encode('hex'):
80+
# IS = r[16].encode('hex')
81+
# SMS(format(IS,'08b'))
82+
#r = ser.read(59)
83+
RecordData(TH.value)
84+
#return r
85+
else:
86+
#return "failed"
87+
#pass
88+
getv()
89+
90+
@app.route('/run')
91+
def run():
92+
ser.write('\x01\x06\x9c\x41\x00\x01\x36\x4e')
93+
r = ser.read(8)
94+
return "TH300 is Running ..."
95+
96+
@app.route('/stop')
97+
def stop():
98+
ser.write('\x01\x06\x9c\x41\x00\x00\xf7\x8e')
99+
r = ser.read(8)
100+
return "TH300 stopped......"
101+
102+
def RecordData(r):
103+
da = open('text','a')
104+
da.write(r)
105+
106+
107+
@app.route('/csv')
108+
def ConvertCSV():
109+
csvtxt = open('./TH300/data/record.csv','w')
110+
da = open('text','rb')
111+
csv = ''
112+
records = da.read()
113+
for i in range(len(records)/59):
114+
da.seek(i*59 + 3)
115+
data = unpack('>hhhhhh',da.read(12))
116+
csv = csv + str(float(data[0])/100-100) + ',' + str(float(data[1])/100-100) \
117+
+ ',' + str(float(data[2])/100) + ',' + str(float(data[3])/10) + ',' + str(float(data[4])/10) \
118+
+ ',' + str(float(data[5])/100) + '\n'
119+
#for j in range(6):
120+
# csv = csv + str(data[j]) + ','
121+
#csv = csv + '\n'
122+
csvtxt.write(csv)
123+
return 'converted to csv!!'
124+
125+
126+
@app.route('/data')
127+
def data():
128+
da = open("./TH300/data/record.csv",'r')
129+
response = make_response(da.read())
130+
response.headers['Content-Disposition'] = 'attachment;filename=record.csv'
131+
return response
132+
133+
134+
@app.route('/sms')
135+
def sms():
136+
return "sms"
137+
138+
@app.route('/email')
139+
def email():
140+
return "email"
141+
142+
class TH350:
143+
def __init__(self):
144+
self.IS = 0
145+
url = "http://192.168.0.3:9090/sendsms?phone=13013786354&text="
146+
self.value = 'started'
147+
148+
TH = TH350()
149+
150+
sched.add_interval_job(getv,seconds=1)
151+
152+
#t = threading.Timer(1.0,getv)
153+
#t.start()
154+
'''def thread1():
155+
threading.Timer(1,getv)
156+
#time.sleep(1)
157+
thread1()
158+
'''
159+
160+
if __name__=='__main__':
161+
app.run('0.0.0.0',port=8080,debug=True)
162+
#thread.start_new_thread(getv,(0.2,))
163+
#sched.add_interval_job(getv,seconds=1)

0 commit comments

Comments
 (0)