from PyQt5.QtCore import QObject,pyqtSignal
from connect import *
class Motor(QObject):
start_motor_signal=pyqtSignal(int,bool)
input_signal=pyqtSignal(int,int,int)
def __init__(self,*args,**kwargs):
super(Motor, self).__init__(*args,**kwargs)
self.is_on=None
self.running = None
self.error = None
self.input_signal.connect(self.get_input_singals)
def get_input_singals(self,is_on:int,running:int,eror:int)->None:#合闸,运行,故障
self.is_on=is_on
self.running=running
self.error=eror
def start_stop_mortor(self,addr:int,val:bool):
if self.running:
return
self.start_motor_signal.emit(addr,val)
if __name__=='__main__':
def run_motor(addr,data):
if data==True:
print(f'{addr}-motor is running')
else:
print(f'{addr}-mortor in stopping')
mortor1=Motor()
mortor1.start_motor_signal.connect(run_motor)
mortor1.input_signal.emit(1,0,1)
# print(mortor1.is_on)
# print(mortor1.running)
# print(mortor1.error)
import time
import random
while True:
a=random.randint(1,10)
b=random.randint(0,1)
mortor1.start_stop_mortor(MOTOR_6,b)
time.sleep(1)
二维数组
from connect import WORD
def bin_array(word:int):
data=bin(word)[2:].zfill(16)[::-1]
re_data=data[::-1]
return re_data
def two_array(data:int):
list_array = [[None for j in range(4)] for i in range(4)]
bin_array=bin(data)[2:].zfill(16)[::-1]
n=0
for i in range(1,5):
for j in range(1,5):
bit=bin_array[n]
list_array[i-1][j-1]=int(bit)
n+=1
return list_array
if __name__=='__main__':
s=two_array(5)
print(s)
# b=bin_array(8)
# print(b)
# print(b[0])
# print(b[0])
# print(b[0])
# print(b[3])
print(bin(32768))
print(bin(27468))
控件移动
from PyQt5.QtWidgets import QWidget, QCheckBox, QPushButton, QApplication, QLabel
from PyQt5.QtGui import QMouseEvent
from PyQt5.QtCore import Qt, QPoint
def draggable(widget: QWidget, movable: bool):
"""给控件添加拖动功能
Args:
widget: 需要拖动的控件
movable: 是否可拖动
"""
if movable:
widget.setMouseTracking(True)
widget.setCursor(Qt.OpenHandCursor)
else:
widget.setMouseTracking(False)
widget.setCursor(Qt.ArrowCursor)
def mousePressEvent(event: QMouseEvent):
if event.button() == Qt.LeftButton:
widget.setCursor(Qt.ClosedHandCursor)
widget.offset = event.pos()
def mouseMoveEvent(event: QMouseEvent):
if event.buttons() == Qt.LeftButton:
widget.move(widget.pos() + event.pos() - widget.offset)
def mouseReleaseEvent(event: QMouseEvent):
widget.setCursor(Qt.OpenHandCursor)
widget.mousePressEvent = mousePressEvent
widget.mouseMoveEvent = mouseMoveEvent
widget.mouseReleaseEvent = mouseReleaseEvent
if __name__ == '__main__':
import sys
app=QApplication(sys.argv)
widget = QWidget()
widget.resize(800,760)
checkbox = QCheckBox('允许拖动', widget)
checkbox.move(10, 10)
draggable(checkbox, True)
button = QPushButton('按钮', widget)
button.move(50, 50)
button.setFixedSize(50, 30)
draggable(button, True)
label = QLabel(widget)
label.resize(150,150)
label.setStyleSheet('background-color:cyan;')
draggable(label,True)
widget.show()
机器提取货物
#货物到位传感器
class Robort:
def __init__(self):
self.hand_out :bool=None
self.hand_out_end :bool=None
self.hand_back:bool = None
self.hand_back_end:bool =None
self.hand:bool =None
self.hand_end:bool =None
self.hand_open:bool =None
self.hand_open_end:bool = None
self.step:int = 0
self.good_signal:bool = None
def start(self,data=[None,None,None,None,None])->None:
#[1,1,1,1,1]
self.good_signal=data[0]
self.hand_out_end = data[1]
self.hand_back_end = data[2]
self.hand_end = data[3]
self.hand_open_end = data[4]
if self.good_signal:
if self.step == 0:
self.hand_out=1
print('self.hand_out',self.hand_out)
if self.hand_out_end:
self.hand_out=0
self.step=1
print('self.hand_out', self.hand_out)
elif self.step ==1:
self.hand=1
print('self.hand',self.hand)
if self.hand_end:
self.hand=0
self.step=2
print('self.hand', self.hand)
elif self.step==2:
self.hand_back=1
print('self.hand_back',self.hand_back)
if self.hand_back_end:
self.hand_back=0
self.step=0
print('self.hand_back', self.hand_back)
if __name__=='__main__':
import time
r=Robort()
while True:
r.start([1,1,0,1,1])
time.sleep(1)