1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- # 导入pymysql
- import socket
- import time
- import LedControl as lc
- import google.protobuf.text_format as tf
- import pymysql as psql
- #db参数
- db_ip="192.168.1.233"
- db_port=3306
- db_name="ct_project"
- db_user="zx"
- db_password="zx123456"
- #led参数
- led_ip="192.168.1.169"
- led_port=5005
- #LED消息发送器
- g_lc=lc.LedControl(led_ip,led_port)
- class DBQuery():
- def __init__(self,ip,port,database,user,password):
- self.ip=ip
- self.port=port
- self.database=database
- self.user=user
- self.password=password
- self.conn=psql.connect(host=self.ip,port=self.port,database=self.database,charset="utf8",user=self.user,passwd=self.password)
- self.unit_cmd_1=None
- self.unit_cmd_2=None
- self.unit_cmd_3=None
- def run(self):
- while True:
- #获取一个光标
- cursor = self.conn.cursor()
- #查询指令队列所有信息
- SQL1="select * from command_queue where unit = 1 and type = 2 order by queue_id ASC;"
- SQL2="select * from command_queue where unit = 2 and type = 2 order by queue_id ASC;"
- SQL3="select * from command_queue where unit = 3 and type = 2 order by queue_id ASC;"
- cmd_dict1 = {}
- cmd_dict2 = {}
- cmd_dict3 = {}
- #执行语句 返回结果数量
- command_count=cursor.execute(SQL1)
- self.conn.commit()
- #结果数量大于0
- if(command_count > 0):
- queue_cmd=cursor.fetchall()
- column=[index[0] for index in cursor.description ]# 列名
- cmd_dict1 = [dict(zip(column, row)) for row in queue_cmd] # row是数据库返回的一条一条记录,其中的每一天和column写成字典,最后就是字典数组
- command_count=cursor.execute(SQL2)
- self.conn.commit()
- #结果数量大于0
- if(command_count > 0):
- queue_cmd=cursor.fetchall()
- column=[index[0] for index in cursor.description ]# 列名
- cmd_dict2 = [dict(zip(column, row)) for row in queue_cmd] # row是数据库返回的一条一条记录,其中的每一天和column写成字典,最后就是字典数组
- command_count=cursor.execute(SQL3)
- self.conn.commit()
- #结果数量大于0
- if(command_count > 0):
- queue_cmd=cursor.fetchall()
- column=[index[0] for index in cursor.description ]# 列名
- cmd_dict3 = [dict(zip(column, row)) for row in queue_cmd] # row是数据库返回的一条一条记录,其中的每一天和column写成字典,最后就是字典数组
- if(cmd_dict1 != self.unit_cmd_1):
- self.unit_cmd_1 = cmd_dict1.copy()
- led_show_string = g_lc.getInput(self.unit_cmd_1)
- g_lc.sendLedMsg(0,led_show_string)
- if(cmd_dict2 != self.unit_cmd_2):
- self.unit_cmd_2 = cmd_dict2.copy()
- led_show_string = g_lc.getInput(self.unit_cmd_2)
- g_lc.sendLedMsg(1,led_show_string)
- if(cmd_dict3 != self.unit_cmd_3):
- self.unit_cmd_3 = cmd_dict3.copy()
- led_show_string = g_lc.getInput(self.unit_cmd_3)
- g_lc.sendLedMsg(2,led_show_string)
- # 关闭光标
- cursor.close()
- time.sleep(1)
- if __name__=="__main__":
- db_query = DBQuery(db_ip,db_port,db_name,db_user,db_password)
- db_query.run()
|