Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #-*- coding:utf-8 -*-
- from socket import socket, AF_INET, SOCK_STREAM
- import sys
- from PyQt4 import QtCore, QtGui
- from functools import partial
- from lcd_control_ui import Ui_LCDGUI
- class LCDControlForm(QtGui.QMainWindow):
- def __init__(self, parent=None):
- QtGui.QWidget.__init__(self, parent)
- self.ui = Ui_LCDGUI()
- self.ui.setupUi(self)
- self.lcd_sock = socket(AF_INET, SOCK_STREAM)
- self.statusBar().setSizeGripEnabled(False)
- self.setFixedSize(609, 386)
- QtCore.QObject.connect(self.ui.btn_connect,QtCore.SIGNAL("clicked()"), self.connect)
- QtCore.QObject.connect(self.ui.scroll_left,QtCore.SIGNAL("clicked()"), partial(self.scroll,d="left"))
- QtCore.QObject.connect(self.ui.scroll_right,QtCore.SIGNAL("clicked()"), partial(self.scroll,d="right"))
- QtCore.QObject.connect(self.ui.move_left,QtCore.SIGNAL("clicked()"), partial(self.move,d="left"))
- QtCore.QObject.connect(self.ui.move_right,QtCore.SIGNAL("clicked()"), partial(self.move,d="right"))
- QtCore.QObject.connect(self.ui.btn_home,QtCore.SIGNAL("clicked()"), partial(self.command,cmd="home"))
- QtCore.QObject.connect(self.ui.btn_cls,QtCore.SIGNAL("clicked()"), partial(self.command,cmd="cls"))
- QtCore.QObject.connect(self.ui.btn_hide,QtCore.SIGNAL("clicked()"), partial(self.command,cmd="hide"))
- QtCore.QObject.connect(self.ui.btn_restore,QtCore.SIGNAL("clicked()"), partial(self.command,cmd="restore"))
- QtCore.QObject.connect(self.ui.cursor_blink,QtCore.SIGNAL("clicked()"), partial(self.cursor,m="blink"))
- QtCore.QObject.connect(self.ui.cursor_underline,QtCore.SIGNAL("clicked()"), partial(self.cursor,m="underline"))
- QtCore.QObject.connect(self.ui.cursor_hide,QtCore.SIGNAL("clicked()"), partial(self.cursor,m="hide"))
- QtCore.QObject.connect(self.ui.bin_push,QtCore.SIGNAL("clicked()"), self.bin)
- QtCore.QObject.connect(self.ui.msg_send,QtCore.SIGNAL("clicked()"), self.msg)
- QtCore.QObject.connect(self.ui.setpos_go,QtCore.SIGNAL("clicked()"), self.setpos)
- ### Custom ###
- for i in range(8):
- for j in range(5):
- QtCore.QObject.connect(getattr(self.ui, "c%d_%d" % (i+1,j+1)),QtCore.SIGNAL("clicked()"), partial(self.custom_project,p=[i,j]))
- self.l = []
- for i in range(8):
- self.l.append([0,0,0,0,0])
- QtCore.QObject.connect(self.ui.custom_send,QtCore.SIGNAL("clicked()"), partial(self.custom,action="send"))
- QtCore.QObject.connect(self.ui.custom_save,QtCore.SIGNAL("clicked()"), partial(self.custom,action="save"))
- ##############
- def custom_project(self, p):
- self.l[p[0]][p[1]] = 1 if self.l[p[0]][p[1]] == 0 else 0
- setcolor = "black" if self.l[p[0]][p[1]] else "white"
- getattr(self.ui, "c%d_%d" % (p[0]+1, p[1]+1)).setStyleSheet("background-color: %s" % setcolor)
- def custom(self, action):
- bits = []
- for i in self.l:
- v = 0
- for j, x in enumerate(i):
- v+=x*16/(2**j)
- bits.append(str(int(v)))
- print(bits)
- if action == "save":
- self.send(b"custom "+";".join(bits).encode("utf-8")+b" "+self.ui.custom_position.text().encode("utf-8"))
- elif action == "send":
- self.send(b"custom "+self.ui.custom_position.text().encode("utf-8"))
- def connect(self):
- try:
- self.lcd_sock.close()
- self.lcd_sock = socket(AF_INET, SOCK_STREAM)
- self.lcd_sock.connect((self.ui.srv_ip.text(), int(self.ui.srv_port.text())))
- self.statusBar().showMessage("Połączono z serwerem")
- except:
- self.statusBar().showMessage("Nie udało się połączyć do serwera")
- def scroll(self, d):
- self.send(b"scroll " + d.encode("utf-8"))
- def move(self, d):
- self.send(b"move " + d.encode("utf-8"))
- def command(self, cmd):
- self.send(cmd.encode("utf-8"))
- def setpos(self):
- self.send(b"setpos "+self.ui.setpos_y.text().encode("utf-8")+b" "+self.ui.setpos_x.text().encode("utf-8"))
- def cursor(self, m):
- self.send(b"cursor "+m.encode("utf-8"))
- def msg(self):
- self.send(b"msg "+self.ui.msg_message.text().encode("utf-8"))
- def bin(self):
- char_mode = b" t" if self.ui.bin_char_mode.isChecked() else b" f"
- self.send(b"bin "+self.ui.bin_bits.text().encode("utf-8") + char_mode)
- def send(self, msg):
- self.lcd_sock.send(msg)
- print(self.lcd_sock.recv(8192))
- if __name__ == "__main__":
- app = QtGui.QApplication(sys.argv)
- lcdform = LCDControlForm()
- lcdform.show()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement