3
3
This file contains every method called by the API defined in v2.yml
4
4
"""
5
5
6
- from flask import jsonify
6
+ import os
7
+ import subprocess
7
8
import json
8
- from coderbot import CoderBot
9
- from program import ProgramEngine , Program
10
- from config import Config
11
9
import connexion
12
- import time
13
- import sqlite3
14
10
from tinydb import TinyDB , Query
15
11
from tinydb .operations import delete
16
- import os
17
- import subprocess
18
12
from cachetools import cached , TTLCache
13
+ from coderbot import CoderBot
14
+ from program import ProgramEngine
15
+ from config import Config
19
16
20
17
bot_config = Config .get ()
21
18
bot = CoderBot .get_instance (
24
21
)
25
22
26
23
def get_serial ():
27
- """
28
- Extract serial from cpuinfo file
29
- """
30
- cpuserial = "0000000000000000"
31
- try :
32
- f = open ('/proc/cpuinfo' ,'r' )
33
- for line in f :
34
- if line [0 :6 ]== 'Serial' :
35
- cpuserial = line [10 :26 ]
36
- f .close ()
37
- except :
38
- cpuserial = "ERROR000000000"
39
-
40
- return cpuserial
24
+ """
25
+ Extract serial from cpuinfo file
26
+ """
27
+ cpuserial = "0000000000000000"
28
+ try :
29
+ f = open ('/proc/cpuinfo' , 'r' )
30
+ for line in f :
31
+ if line [0 :6 ] == 'Serial' :
32
+ cpuserial = line [10 :26 ]
33
+ f .close ()
34
+ except Exception :
35
+ cpuserial = "ERROR000000000"
36
+
37
+ return cpuserial
41
38
42
39
@cached (cache = TTLCache (maxsize = 1 , ttl = 10 ))
43
40
def get_status ():
@@ -47,10 +44,10 @@ def get_status():
47
44
(Cached method)
48
45
"""
49
46
try :
50
- temp = os .popen ("vcgencmd measure_temp" ).readline ().replace ("temp=" ,"" )
51
- except :
47
+ temp = os .popen ("vcgencmd measure_temp" ).readline ().replace ("temp=" , "" )
48
+ except Exception :
52
49
temp = "undefined"
53
-
50
+
54
51
uptime = subprocess .check_output (["uptime" ]).decode ('utf-8' ).replace ('\n ' , '' )
55
52
internet_status = subprocess .check_output (["./utils/check_conn.sh" ]).decode ('utf-8' ).replace ('\n ' , '' )
56
53
return {'internet_status' : internet_status ,
@@ -68,28 +65,28 @@ def get_info():
68
65
with open ('manifest.json' , 'r' ) as f :
69
66
metadata = json .load (f )
70
67
backend_commit = metadata ["backendCommit" ][0 :7 ]
71
- except :
68
+ except Exception :
72
69
backend_commit = "undefined"
73
70
74
71
try :
75
72
coderbot_version = subprocess .check_output (["cat" , "/etc/coderbot/version" ]).decode ('utf-8' ).replace ('\n ' , '' )
76
- except :
77
- coderbot_version = 'undefined'
73
+ except Exception :
74
+ coderbot_version = 'undefined'
78
75
try :
79
76
kernel = subprocess .check_output (["uname" , "-r" ]).decode ('utf-8' ).replace ('\n ' , '' )
80
- except :
77
+ except Exception :
81
78
kernel = 'undefined'
82
79
try :
83
80
update_status = subprocess .check_output (["cat" , "/etc/coderbot/update_status" ]).decode ('utf-8' ).replace ('\n ' , '' )
84
- except :
81
+ except Exception :
85
82
update_status = 'undefined'
86
83
87
- serial = get_serial ();
88
- return {'backend_commit' :backend_commit ,
89
- 'coderbot_version' :coderbot_version ,
84
+ serial = get_serial ()
85
+ return {'backend_commit' : backend_commit ,
86
+ 'coderbot_version' : coderbot_version ,
90
87
'update_status' : update_status ,
91
- 'kernel' :kernel ,
92
- 'serial' :serial }
88
+ 'kernel' : kernel ,
89
+ 'serial' : serial }
93
90
94
91
prog = None
95
92
prog_engine = ProgramEngine .get_instance ()
@@ -100,7 +97,7 @@ def get_info():
100
97
101
98
query = Query ()
102
99
103
- ## Robot control
100
+ ## Robot control
104
101
105
102
def stop ():
106
103
bot .stop ()
@@ -117,43 +114,43 @@ def turn(data):
117
114
return 200
118
115
119
116
def exec (data ):
120
- prog = prog_engine .create (data ["name" ], data ["code" ])
121
- return json .dumps (prog .execute ())
117
+ program = prog_engine .create (data ["name" ], data ["code" ])
118
+ return json .dumps (program .execute ())
122
119
123
120
## System
124
121
125
122
def status ():
126
- status = get_status ()
123
+ sts = get_status ()
127
124
128
125
return {
129
126
"status" : "ok" ,
130
- "internetConnectivity" : status ["internet_status" ],
131
- "temp" : status ["temp" ],
132
- "uptime" : status ["uptime" ],
127
+ "internetConnectivity" : sts ["internet_status" ],
128
+ "temp" : sts ["temp" ],
129
+ "uptime" : sts ["uptime" ],
133
130
}
134
131
135
132
def info ():
136
- info = get_info ()
133
+ inf = get_info ()
137
134
return {
138
135
"model" : 1 ,
139
- "version" : info ["coderbot_version" ],
140
- "backend commit build" : info ["backend_commit" ],
141
- "kernel" : info ["kernel" ],
142
- "update status" : info ["update_status" ],
143
- "serial" : info ["serial" ]
136
+ "version" : inf ["coderbot_version" ],
137
+ "backend commit build" : inf ["backend_commit" ],
138
+ "kernel" : inf ["kernel" ],
139
+ "update status" : inf ["update_status" ],
140
+ "serial" : inf ["serial" ]
144
141
}
145
142
146
143
def restoreSettings ():
147
144
with open ("data/defaults/config.json" ) as f :
148
145
Config .write (json .loads (f .read ()))
149
- bot_config = Config .get ()
146
+ Config .get ()
150
147
return "ok"
151
148
152
149
def updateFromPackage ():
153
150
os .system ('sudo bash /home/pi/clean-update.sh' )
154
151
file_to_upload = connexion .request .files ['file_to_upload' ]
155
152
file_to_upload .save (os .path .join ('/home/pi/' , 'update.tar' ))
156
- os .system ('sudo coderbot_update /home/pi/update.tar && sudo reboot' )
153
+ os .system ('sudo reboot' )
157
154
return 200
158
155
159
156
@@ -171,7 +168,7 @@ def saveProgram(data, overwrite):
171
168
return "defaultOverwrite"
172
169
# Overwrite existing program with the same name
173
170
else :
174
- if ( overwrite == "1" ) :
171
+ if overwrite == "1" :
175
172
programs .update (data , query .name == data ["name" ])
176
173
return 200
177
174
else :
@@ -218,4 +215,4 @@ def resetDefaultPrograms():
218
215
if filename .endswith (".json" ):
219
216
with open ("data/defaults/programs/" + filename ) as p :
220
217
q = p .read ()
221
- programs .insert (json .loads (q ))
218
+ programs .insert (json .loads (q ))
0 commit comments