Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-WIC-Opencpc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenXG
OpenXG-WIC-Opencpc
Commits
f3b9ec4d
Commit
f3b9ec4d
authored
Mar 22, 2018
by
joliu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
循环处理进程
parent
899d6f10
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
88 additions
and
0 deletions
+88
-0
hfv/workProcess.py
hfv/workProcess.py
+88
-0
No files found.
hfv/workProcess.py
0 → 100644
View file @
f3b9ec4d
'''
****************************************************
* 任务执行模块 *
* 1. 检查任务队列是否存在任务 *
* 2. 从任务队列中取任务并执行 *
* 3. 发送控制命令到指定的智能体 *
* 4. 未来或许可以根据配置的智能体参数, *
* 动态修改智能体的计算资源等 *
* *
* author: joliu<joliu@s-an.org> *
* date: 2018-3-22 *
****************************************************
'''
from
listenSer
import
sendBySocket
from
listenSer
import
sendCommandToDevice
import
sqlite3
import
time
def
findTask
():
try
:
sql
=
"select * from task LIMIT 1"
conn
=
sqlite3
.
connect
(
"task.db"
)
cursor
=
conn
.
cursor
()
cursor
.
execute
(
sql
)
data
=
cursor
.
fetchone
()
if
data
is
None
:
(
status
,
output
)
=
(
-
1
,
'database is empty!'
)
else
:
(
status
,
output
)
=
(
1
,
data
)
except
sqlite3
.
Error
as
err_msg
:
(
status
,
output
)
=
(
-
1
,
err_msg
)
except
Exception
as
err_msg
:
(
status
,
output
)
=
(
-
1
,
err_msg
)
finally
:
return
(
status
,
output
)
# 根据符号来比较两个数值的大小
def
compare
(
signal
,
value1
,
value2
):
if
signal
==
'>'
:
return
value1
>
value2
elif
signal
==
'<'
:
return
value1
<
value2
elif
signal
==
'='
:
return
value1
==
value2
else
:
return
False
def
mainWhileProcess
(
input_ctime
):
ctime
=
input_ctime
while
True
:
print
(
ctime
)
time
.
sleep
(
ctime
)
(
status
,
output
)
=
findTask
()
if
status
==
-
1
:
print
(
output
)
# 如果数据库为空,或者错误,恢复初始设置
ctime
=
input_ctime
continue
(
task
,
taskid
,
ctime
)
=
output
if
len
(
task
.
split
(
';'
))
!=
2
or
len
(
task
.
split
(
':'
))
!=
3
:
print
(
"Error task: %s"
%
task
)
continue
# 初步定义task字符串模式 eg: >30;192.168.1.1:3000:off
(
condition
,
command
)
=
task
.
split
(
';'
)
(
ip
,
port
,
method
)
=
command
.
split
(
':'
)
# 读取传感器数值
(
status
,
output
)
=
sendCommandToDevice
(
'1'
)
if
status
==
-
1
:
print
(
"get device data failed! ip: %s, method: %s"
%
(
ip
,
method
))
continue
if
compare
(
condition
[
0
],
float
(
output
),
float
(
condition
[
1
:])):
# 当结果为真,向目标传感器发出指令
(
status
,
output
)
=
sendBySocket
(
ip
,
port
,
method
)
print
(
output
)
else
:
pass
if
__name__
==
"__main__"
:
mainWhileProcess
(
5
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment