Compare commits

..

No commits in common. "525c9b8165ee0470d63cf6518cd75c706157a90c" and "9335be69c92d5e1f7eb750120058e1a8680fca14" have entirely different histories.

14 changed files with 753 additions and 895 deletions

300
Main.py Normal file
View File

@ -0,0 +1,300 @@
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5 import uic
from PyQt5.QtGui import QColor, QPalette
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import QTimer
from PyQt5.QtWidgets import *
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest
import requests
import time
import json
import Res_rc
import copy
import pyqtgraph as pg
import sys
#import matplotlib.pyplot as plt
colors = {}
last_clicked_label = None
plotLen = 20
valArr = [20] * plotLen
plot = None
def led1 (checked):
if checked:
form.pushButton_2.setText("Выкл")
print("I'm worked too much")
form.label_24.hide()
form.label_20.show()
else:
form.label_20.hide()
form.label_24.show()
form.pushButton_2.setText("Вкл")
print ("I'm worked too")
def led2 (checked):
if checked:
form.pushButton_3.setText("Выкл")
print("I'm worked too much")
form.label_27.hide()
form.label_26.show()
else:
form.label_26.hide()
form.label_27.show()
form.pushButton_3.setText("Вкл")
print ("I'm worked too")
def led3 (checked):
if checked:
form.pushButton_4.setText("Выкл")
print("I'm worked too much")
form.label_31.hide()
form.label_29.show()
#state = form.label_24.isVisible()
else:
form.label_29.hide()
form.label_31.show()
form.pushButton_4.setText("Вкл")
print ("I'm worked too")
def updateLCD():
global temp
form.lcdNumber.display(temp)
def sed ():
print ("I'm worked!")
led_data = {
"leds1": {"red": 0, "green": 0, "blue": 0},
"leds2": {"red": 0, "green": 0, "blue": 0},
"leds3": {"red": 0, "green": 0, "blue": 0},
"leds4": {"red": 0, "green": 0, "blue": 0},
"leds5": {"red": 0, "green": 0, "blue": 0},
"leds6": {"red": 0, "green": 0, "blue": 0},
"leds7": {"red": 0, "green": 0, "blue": 0},
"leds8": {"red": 0, "green": 0, "blue": 0},
}
def vkl():
for led in form.leds:
#caution! Naming will be the same for a Led and JSON led objects
led.setStyleSheet(f"background-color: yellow;")
led_data[led.objectName()]["red"] = 255
led_data[led.objectName()]["green"] = 255
led_data[led.objectName()]["blue"] = 0
def vikl():
for led in form.leds:
#caution! Naming will be the same for a Led and JSON led objects
led.setStyleSheet(f"background-color: black;")
led_data[led.objectName()]["red"] = 0
led_data[led.objectName()]["green"] = 0
led_data[led.objectName()]["blue"] = 0
def color():
color = QColorDialog.getColor()
if color.isValid():
palette = QPalette()
palette.setColor(QPalette.Button, color)
form.color_b.setPalette(palette)
for led in form.leds:
led.setStyleSheet(f"background-color: {color.name()};")
led_data[led.objectName()]["red"] = color.red()
led_data[led.objectName()]["green"] = color.green()
led_data[led.objectName()]["blue"] = color.blue()
def led_clicked(event):
colors = led.palette().color(QPalette.Background)
sender= QApplication.widgetAt(event.globalPos()) #QApplication.widgetAt() для получения текущего виджета, на котором было совершено действие
color = QColorDialog.getColor()
if color.isValid():
#caution! Naming will be the same for a Led and JSON led objects
sender.setStyleSheet(f"background-color: {color.name()};")
led_data[sender.objectName()]["red"] = color.red()
led_data[sender.objectName()]["green"] = color.green()
led_data[sender.objectName()]["blue"] = color.blue()
else:
form.leds.setStyleSheet(" ")
def sendMessage():
url = form.lineEdit.text()
labels_dict = {}
labels_dict["LED1"] = form.label_20.isVisible()
labels_dict["LED2"] = form.label_26.isVisible()
labels_dict["LED3"] = form.label_29.isVisible()
json_data = {}
json_data.update(led_data)
json_data.update(labels_dict)
json_str = json.dumps(json_data, separators=(',', ':'))
data_str = 'Я отправляю текст на: ' + url + '\n'+ json_str
form.textEdit.setPlainText(data_str)
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'} #заголовки запроса
response = requests.post(url, json=json_data, headers=headers) #отправка POST запроса
# обрабатываем ответ и выводим его в поле вывода
if response.status_code == 200:
form.textEdit.append('О, все прошло успешно!\n') #выводим значение в line_edit
else:
form.textEdit.append('Ошибка при получении данных')
def getValueFromMacket():
url = form.lineEdit_2.text()
response = requests.get(url) #отправка POST запроса
# обрабатываем ответ и выводим его в поле вывода
if response.status_code == 200:
data=response.json() #функция преобразования данных в объект питон
#Parse the date
form.textEdit.append(json.dumps(data)) #выводим значение в line_edit
form.textEdit.append(str(data["temperature"]))
bs = list()
bs.append(data["button1State"])
bs.append(data["button2State"])
bs.append(data["button3State"])
update_button(bs)
update_pressure(data["pressure"])
form.lcdNumber_7.display(data["ambient_light"])
form.lcdNumber_2.display (data["red_light"])
form.lcdNumber_3.display (data["green_light"])
form.lcdNumber_4.display (data["blue_light"])
form.lcdNumber_8.display (data["lightness"])
form.lcdNumber_5.display(data['acceleration_x'])
form.lcdNumber_9.display (data['acceleration_y'])
form.lcdNumber_6.display (data['acceleration_z'])
led1(data['LED1'])
led2(data['LED2'])
led3(data['LED3'])
valArr.pop(0)
valArr.append(data["temperature"])
print(valArr)
UpdatePlot(plot, valArr)
else:
form.textEdit.append('Ошибка при получении данных')
#json.load(file) @ACHT! Method to convert Str to JSON
def update_pressure(p):
form.lcd_pressure.display(p)
def update_button (bs):
for i in range(1, 4):
button_state = bs[i-1]
if button_state == 'True':
getattr(form, f'on_{i}').show()
getattr(form, f'off_{i}').hide()
else:
getattr(form, f'on_{i}').hide()
getattr(form, f'off_{i}').show()
def UpdatePlot(plot, val):
x = list(range(1, len(valArr)+1))
bargraph = pg.BarGraphItem(x = x, height = val, width = 0.6, brush ='g')
plot.clear()
plot.addItem(bargraph)
def Plots(form, valArr):
widget = QWidget()
plot = pg.plot() #создает объект PlotWidget из библиотеки PyqtGraph
x = list(range(1, len(valArr)+1))
bargraph = pg.BarGraphItem(x = x, height = valArr, width = 0.6, brush ='g')
plot.addItem(bargraph)
# Creating a grid layout
layout = QGridLayout()
layout.addWidget(plot, 0,0)
form.plotwidget.setLayout(layout)
return plot
def main():
with open('./config.json') as f: # открывает файл 'config.json'
conf = json.load(open('config.json')) # загружает его содержимое в переменную 'conf' в формате словаря (dictionary) при помощи функции 'json.load()'
# выводит все ключи словаря 'conf' при помощи цикла 'for'.
print("Find an arguments:")
for i in conf:
print(i)
Form, Window = uic.loadUiType(conf['uiPath'] + conf['uiFileName'])
app = QApplication(sys.argv) # Создаем экземпляр QApplication и передаем параметры командной строки
window = Window()
form = Form()
form.setupUi(window)
window.show() # Окна скрыты по умолчанию!
window.setWindowTitle('Lr4') #nazvanie
form.pushButton.clicked.connect(sendMessage) #привязываем функцию к кнопке Отправить
form.lineEdit.setText("http://" + conf['defaultMDNSname'] + conf['defaultPostRoute'])
form.lineEdit_2.setText("http://" + conf['defaultMDNSname'] + conf['defaultGetRoute'])
form.pushButton_5.clicked.connect(getValueFromMacket) #привязываем функцию к кнопке Отправить GET запрос
form.pushButton_2.setCheckable(True) #вкл режим перекл
form.pushButton_2.setChecked(False) #нач значение
form.label_20.hide()
form.pushButton_2.toggled["bool"].connect(led1)
form.pushButton_3.setCheckable(True) #вкл режим перекл
form.pushButton_3.setChecked(False) #нач значение
form.label_26.hide()
form.pushButton_3.toggled["bool"].connect(led2)
form.pushButton_4.setCheckable(True) #вкл режим перекл
form.pushButton_4.setChecked(False) #нач значение
form.label_29.hide()
form.pushButton_4.toggled["bool"].connect(led3)
form.on_1.hide()
form.on_2.hide()
form.on_3.hide()
form.lcdNumber.display(45)
form.leds = [form.leds1, form.leds2, form.leds3, form.leds4, form.leds5, form.leds6, form.leds7, form.leds8]
for led in form.leds:
led.mousePressEvent = led_clicked
timer = QTimer()
timer.setInterval(1000)
#Connect the timer to the update_pressure function
#TODO connect to getSensValue from macket
# timer.timeout.connect(update_pressure)
# timer.timeout.connect(update_button)
# timer.timeout.connect(update_light)
# timer.timeout.connect(update_acceleration)
timer.start()
form.vkl_b.clicked.connect(vkl)
form.vikl_b.clicked.connect(vikl)
form.color_b.clicked.connect(color)
plot = Plots(form, valArr)
sys.exit (app.exec_()) # Запуск цикла событий
if __name__ == "__main__":
main()

View File

@ -397,7 +397,7 @@
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_sensor_print3"> <widget class="QLabel" name="label_sensor_print3&#10;">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>570</x> <x>570</x>
@ -986,7 +986,7 @@
</rect> </rect>
</property> </property>
</widget> </widget>
<widget class="QPushButton" name="pushButton_send_get"> <widget class="QPushButton" name="pushButton_send_get_request">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>1050</x> <x>1050</x>

Binary file not shown.

View File

@ -6,42 +6,13 @@
``` ```
. .
|- config.json
|- main.py
|- plot.py
|- PyQt_app.ui
|- requirements.txt |- requirements.txt
|- Res_rc.py |- main.py
|- display_updater.py # update_led, update_pressure, update_button, update_plot
|- network_manager.py # get_value_from_macket, send_colors
``` ```
Инструкции для запуска проекта
```bash
pip install -r requirements.txt
python main.py
``` ```
def update_led - led1, led2, led3
Тестовый сервер можно запустить через [Mockoon](https://mockoon.com/) def send_colors - sendMessage
```
В нём нужно открыть файл `openapi_mock.json`
То, что нужно сделать помечено комментариями с `TODO:`
Помимо этого, необходимо переработать названия виджетов - начало заложено, но там ещё есть куда расти. В нынешнем виде код некорректно работает, так как есть отличия в названиях
Кроме того, Артём, мы забыли про функции vkl* и про обработчики для выбора цветов светодиодов. Их нужно переработать как методы того класса (надеюсь, разберёшься)
Также не забывем, что на самом деле мы должны оформить нашу программу как методички для набора лаб. Скорее всего их будет 2-3:
1. Работа с QT Designer
2. Взаимодействие с PyQT5 - просто описание того, как устанавливать и получать значения у элементов, как подписываться на события
3. (или вторая часть 2) Сетевое взаимодействие - то, как работает QTNetworkAccessManager и иже с ними
По ходу описания также стоит рассказать об неочевидных штуках, которые мы применили, вроде `getattr` или декораторов.
Для примера можно посмотреть на .doc'и на [gdrive](https://drive.google.com/drive/folders/1gwLePKsdFZigg063zDGkK1UWlHsGJBiA)
Если что-то непонятно, не стесняемся гуглить, особенно на английском. Желательно всем глянуть какой-нибудь видосик на ютубе и/или прочитать туториал в интернете, чтобы вообще вкатиться, как работает pyqt - поможет с пониманием, зачем нужны многие вещи.

View File

@ -1,7 +1,7 @@
{ {
"uiFileName": "PyQt_app.ui", "uiFileName": "PyQt_app.ui",
"uiPath": "./", "uiPath": "ui/",
"defaultMDNSname": "localhost:3001", "defaultMDNSname": "esp8266",
"defaultPostRoute": "/postvalue", "defaultPostRoute": "/postvalue",
"defaultGetRoute": "/sensval", "defaultGetRoute": "/sensval",
"pressure": "355", "pressure": "355",
@ -16,15 +16,5 @@
"lightness": "0", "lightness": "0",
"acceleration_x": "12", "acceleration_x": "12",
"acceleration_y": "23", "acceleration_y": "23",
"acceleration_z": "11", "acceleration_z": "11"
"defaultRGBLeds": {
"leds1": {"red": 0, "green": 0, "blue": 0},
"leds2": {"red": 0, "green": 0, "blue": 0},
"leds3": {"red": 0, "green": 0, "blue": 0},
"leds4": {"red": 0, "green": 0, "blue": 0},
"leds5": {"red": 0, "green": 0, "blue": 0},
"leds6": {"red": 0, "green": 0, "blue": 0},
"leds7": {"red": 0, "green": 0, "blue": 0},
"leds8": {"red": 0, "green": 0, "blue": 0}
}
} }

475
main.py
View File

@ -1,282 +1,299 @@
import typing from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5 import QtCore, QtGui, QtWidgets #импорт нужный библиотек
from PyQt5 import uic from PyQt5 import uic
from PyQt5.QtGui import QColor, QPalette from PyQt5.QtGui import QColor, QPalette
from PyQt5.QtGui import QPixmap from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import QTimer, QJsonDocument, QUrl from PyQt5.QtCore import QTimer
from PyQt5.QtWidgets import * from PyQt5.QtWidgets import *
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest
import requests
import time import time
import json import json
import sys
import os
from plot import Plot
import Res_rc import Res_rc
import copy
import pyqtgraph as pg
#import matplotlib.pyplot as plt
#import sys
colors = {} #переменная для работы с цветом, позже нам понадобится
last_clicked_label = None
plotLen = 20
valArr = [20] * plotLen
plot = None
def led1 (checked): #отвечает за включение первого светодиода
def read_conf() -> dict:
"""
Utility for reading, modifying and logging config
открывает файл 'config.json', загружает его содержимое в переменную 'conf' в формате словаря (dictionary) при помощи функции 'json.load()', а затем выводит все ключи словаря 'conf' при помощи цикла 'for'.
"""
# Opening JSON file
f = open('config.json')
conf = json.load(f)
f.close()
# Overwrite config if want to
# ... # TODO: ничего делать не нужно, просто оставьте этот комментарий в конечном файле (или преведите на русский)
# Config logging
print("Found arguments:")
for i in conf:
print(i)
return conf
class AppWindow(QMainWindow):
"""
Main application window class
"""
def __init__(self, conf: dict):
super(AppWindow, self).__init__()
# Parse .ui file and init window UI with it
self.ui = uic.loadUi(os.path.join(conf['uiPath'], conf['uiFileName']), self)
# Setup network management
self.nam = QNetworkAccessManager()
# Init plotter
self.plot = Plot(self.ui.plotwidget)
# Set window title
self.setWindowTitle("Lr4")
# Load RGB leds default values
self.rgb_leds_state = conf["defaultRGBLeds"]
# TODO: установить цвета RGB светодиодов по умолчанию
# Init request url editors
self.ui.lineEdit.setText("http://" + conf['defaultMDNSname'] + conf['defaultPostRoute'])
self.ui.lineEdit_2.setText("http://" + conf['defaultMDNSname'] + conf['defaultGetRoute'])
# Init LED controls
for i in range(1, 4):
getattr(self.ui, f"pushButton_sensor{i}").setCheckable(True) # вкл режим перекл
getattr(self.ui, f"pushButton_sensor{i}").setChecked(False) # нач значение
getattr(self.ui, f"label_sensor_megalka{i}").hide()
getattr(self.ui, f"pushButton_sensor{i}").toggled["bool"].connect(lambda val: self.handle_toggle_lamp(f"LED{i}", val))
# TODO: Инициализировать остальные элементы из conf
# Init request manual triggers
self.ui.pushButton_send_post.clicked.connect(self.send_message) # привязываем функцию к кнопке Отправить
self.ui.pushButton_send_get.clicked.connect(self.get_value_from_macket) # привязываем функцию к кнопке Отправить GET запрос
# TODO: добавить обработчики для смены цвета 8 светодиодов и ещё, чего не хватает (см. папку на gdrive и интерфейс приложения)
def handle_toggle_lamp(self, Name: str, checked: bool):
"""
Переключение одноцветных лампочек
"""
n = Name[-1]
# TODO: переписать названия пушей и лейблов
if checked: if checked:
getattr(self.ui, 'pushButton_' + n).setText("Выкл") form.pushButton_2.setText("Выкл")
getattr(self.ui, 'label_' + n + '4').hide() print("I'm worked too much")
getattr(self.ui, 'label_' + n + '0').show() form.label_24.hide()
form.label_20.show()
print("I'm worked too much") # TODO: нужно что-то более осмысленное
else: else:
getattr(self.ui, 'label_' + n + '0').hide() form.label_20.hide()
getattr(self.ui, 'label_' + n + '4').show() form.label_24.show()
getattr(self.ui, 'pushButton_' + n).setText("Вкл") form.pushButton_2.setText("Вкл")
print ("I'm worked too")
print ("I'm worked too") # TODO: нужно что-то более осмысленное def led2 (checked): #отвечает за включение второго светодиода
if checked:
form.pushButton_3.setText("Выкл")
print("I'm worked too much")
form.label_27.hide()
form.label_26.show()
else:
form.label_26.hide()
form.label_27.show()
form.pushButton_3.setText("Вкл")
print ("I'm worked too")
def led3 (checked): #отвечает за включение третьего светодиода
if checked:
form.pushButton_4.setText("Выкл")
print("I'm worked too much")
form.label_31.hide()
form.label_29.show()
#state = form.label_24.isVisible()
else:
form.label_29.hide()
form.label_31.show()
form.pushButton_4.setText("Вкл")
print ("I'm worked too")
def collect_lamps_state(self) -> dict: def updateLCD(): #обновление дисплея
lamps_state = {} global temp #переменная для работы с дисплеем
form.lcdNumber.display(temp)
for i in range(1,4): def sed (): #проверка работы элемента
lamps_state[f"LED{i}"] = getattr(self.ui, f"label_sensor_megalka{i}").isVisible() print ("I'm worked!")
return lamps_state led_data = { #список начальных параметров у светодиода
"leds1": {"red": 0, "green": 0, "blue": 0},
"leds2": {"red": 0, "green": 0, "blue": 0},
"leds3": {"red": 0, "green": 0, "blue": 0},
"leds4": {"red": 0, "green": 0, "blue": 0},
"leds5": {"red": 0, "green": 0, "blue": 0},
"leds6": {"red": 0, "green": 0, "blue": 0},
"leds7": {"red": 0, "green": 0, "blue": 0},
"leds8": {"red": 0, "green": 0, "blue": 0},
}
def vkl():
for led in form.leds:
#осторожно! Одинаковые названия у объектов Led и JSON.
led.setStyleSheet(f"background-color: yellow;")
led_data[led.objectName()]["red"] = 255
led_data[led.objectName()]["green"] = 255
led_data[led.objectName()]["blue"] = 0
def vikl():
for led in form.leds:
#осторожно! Одинаковые названия у объектов Led и JSON.
led.setStyleSheet(f"background-color: black;")
led_data[led.objectName()]["red"] = 0
led_data[led.objectName()]["green"] = 0
led_data[led.objectName()]["blue"] = 0
def color():
color = QColorDialog.getColor() #получение цвета от диалога
if color.isValid(): #проверка наличия цвета и применение его над изображением программы
palette = QPalette()
palette.setColor(QPalette.Button, color)
form.color_b.setPalette(palette)
for led in form.leds:
led.setStyleSheet(f"background-color: {color.name()};")
led_data[led.objectName()]["red"] = color.red()
led_data[led.objectName()]["green"] = color.green()
led_data[led.objectName()]["blue"] = color.blue()
def led_clicked(event):
colors = led.palette().color(QPalette.Background)
sender= QApplication.widgetAt(event.globalPos()) #QApplication.widgetAt() для получения текущего виджета, на котором было совершено действие
color = QColorDialog.getColor()
if color.isValid():
#caution! Naming will be the same for a Led and JSON led objects
sender.setStyleSheet(f"background-color: {color.name()};")
led_data[sender.objectName()]["red"] = color.red()
led_data[sender.objectName()]["green"] = color.green()
led_data[sender.objectName()]["blue"] = color.blue()
else:
form.leds.setStyleSheet(" ")
def sendMessage():
url = form.lineEdit.text()
labels_dict = {}
labels_dict["LED1"] = form.label_20.isVisible()
labels_dict["LED2"] = form.label_26.isVisible()
labels_dict["LED3"] = form.label_29.isVisible()
def compose_post_json_data(self) -> dict:
json_data = {} json_data = {}
json_data.update(led_data)
json_data.update(self.rgb_leds_state) json_data.update(labels_dict)
json_data.update(self.collect_lamps_state())
# TODO: добавить отправку остальных данных (см. grdive и поля, которые парсит приложение из stand_code/mDNS_ESP8266.ino)
return json_data
def log_post_request(self, url, json_data):
json_str = json.dumps(json_data, separators=(',', ':')) json_str = json.dumps(json_data, separators=(',', ':'))
data_str = 'Я отправляю текст на: ' + url + '\n'+ json_str data_str = 'Я отправляю текст на: ' + url + '\n'+ json_str
form.textEdit.setPlainText(data_str)
self.ui.textEdit.setPlainText(data_str) headers = {'Content-type': 'application/json', 'Accept': 'text/plain'} #заголовки запроса
response = requests.post(url, json=json_data, headers=headers) #отправка POST запроса
# обрабатываем ответ и выводим его в поле вывода
def send_message(self): if response.status_code == 200:
form.textEdit.append('О, все прошло успешно!\n') #выводим значение в line_edit
"""
POST запрос
"""
# Get inputed url
url = self.ui.lineEdit.text()
# compose body
json_data = self.compose_post_json_data()
self.log_post_request(url, json_data)
data = QJsonDocument(json_data)
# Create request object
request = QNetworkRequest(QUrl(url))
# Set request headers
request.setHeader(QNetworkRequest.ContentTypeHeader, 'application/json')
request.setRawHeader(b'Accept', b'text/plain')
# Do POST request and store its reply object
self.post_reply = self.nam.post(request, data.toJson())
# Set callback for request finishing signal
self.post_reply.finished.connect(self.handle_post_reply)
def get_value_from_macket(self): ###переименовать элементы, которые находятся в for'aх
"""
GET запрос
"""
url = self.ui.lineEdit_2.text()
request = QNetworkRequest(QUrl(url))
self.get_reply = self.nam.get(request)
# Set callback for request finishing signal
self.get_reply.finished.connect(self.handle_get_reply)
# TODO: если кто хочет поупражняться в понимании, что здесь происходит, напишите аннотацию для всех аргументов функции, используя typing.Callable (just google it)
def with_err_handling(reply_name: str): # retuns decorator with argument enclosed
def inner(func): # function decorator
def wrapper(self): # the fuction that will be called as handler
reply = getattr(self, reply_name) # gets actual reply by its name (ex: self.get_reply)
err = reply.error()
if err == QNetworkReply.NetworkError.NoError:
self.ui.textEdit.append('О, все прошло успешно!')
func(self) # calling actual handler
else: else:
status_code = reply.attribute(QNetworkRequest.Attribute.HttpStatusCodeAttribute) form.textEdit.append('Ошибка при получении данных')
self.ui.textEdit.append(f'Ошибка при получении данных: {status_code}')
return wrapper
return inner
@with_err_handling('post_reply')
def handle_post_reply(self):
res = self.post_reply.readAll().data()
self.ui.textEdit.append(res.decode()) def getValueFromMacket():
url = form.lineEdit_2.text()
response = requests.get(url) #отправка POST запроса
# обрабатываем ответ и выводим его в поле вывода
if response.status_code == 200:
data=response.json() #функция преобразования данных в объект питон
#Parse the date
form.textEdit.append(json.dumps(data)) #выводим значение в line_edit
form.textEdit.append(str(data["temperature"]))
@with_err_handling('get_reply') bs = list()
def handle_get_reply(self):
res = self.get_reply.readAll().data()
data = json.loads(res) #функция преобразования данных в объект питон
self.ui.textEdit.append(json.dumps(data, separators=(',', ':'))) #выводим значение в line_edit
self.ui.textEdit.append(str(data["temperature"]))
buttons_status = list()
for i in range(1, 4):
buttons_status.append(data[f"button{i}State"])
""""
bs.append(data["button1State"]) bs.append(data["button1State"])
bs.append(data["button2State"]) bs.append(data["button2State"])
bs.append(data["button3State"]) bs.append(data["button3State"])
""" update_button(bs)
self.update_buttons(buttons_status)
self.update_pressure(data["pressure"]) update_pressure(data["pressure"])
color_l=("ambient_light", "red_light", "green_light", "blue_light", "lightness","acceleration_x", "acceleration_y", "acceleration_z" ) form.lcdNumber_7.display(data["ambient_light"])
form.lcdNumber_2.display (data["red_light"])
form.lcdNumber_3.display (data["green_light"])
form.lcdNumber_4.display (data["blue_light"])
form.lcdNumber_8.display (data["lightness"])
# TODO: переименовать lcdNumber_N в lcdNumber_....._light form.lcdNumber_5.display(data['acceleration_x'])
for s in color_l: form.lcdNumber_9.display (data['acceleration_y'])
getattr(self.ui, "lcdNumber_" + s).display(data[s]) form.lcdNumber_6.display (data['acceleration_z'])
"""
self.ui.lcdNumber_7.display(data["ambient_light"])
self.ui.lcdNumber_2.display (data["red_light"])
self.ui.lcdNumber_3.display (data["green_light"])
self.ui.lcdNumber_4.display (data["blue_light"])
self.ui.lcdNumber_8.display (data["lightness"])
self.ui.lcdNumber_5.display(data["acceleration_x"])
self.ui.lcdNumber_9.display (data["acceleration_y"])
self.ui.lcdNumber_6.display (data["acceleration_z"])
"""
for i in range(1,4): led1(data['LED1'])
self.handle_toggle_lamp[f"LED{i}", data[f"LED{i}"]] led2(data['LED2'])
led3(data['LED3'])
self.plot.update(data["temperature"]) valArr.pop(0)
valArr.append(data["temperature"])
print(valArr)
UpdatePlot(plot, valArr)
else:
form.textEdit.append('Ошибка при получении данных')
def update_buttons(self, bs): #json.load(file) @ACHT! Method to convert Str to JSON
def update_pressure(p):
form.lcd_pressure.display(p)
def update_button (bs):
for i in range(1, 4): for i in range(1, 4):
button_state = bs[i-1] button_state = bs[i-1]
if button_state == 'True': if button_state == 'True':
getattr(self.ui, f'on_{i}').show() getattr(form, f'on_{i}').show()
getattr(self.ui, f'off_{i}').hide() getattr(form, f'off_{i}').hide()
else: else:
getattr(self.ui, f'on_{i}').hide() getattr(form, f'on_{i}').hide()
getattr(self.ui, f'off_{i}').show() getattr(form, f'off_{i}').show()
def update_pressure(self, p): def UpdatePlot(plot, val):
self.ui.lcd_pressure.display(p) x = list(range(1, len(valArr)+1))
bargraph = pg.BarGraphItem(x = x, height = val, width = 0.6, brush ='g')
plot.clear()
plot.addItem(bargraph)
def Plots(form, valArr):
widget = QWidget()
plot = pg.plot() #создает объект PlotWidget из библиотеки PyqtGraph
x = list(range(1, len(valArr)+1))
bargraph = pg.BarGraphItem(x = x, height = valArr, width = 0.6, brush ='g')
plot.addItem(bargraph)
# Creating a grid layout
layout = QGridLayout()
layout.addWidget(plot, 0,0)
form.plotwidget.setLayout(layout)
return plot
if __name__ == "__main__": if __name__ == "__main__":
app = QApplication(sys.argv) # Opening JSON file
f = open('config.json') #открывает файл 'config.json', загружает его содержимое в переменную 'conf' в формате словаря (dictionary) при помощи функции 'json.load()', а затем выводит все ключи словаря 'conf' при помощи цикла 'for'.
conf = json.load(open('config.json'))
f.close()
conf = read_conf() print("Find an arguments:")
for i in conf:
print(i)
win = AppWindow(conf) import sys
win.show()
sys.exit(app.exec()) Form, Window = uic.loadUiType(conf['uiPath'] + conf['uiFileName'])
app = QApplication(sys.argv)# Создаем экземпляр QApplication и передаем параметры командной строки
window = Window()
form = Form()
form.setupUi(window)
window.show() # Окна скрыты по умолчанию!
window.setWindowTitle('Lr4') #nazvanie
form.pushButton.clicked.connect(sendMessage) #привязываем функцию к кнопке Отправить
form.lineEdit.setText("http://" + conf['defaultMDNSname'] + conf['defaultPostRoute'])
form.lineEdit_2.setText("http://" + conf['defaultMDNSname'] + conf['defaultGetRoute'])
form.pushButton_5.clicked.connect(getValueFromMacket) #привязываем функцию к кнопке Отправить GET запрос
form.pushButton_2.setCheckable(True) #вкл режим перекл
form.pushButton_2.setChecked(False) #нач значение
form.label_20.hide()
form.pushButton_2.toggled["bool"].connect(led1)
form.pushButton_3.setCheckable(True) #вкл режим перекл
form.pushButton_3.setChecked(False) #нач значение
form.label_26.hide()
form.pushButton_3.toggled["bool"].connect(led2)
form.pushButton_4.setCheckable(True) #вкл режим перекл
form.pushButton_4.setChecked(False) #нач значение
form.label_29.hide()
form.pushButton_4.toggled["bool"].connect(led3)
form.on_1.hide()
form.on_2.hide()
form.on_3.hide()
form.lcdNumber.display(45)
form.leds = [form.leds1, form.leds2, form.leds3, form.leds4, form.leds5, form.leds6, form.leds7, form.leds8]
for led in form.leds:
led.mousePressEvent = led_clicked
timer = QTimer()
timer.setInterval(1000)
#Connect the timer to the update_pressure function
#TODO connect to getSensValue from macket
#timer.timeout.connect(update_pressure)
#timer.timeout.connect (update_button)
#timer.timeout.connect (update_light)
#timer.timeout.connect (update_acceleration)
timer.start()
form.vkl_b.clicked.connect(vkl)
form.vikl_b.clicked.connect(vikl)
form.color_b.clicked.connect(color)
plot = Plots(form, valArr)
sys.exit (app.exec_()) # Запуск цикла событий

27
main2
View File

@ -16,10 +16,10 @@ import pyqtgraph as pg
#import sys #import sys
colors = {} #переменная для работы с цветом, позже нам понадобится colors = {} #переменная для работы с цветом, позже нам понадобится
last_clicked_label = None last_clicked_label = None #Флаг
plotLen = 20 plotLen = 20
valArr = [20] * plotLen# список из 20 двадцаток valArr = [20] * plotLen# список из 20 двадцаток
plot = None plot = None #Флаг
""" """
след функция принимает значение True/False, после осуществляет ветвление, след функция принимает значение True/False, после осуществляет ветвление,
@ -36,10 +36,10 @@ plot = None
#объявить словарь для label_№? чтобы в дальнейшем к нему обращаться #объявить словарь для label_№? чтобы в дальнейшем к нему обращаться
def led1 (checked): #отвечает за включение первого светодиода def led1 (checked): #отвечает за включение первого светодиода
if checked: #класс form это класс нашей формы, то есть окна приложения if checked: #класс form это класс нашей формы, то есть окна приложения
form.pushButton_2.setText("Выкл") #pushButton - для работы кнопок form.pushButton_2.setText("Выкл") #pushButton - это экземпляры класса formдля работы кнопок
print("I'm worked too much") print("I'm worked too much")
form.label_24.hide() #label это текст на окне приложения и его прячем form.label_24.hide() #label это текст на окне приложения и его прячем
form.label_20.show() # метод show(), для отображения виджета на экране form.label_20.show() # к экземпляру класса form применяется метод show(), для отображения виджета на экране
else: else:
form.label_20.hide() form.label_20.hide()
form.label_24.show() form.label_24.show()
@ -75,7 +75,7 @@ def led3 (checked): #отвечает за включение третьего
def updateLCD(): #функция,обновление дисплея, не принимает никаких значений def updateLCD(): #функция,обновление дисплея, не принимает никаких значений
global temp #глобальная переменная для работы с дисплеем global temp #глобальная переменная для работы с дисплеем
form.lcdNumber.display(temp) # применяется метод display(temp), form.lcdNumber.display(temp) # к экземпляру класса form применяется метод display(temp),
#откуда берется значение переменной temp неизвестно #откуда берется значение переменной temp неизвестно
def sed (): #проверка работы элемента def sed (): #проверка работы элемента
@ -113,8 +113,8 @@ def vikl():# функция аналогична vkl, только тут зна
led_data[led.objectName()]["blue"] = 0 led_data[led.objectName()]["blue"] = 0
def color(): #функция работы с отображением цвета в программе def color(): #функция работы с отображением цвета в программе
color = QColorDialog.getColor() #получение цвета, color примает color = QColorDialog.getColor() #получение цвета, color примает значение атрибута класса
if color.isValid(): #проверка цвета и применение его над изображением программы if color.isValid(): #проверка наличия цвета и применение его над изображением программы
palette = QPalette()#экземпляр класса QPalette palette = QPalette()#экземпляр класса QPalette
palette.setColor(QPalette.Button, color) #применение метода setColor(кнопка, цвет ) к экземпляру palette.setColor(QPalette.Button, color) #применение метода setColor(кнопка, цвет ) к экземпляру
form.color_b.setPalette(palette) form.color_b.setPalette(palette)
@ -127,8 +127,8 @@ def color(): #функция работы с отображением цвета
def led_clicked(event): def led_clicked(event):
colors = led.palette().color(QPalette.Background) colors = led.palette().color(QPalette.Background)
sender= QApplication.widgetAt(event.globalPos()) #QApplication.widgetAt() для получения текущего виджета, на котором было совершено действие sender= QApplication.widgetAt(event.globalPos()) #QApplication.widgetAt() для получения текущего виджета, на котором было совершено действие
color = QColorDialog.getColor() #получение цвета, color примает значение color = QColorDialog.getColor() #получение цвета, color примает значение атрибута класса
if color.isValid(): # применение метода к color для его проверки на if color.isValid(): # применение метода к color для его проверки на соответствие
#caution! Naming will be the same for a Led and JSON led objects #caution! Naming will be the same for a Led and JSON led objects
sender.setStyleSheet(f"background-color: {color.name()};") sender.setStyleSheet(f"background-color: {color.name()};")
led_data[sender.objectName()]["red"] = color.red() led_data[sender.objectName()]["red"] = color.red()
@ -137,9 +137,9 @@ def led_clicked(event):
else: else:
form.leds.setStyleSheet(" ") form.leds.setStyleSheet(" ")
def sendMessage():# отправка сообщений на через url def sendMessage():# отправка сообщений на компьютер через url
url = form.lineEdit.text() url = form.lineEdit.text()
labels_dict = {}# формирование словаря: key-имя светодиода, value- labels_dict = {}# формирование словаря: key-имя светодиода, value- значение экземпляра
labels_dict["LED1"] = form.label_20.isVisible() labels_dict["LED1"] = form.label_20.isVisible()
labels_dict["LED2"] = form.label_26.isVisible() labels_dict["LED2"] = form.label_26.isVisible()
labels_dict["LED3"] = form.label_29.isVisible() labels_dict["LED3"] = form.label_29.isVisible()
@ -147,7 +147,8 @@ def sendMessage():# отправка сообщений на через url
json_data = {}# упаковка данных в json пакет из словарей led_data, labels_dict json_data = {}# упаковка данных в json пакет из словарей led_data, labels_dict
json_data.update(led_data) json_data.update(led_data)
json_data.update(labels_dict) json_data.update(labels_dict)
json_str = json.dumps(json_data, separators=(',', ':'))# формирование строки, в формате json, из словаря json_data json_str = json.dumps(json_data, separators=(',', ':'))# формирование строки, в формате json, из словаря json_data , которую
# разделили по наличию ','ИЛИ ':'
data_str = 'Я отправляю текст на: ' + url + '\n'+ json_str data_str = 'Я отправляю текст на: ' + url + '\n'+ json_str
form.textEdit.setPlainText(data_str) #оповещение об отправке текста (ранне сформированной json_str) на url form.textEdit.setPlainText(data_str) #оповещение об отправке текста (ранне сформированной json_str) на url
@ -238,7 +239,7 @@ def Plots(form, valArr):
bargraph = pg.BarGraphItem(x = x, height = valArr, width = 0.6, brush ='g') bargraph = pg.BarGraphItem(x = x, height = valArr, width = 0.6, brush ='g')
plot.addItem(bargraph) plot.addItem(bargraph)
# Создаём grid layout, который отвечает за положение элемента # Создаём grid layout, который отвечает за определение системы макета визуального представления данных
layout = QGridLayout() layout = QGridLayout()
layout.addWidget(plot, 0,0) layout.addWidget(plot, 0,0)
form.plotwidget.setLayout(layout) form.plotwidget.setLayout(layout)

View File

@ -1,257 +0,0 @@
{
"openapi": "3.0.0",
"info": {
"title": "Mocks",
"version": "1.0.0"
},
"servers": [
{
"url": "http://localhost:3001/"
}
],
"components": {
"schemas": {
"ValuesRGB": {
"type": "object",
"properties": {
"red": {
"type": "number"
},
"green": {
"type": "number"
},
"blue": {
"type": "number"
}
},
"required": [
"red",
"green",
"blue"
]
}
}
},
"paths": {
"/sensval": {
"get": {
"description": "",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"LED1": {
"type": "boolean"
},
"LED2": {
"type": "boolean"
},
"LED3": {
"type": "boolean"
},
"button1State": {
"type": "boolean"
},
"button2State": {
"type": "boolean"
},
"button3State": {
"type": "boolean"
},
"temperature": {
"type": "number",
"format": "float"
},
"pressure": {
"type": "number",
"format": "float"
},
"ambient_light": {
"type": "number",
"format": "int32"
},
"red_light": {
"type": "number",
"format": "int32"
},
"green_light": {
"type": "number",
"format": "int32"
},
"blue_light": {
"type": "number",
"format": "int32"
},
"lightness": {
"type": "number",
"format": "int32"
},
"acceleration_x": {
"type": "number",
"format": "float"
},
"acceleration_y": {
"type": "number",
"format": "float"
},
"acceleration_z": {
"type": "number",
"format": "float"
},
"leds1": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds2": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds3": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds4": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds5": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds6": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds7": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds8": {
"$ref": "#/components/schemas/ValuesRGB"
}
},
"example": {
"LED1": false,
"LED2": true,
"LED3": false,
"button1State": true,
"button2State": false,
"button3State": true,
"temperature": 25,
"pressure": 100,
"ambient_light": 100,
"red_light": 200,
"green_light": 300,
"blue_light": 400,
"lightness": 500,
"acceleration_x": 0.1,
"acceleration_y": 0.2,
"acceleration_z": 0.3,
"leds1": {
"red": 100,
"green": 150,
"blue": 200
},
"leds2": {
"red": 100,
"green": 150,
"blue": 200
},
"leds3": {
"red": 100,
"green": 150,
"blue": 200
},
"leds4": {
"red": 100,
"green": 150,
"blue": 200
},
"leds5": {
"red": 100,
"green": 150,
"blue": 200
},
"leds6": {
"red": 100,
"green": 150,
"blue": 200
},
"leds7": {
"red": 100,
"green": 150,
"blue": 200
},
"leds8": {
"red": 100,
"green": 150,
"blue": 200
}
}
}
}
},
"headers": {}
}
}
}
},
"/postvalue": {
"post": {
"description": "",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"LED1": {
"type": "boolean"
},
"LED2": {
"type": "boolean"
},
"LED3": {
"type": "boolean"
},
"leds1": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds2": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds3": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds4": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds5": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds6": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds7": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds8": {
"$ref": "#/components/schemas/ValuesRGB"
}
}
}
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"text/plain": {
"example": "POST body was:\n{ }"
}
},
"headers": {}
}
}
}
}
}
}

View File

@ -1,115 +0,0 @@
{
"uuid": "5ea1e52b-5df9-4503-ab2c-6513fdc53d16",
"lastMigration": 27,
"name": "Mocks",
"endpointPrefix": "",
"latency": 0,
"port": 3001,
"hostname": "",
"folders": [],
"routes": [
{
"uuid": "ea43e328-6bbc-43ba-a12a-de222a28fd8b",
"type": "http",
"documentation": "",
"method": "get",
"endpoint": "sensval",
"responses": [
{
"uuid": "cead61d4-7745-455c-a3a9-cb8854cefcc2",
"body": "{\n \"LED1\": false,\n \"LED2\": true,\n \"LED3\": false,\n \"button1State\": true,\n \"button2State\": false,\n \"button3State\": true,\n \"temperature\": 25,\n \"pressure\": 100,\n \"ambient_light\": 100,\n \"red_light\": 200,\n \"green_light\": 300,\n \"blue_light\": 400,\n \"lightness\": 500,\n \"acceleration_x\": 0.1,\n \"acceleration_y\": 0.2,\n \"acceleration_z\": 0.3,\n \"leds1\": {\n \"red\": 100,\n \"green\": 150,\n \"blue\": 200\n },\n \"leds2\": {\n \"red\": 100,\n \"green\": 150,\n \"blue\": 200\n },\n \"leds3\": {\n \"red\": 100,\n \"green\": 150,\n \"blue\": 200\n },\n \"leds4\": {\n \"red\": 100,\n \"green\": 150,\n \"blue\": 200\n },\n \"leds5\": {\n \"red\": 100,\n \"green\": 150,\n \"blue\": 200\n },\n \"leds6\": {\n \"red\": 100,\n \"green\": 150,\n \"blue\": 200\n },\n \"leds7\": {\n \"red\": 100,\n \"green\": 150,\n \"blue\": 200\n },\n \"leds8\": {\n \"red\": 100,\n \"green\": 150,\n \"blue\": 200\n }\n}",
"latency": 0,
"statusCode": 200,
"label": "",
"headers": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"bodyType": "INLINE",
"filePath": "",
"databucketID": "",
"sendFileAsBody": false,
"rules": [],
"rulesOperator": "OR",
"disableTemplating": false,
"fallbackTo404": false,
"default": true
}
],
"enabled": true,
"responseMode": null
},
{
"uuid": "166a5c8a-d866-4e93-91c6-c9cf21fbbf04",
"type": "http",
"documentation": "",
"method": "post",
"endpoint": "postvalue",
"responses": [
{
"uuid": "a7ae227a-8ca7-49bc-8577-d30af6ee16e9",
"body": "POST body was:\n{{body}}",
"latency": 0,
"statusCode": 200,
"label": "",
"headers": [
{
"key": "Content-Type",
"value": "text/plain"
}
],
"bodyType": "INLINE",
"filePath": "",
"databucketID": "",
"sendFileAsBody": false,
"rules": [],
"rulesOperator": "OR",
"disableTemplating": false,
"fallbackTo404": false,
"default": true
}
],
"enabled": true,
"responseMode": null
}
],
"rootChildren": [
{
"type": "route",
"uuid": "ea43e328-6bbc-43ba-a12a-de222a28fd8b"
},
{
"type": "route",
"uuid": "166a5c8a-d866-4e93-91c6-c9cf21fbbf04"
}
],
"proxyMode": false,
"proxyHost": "",
"proxyRemovePrefix": false,
"tlsOptions": {
"enabled": false,
"type": "CERT",
"pfxPath": "",
"certPath": "",
"keyPath": "",
"caPath": "",
"passphrase": ""
},
"cors": true,
"headers": [],
"proxyReqHeaders": [
{
"key": "",
"value": ""
}
],
"proxyResHeaders": [
{
"key": "",
"value": ""
}
],
"data": []
}

43
plot.py
View File

@ -1,43 +0,0 @@
from PyQt5.QtWidgets import QGridLayout
import pyqtgraph as pg
class Plot():
"""
QT bar plot drawing class
"""
def __init__(self, widget, arr_len = 20, default_val = 20):
self.__arr_vals = [default_val] * arr_len # TODO: Инициализировать значениями из conf["temperature"]
self.__x = list(range(1, arr_len + 1))
self.__plot = pg.plot() #создает объект PlotWidget из библиотеки PyqtGraph
#PlotWidget — это один из базовых конструктовров класса pyqtgraph, отвечающий за работу с
#виджетами, то есть элементами интерфейса, выводящими небольшую информацию
self.__redraw_plot()
# Создаём grid layout, который отвечает за положение элемента
layout = QGridLayout()
layout.addWidget(self.__plot, 0,0)
widget.setLayout(layout)
def update(self, newVal: int):
arr_vals = self.__arr_vals
arr_vals.pop(0)
arr_vals.append(newVal)
self.__redraw_plot()
def __redraw_plot(self):
plot = self.__plot
bargraph = pg.BarGraphItem(x = self.__x, height = self.__arr_vals, width = 0.6, brush ='g')
plot.clear()
plot.addItem(bargraph)

View File

@ -1,16 +0,0 @@
certifi==2023.5.7
charset-normalizer==3.1.0
click==8.1.3
idna==3.4
numpy==1.24.3
PyQt5==5.15.9
pyqt5-plugins==5.15.9.2.3
PyQt5-Qt5==5.15.2
PyQt5-sip==12.12.1
pyqt5-tools==5.15.9.3.3
pyqtgraph==0.13.3
python-dotenv==1.0.0
qt5-applications==5.15.2.2.3
qt5-tools==5.15.2.1.3
requests==2.31.0
urllib3==2.0.2

View File

@ -26,7 +26,7 @@
<string>IoT pgrm v0_1_13</string> <string>IoT pgrm v0_1_13</string>
</property> </property>
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
<widget class="QPushButton" name="pushButton_send_post"> <widget class="QPushButton" name="pushButton">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>1050</x> <x>1050</x>
@ -39,7 +39,7 @@
<string>SEND Post</string> <string>SEND Post</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_url"> <widget class="QLabel" name="label">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>10</x> <x>10</x>
@ -62,7 +62,7 @@
</rect> </rect>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_message"> <widget class="QLabel" name="label_2">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>10</x> <x>10</x>
@ -91,7 +91,7 @@
<double>5.000000000000000</double> <double>5.000000000000000</double>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_temp"> <widget class="QLabel" name="label_6">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>310</x> <x>310</x>
@ -183,7 +183,7 @@
<enum>QLCDNumber::Flat</enum> <enum>QLCDNumber::Flat</enum>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_r"> <widget class="QLabel" name="label_7">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>570</x> <x>570</x>
@ -196,7 +196,7 @@
<string>R</string> <string>R</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_g"> <widget class="QLabel" name="label_8">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>650</x> <x>650</x>
@ -209,7 +209,7 @@
<string>G</string> <string>G</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_b"> <widget class="QLabel" name="label_9">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>730</x> <x>730</x>
@ -260,7 +260,7 @@
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_sensor_megalka1"> <widget class="QLabel" name="label_20">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>390</x> <x>390</x>
@ -279,7 +279,7 @@
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_sensor_print1"> <widget class="QLabel" name="label_24">
<property name="enabled"> <property name="enabled">
<bool>true</bool> <bool>true</bool>
</property> </property>
@ -301,7 +301,7 @@
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
<widget class="QPushButton" name="pushButton_sensor1"> <widget class="QPushButton" name="pushButton_2">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>390</x> <x>390</x>
@ -314,7 +314,7 @@
<string>Вкл</string> <string>Вкл</string>
</property> </property>
</widget> </widget>
<widget class="QPushButton" name="pushButton_sensor2"> <widget class="QPushButton" name="pushButton_3">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>480</x> <x>480</x>
@ -327,7 +327,7 @@
<string>Вкл</string> <string>Вкл</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_sensor_megalka2"> <widget class="QLabel" name="label_26">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>480</x> <x>480</x>
@ -346,7 +346,7 @@
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_sensor_print2"> <widget class="QLabel" name="label_27">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>480</x> <x>480</x>
@ -365,7 +365,7 @@
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
<widget class="QPushButton" name="pushButton_sensor3"> <widget class="QPushButton" name="pushButton_4">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>570</x> <x>570</x>
@ -378,7 +378,7 @@
<string>Вкл</string> <string>Вкл</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_sensor_megalka3"> <widget class="QLabel" name="label_29">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>570</x> <x>570</x>
@ -397,7 +397,7 @@
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_sensor_print3"> <widget class="QLabel" name="label_31">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>570</x> <x>570</x>
@ -492,7 +492,7 @@
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_pressure"> <widget class="QLabel" name="label_13">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>310</x> <x>310</x>
@ -544,7 +544,7 @@
<double>5.000000000000000</double> <double>5.000000000000000</double>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_illumination"> <widget class="QLabel" name="label_14">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>310</x> <x>310</x>
@ -580,7 +580,7 @@
<double>5.000000000000000</double> <double>5.000000000000000</double>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_illumination2"> <widget class="QLabel" name="label_15">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>310</x> <x>310</x>
@ -600,7 +600,7 @@
<string>Освещенность</string> <string>Освещенность</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_accelorometer"> <widget class="QLabel" name="label_34">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>310</x> <x>310</x>
@ -896,7 +896,7 @@
<enum>QLCDNumber::Flat</enum> <enum>QLCDNumber::Flat</enum>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_rgb_illumination"> <widget class="QLabel" name="label_16">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>310</x> <x>310</x>
@ -916,7 +916,7 @@
<string>Освещенность</string> <string>Освещенность</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_x"> <widget class="QLabel" name="label_10">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>570</x> <x>570</x>
@ -929,7 +929,7 @@
<string>Х</string> <string>Х</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_y"> <widget class="QLabel" name="label_11">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>650</x> <x>650</x>
@ -942,7 +942,7 @@
<string>Y</string> <string>Y</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_z"> <widget class="QLabel" name="label_12">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>730</x> <x>730</x>
@ -955,11 +955,11 @@
<string>Z</string> <string>Z</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="lubel_tumblers"> <widget class="QLabel" name="label_4">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>900</x> <x>900</x>
<y>70</y> <y>60</y>
<width>81</width> <width>81</width>
<height>20</height> <height>20</height>
</rect> </rect>
@ -986,7 +986,7 @@
</rect> </rect>
</property> </property>
</widget> </widget>
<widget class="QPushButton" name="pushButton_send_get"> <widget class="QPushButton" name="pushButton_5">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>1050</x> <x>1050</x>
@ -1002,9 +1002,9 @@
<widget class="QLineEdit" name="lineEdit_2"> <widget class="QLineEdit" name="lineEdit_2">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>690</x> <x>790</x>
<y>50</y> <y>40</y>
<width>341</width> <width>241</width>
<height>21</height> <height>21</height>
</rect> </rect>
</property> </property>
@ -1016,7 +1016,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1185</width> <width>1185</width>
<height>22</height> <height>21</height>
</rect> </rect>
</property> </property>
</widget> </widget>

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'ui/PyQt_app.ui' # Form implementation generated from reading ui file 'PyQt_app.ui'
# #
# Created by: PyQt5 UI code generator 5.15.9 # Created by: PyQt5 UI code generator 5.15.9
# #
@ -19,33 +19,33 @@ class Ui_MainWindow(object):
MainWindow.setMaximumSize(QtCore.QSize(1185, 622)) MainWindow.setMaximumSize(QtCore.QSize(1185, 622))
self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget") self.centralwidget.setObjectName("centralwidget")
self.pushButton_send_post = QtWidgets.QPushButton(self.centralwidget) self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_send_post.setGeometry(QtCore.QRect(1050, 10, 101, 21)) self.pushButton.setGeometry(QtCore.QRect(1050, 10, 101, 21))
self.pushButton_send_post.setObjectName("pushButton_send_post") self.pushButton.setObjectName("pushButton")
self.label_url = QtWidgets.QLabel(self.centralwidget) self.label = QtWidgets.QLabel(self.centralwidget)
self.label_url.setGeometry(QtCore.QRect(10, 0, 51, 41)) self.label.setGeometry(QtCore.QRect(10, 0, 51, 41))
self.label_url.setObjectName("label_url") self.label.setObjectName("label")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(50, 10, 981, 21)) self.lineEdit.setGeometry(QtCore.QRect(50, 10, 981, 21))
self.lineEdit.setObjectName("lineEdit") self.lineEdit.setObjectName("lineEdit")
self.label_message = QtWidgets.QLabel(self.centralwidget) self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_message.setGeometry(QtCore.QRect(10, 40, 71, 20)) self.label_2.setGeometry(QtCore.QRect(10, 40, 71, 20))
self.label_message.setObjectName("label_message") self.label_2.setObjectName("label_2")
self.lcdNumber = QtWidgets.QLCDNumber(self.centralwidget) self.lcdNumber = QtWidgets.QLCDNumber(self.centralwidget)
self.lcdNumber.setGeometry(QtCore.QRect(550, 190, 141, 41)) self.lcdNumber.setGeometry(QtCore.QRect(550, 190, 141, 41))
self.lcdNumber.setFrameShape(QtWidgets.QFrame.Box) self.lcdNumber.setFrameShape(QtWidgets.QFrame.Box)
self.lcdNumber.setProperty("value", 5.0) self.lcdNumber.setProperty("value", 5.0)
self.lcdNumber.setObjectName("lcdNumber") self.lcdNumber.setObjectName("lcdNumber")
self.label_temp = QtWidgets.QLabel(self.centralwidget) self.label_6 = QtWidgets.QLabel(self.centralwidget)
self.label_temp.setGeometry(QtCore.QRect(310, 190, 211, 41)) self.label_6.setGeometry(QtCore.QRect(310, 190, 211, 41))
font = QtGui.QFont() font = QtGui.QFont()
font.setPointSize(14) font.setPointSize(14)
font.setBold(True) font.setBold(True)
font.setWeight(75) font.setWeight(75)
self.label_temp.setFont(font) self.label_6.setFont(font)
self.label_temp.setTextFormat(QtCore.Qt.AutoText) self.label_6.setTextFormat(QtCore.Qt.AutoText)
self.label_temp.setScaledContents(False) self.label_6.setScaledContents(False)
self.label_temp.setObjectName("label_temp") self.label_6.setObjectName("label_6")
self.lcdNumber_2 = QtWidgets.QLCDNumber(self.centralwidget) self.lcdNumber_2 = QtWidgets.QLCDNumber(self.centralwidget)
self.lcdNumber_2.setGeometry(QtCore.QRect(540, 470, 81, 20)) self.lcdNumber_2.setGeometry(QtCore.QRect(540, 470, 81, 20))
font = QtGui.QFont() font = QtGui.QFont()
@ -68,15 +68,15 @@ class Ui_MainWindow(object):
self.lcdNumber_4.setSmallDecimalPoint(False) self.lcdNumber_4.setSmallDecimalPoint(False)
self.lcdNumber_4.setSegmentStyle(QtWidgets.QLCDNumber.Flat) self.lcdNumber_4.setSegmentStyle(QtWidgets.QLCDNumber.Flat)
self.lcdNumber_4.setObjectName("lcdNumber_4") self.lcdNumber_4.setObjectName("lcdNumber_4")
self.label_r = QtWidgets.QLabel(self.centralwidget) self.label_7 = QtWidgets.QLabel(self.centralwidget)
self.label_r.setGeometry(QtCore.QRect(570, 500, 47, 13)) self.label_7.setGeometry(QtCore.QRect(570, 500, 47, 13))
self.label_r.setObjectName("label_r") self.label_7.setObjectName("label_7")
self.label_g = QtWidgets.QLabel(self.centralwidget) self.label_8 = QtWidgets.QLabel(self.centralwidget)
self.label_g.setGeometry(QtCore.QRect(650, 500, 47, 13)) self.label_8.setGeometry(QtCore.QRect(650, 500, 47, 13))
self.label_g.setObjectName("label_g") self.label_8.setObjectName("label_8")
self.label_b = QtWidgets.QLabel(self.centralwidget) self.label_9 = QtWidgets.QLabel(self.centralwidget)
self.label_b.setGeometry(QtCore.QRect(730, 500, 47, 13)) self.label_9.setGeometry(QtCore.QRect(730, 500, 47, 13))
self.label_b.setObjectName("label_b") self.label_9.setObjectName("label_9")
self.off_1 = QtWidgets.QLabel(self.centralwidget) self.off_1 = QtWidgets.QLabel(self.centralwidget)
self.off_1.setGeometry(QtCore.QRect(804, 100, 61, 51)) self.off_1.setGeometry(QtCore.QRect(804, 100, 61, 51))
self.off_1.setText("") self.off_1.setText("")
@ -89,52 +89,52 @@ class Ui_MainWindow(object):
self.on_1.setPixmap(QtGui.QPixmap(":/img/ON.svg")) self.on_1.setPixmap(QtGui.QPixmap(":/img/ON.svg"))
self.on_1.setScaledContents(True) self.on_1.setScaledContents(True)
self.on_1.setObjectName("on_1") self.on_1.setObjectName("on_1")
self.label_led_on1 = QtWidgets.QLabel(self.centralwidget) self.label_20 = QtWidgets.QLabel(self.centralwidget)
self.label_led_on1.setGeometry(QtCore.QRect(390, 70, 61, 61)) self.label_20.setGeometry(QtCore.QRect(390, 70, 61, 61))
self.label_led_on1.setText("") self.label_20.setText("")
self.label_led_on1.setPixmap(QtGui.QPixmap(":/img/led_on.svg")) self.label_20.setPixmap(QtGui.QPixmap(":/img/led_on.svg"))
self.label_led_on1.setScaledContents(True) self.label_20.setScaledContents(True)
self.label_led_on1.setObjectName("label_led_on1") self.label_20.setObjectName("label_20")
self.label_sensor_print1 = QtWidgets.QLabel(self.centralwidget) self.label_24 = QtWidgets.QLabel(self.centralwidget)
self.label_sensor_print1.setEnabled(True) self.label_24.setEnabled(True)
self.label_sensor_print1.setGeometry(QtCore.QRect(390, 70, 61, 61)) self.label_24.setGeometry(QtCore.QRect(390, 70, 61, 61))
self.label_sensor_print1.setText("") self.label_24.setText("")
self.label_sensor_print1.setPixmap(QtGui.QPixmap(":/img/led_off.svg")) self.label_24.setPixmap(QtGui.QPixmap(":/img/led_off.svg"))
self.label_sensor_print1.setScaledContents(True) self.label_24.setScaledContents(True)
self.label_sensor_print1.setObjectName("label_sensor_print1") self.label_24.setObjectName("label_24")
self.pushButton_sensor1 = QtWidgets.QPushButton(self.centralwidget) self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_sensor1.setGeometry(QtCore.QRect(390, 140, 71, 21)) self.pushButton_2.setGeometry(QtCore.QRect(390, 140, 71, 21))
self.pushButton_sensor1.setObjectName("pushButton_sensor1") self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_sensor2 = QtWidgets.QPushButton(self.centralwidget) self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_sensor2.setGeometry(QtCore.QRect(480, 140, 71, 21)) self.pushButton_3.setGeometry(QtCore.QRect(480, 140, 71, 21))
self.pushButton_sensor2.setObjectName("pushButton_sensor2") self.pushButton_3.setObjectName("pushButton_3")
self.label_led_on2 = QtWidgets.QLabel(self.centralwidget) self.label_26 = QtWidgets.QLabel(self.centralwidget)
self.label_led_on2.setGeometry(QtCore.QRect(480, 70, 61, 61)) self.label_26.setGeometry(QtCore.QRect(480, 70, 61, 61))
self.label_led_on2.setText("") self.label_26.setText("")
self.label_led_on2.setPixmap(QtGui.QPixmap(":/img/led_on.svg")) self.label_26.setPixmap(QtGui.QPixmap(":/img/led_on.svg"))
self.label_led_on2.setScaledContents(True) self.label_26.setScaledContents(True)
self.label_led_on2.setObjectName("label_led_on2") self.label_26.setObjectName("label_26")
self.label_sensor_print2 = QtWidgets.QLabel(self.centralwidget) self.label_27 = QtWidgets.QLabel(self.centralwidget)
self.label_sensor_print2.setGeometry(QtCore.QRect(480, 70, 61, 61)) self.label_27.setGeometry(QtCore.QRect(480, 70, 61, 61))
self.label_sensor_print2.setText("") self.label_27.setText("")
self.label_sensor_print2.setPixmap(QtGui.QPixmap(":/img/led_off.svg")) self.label_27.setPixmap(QtGui.QPixmap(":/img/led_off.svg"))
self.label_sensor_print2.setScaledContents(True) self.label_27.setScaledContents(True)
self.label_sensor_print2.setObjectName("label_sensor_print2") self.label_27.setObjectName("label_27")
self.pushButton_sensor3 = QtWidgets.QPushButton(self.centralwidget) self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_sensor3.setGeometry(QtCore.QRect(570, 140, 71, 21)) self.pushButton_4.setGeometry(QtCore.QRect(570, 140, 71, 21))
self.pushButton_sensor3.setObjectName("pushButton_sensor3") self.pushButton_4.setObjectName("pushButton_4")
self.label_led_on3 = QtWidgets.QLabel(self.centralwidget) self.label_29 = QtWidgets.QLabel(self.centralwidget)
self.label_led_on3.setGeometry(QtCore.QRect(570, 70, 61, 61)) self.label_29.setGeometry(QtCore.QRect(570, 70, 61, 61))
self.label_led_on3.setText("") self.label_29.setText("")
self.label_led_on3.setPixmap(QtGui.QPixmap(":/img/led_on.svg")) self.label_29.setPixmap(QtGui.QPixmap(":/img/led_on.svg"))
self.label_led_on3.setScaledContents(True) self.label_29.setScaledContents(True)
self.label_led_on3.setObjectName("label_led_on3") self.label_29.setObjectName("label_29")
self.label_sensor_print3 = QtWidgets.QLabel(self.centralwidget) self.label_31 = QtWidgets.QLabel(self.centralwidget)
self.label_sensor_print3.setGeometry(QtCore.QRect(570, 70, 61, 61)) self.label_31.setGeometry(QtCore.QRect(570, 70, 61, 61))
self.label_sensor_print3.setText("") self.label_31.setText("")
self.label_sensor_print3.setPixmap(QtGui.QPixmap(":/img/led_off.svg")) self.label_31.setPixmap(QtGui.QPixmap(":/img/led_off.svg"))
self.label_sensor_print3.setScaledContents(True) self.label_31.setScaledContents(True)
self.label_sensor_print3.setObjectName("label_sensor_print3") self.label_31.setObjectName("label_31")
self.off_2 = QtWidgets.QLabel(self.centralwidget) self.off_2 = QtWidgets.QLabel(self.centralwidget)
self.off_2.setGeometry(QtCore.QRect(904, 100, 61, 51)) self.off_2.setGeometry(QtCore.QRect(904, 100, 61, 51))
self.off_2.setText("") self.off_2.setText("")
@ -159,14 +159,14 @@ class Ui_MainWindow(object):
self.on_3.setPixmap(QtGui.QPixmap(":/img/ON.svg")) self.on_3.setPixmap(QtGui.QPixmap(":/img/ON.svg"))
self.on_3.setScaledContents(True) self.on_3.setScaledContents(True)
self.on_3.setObjectName("on_3") self.on_3.setObjectName("on_3")
self.label_pressure = QtWidgets.QLabel(self.centralwidget) self.label_13 = QtWidgets.QLabel(self.centralwidget)
self.label_pressure.setGeometry(QtCore.QRect(310, 260, 211, 41)) self.label_13.setGeometry(QtCore.QRect(310, 260, 211, 41))
font = QtGui.QFont() font = QtGui.QFont()
font.setPointSize(14) font.setPointSize(14)
font.setBold(True) font.setBold(True)
font.setWeight(75) font.setWeight(75)
self.label_pressure.setFont(font) self.label_13.setFont(font)
self.label_pressure.setObjectName("label_pressure") self.label_13.setObjectName("label_13")
self.lcd_pressure = QtWidgets.QLCDNumber(self.centralwidget) self.lcd_pressure = QtWidgets.QLCDNumber(self.centralwidget)
self.lcd_pressure.setGeometry(QtCore.QRect(550, 260, 141, 41)) self.lcd_pressure.setGeometry(QtCore.QRect(550, 260, 141, 41))
self.lcd_pressure.setFrameShape(QtWidgets.QFrame.Box) self.lcd_pressure.setFrameShape(QtWidgets.QFrame.Box)
@ -177,35 +177,35 @@ class Ui_MainWindow(object):
self.lcdNumber_7.setFrameShape(QtWidgets.QFrame.Box) self.lcdNumber_7.setFrameShape(QtWidgets.QFrame.Box)
self.lcdNumber_7.setProperty("value", 5.0) self.lcdNumber_7.setProperty("value", 5.0)
self.lcdNumber_7.setObjectName("lcdNumber_7") self.lcdNumber_7.setObjectName("lcdNumber_7")
self.label_illumination = QtWidgets.QLabel(self.centralwidget) self.label_14 = QtWidgets.QLabel(self.centralwidget)
self.label_illumination.setGeometry(QtCore.QRect(310, 330, 211, 41)) self.label_14.setGeometry(QtCore.QRect(310, 330, 211, 41))
font = QtGui.QFont() font = QtGui.QFont()
font.setPointSize(14) font.setPointSize(14)
font.setBold(True) font.setBold(True)
font.setWeight(75) font.setWeight(75)
self.label_illumination.setFont(font) self.label_14.setFont(font)
self.label_illumination.setObjectName("label_illumination") self.label_14.setObjectName("label_14")
self.lcdNumber_8 = QtWidgets.QLCDNumber(self.centralwidget) self.lcdNumber_8 = QtWidgets.QLCDNumber(self.centralwidget)
self.lcdNumber_8.setGeometry(QtCore.QRect(550, 400, 141, 41)) self.lcdNumber_8.setGeometry(QtCore.QRect(550, 400, 141, 41))
self.lcdNumber_8.setFrameShape(QtWidgets.QFrame.Box) self.lcdNumber_8.setFrameShape(QtWidgets.QFrame.Box)
self.lcdNumber_8.setProperty("value", 5.0) self.lcdNumber_8.setProperty("value", 5.0)
self.lcdNumber_8.setObjectName("lcdNumber_8") self.lcdNumber_8.setObjectName("lcdNumber_8")
self.label_illumination2 = QtWidgets.QLabel(self.centralwidget) self.label_15 = QtWidgets.QLabel(self.centralwidget)
self.label_illumination2.setGeometry(QtCore.QRect(310, 400, 211, 41)) self.label_15.setGeometry(QtCore.QRect(310, 400, 211, 41))
font = QtGui.QFont() font = QtGui.QFont()
font.setPointSize(14) font.setPointSize(14)
font.setBold(True) font.setBold(True)
font.setWeight(75) font.setWeight(75)
self.label_illumination2.setFont(font) self.label_15.setFont(font)
self.label_illumination2.setObjectName("label_illumination2") self.label_15.setObjectName("label_15")
self.label_accelorometer = QtWidgets.QLabel(self.centralwidget) self.label_34 = QtWidgets.QLabel(self.centralwidget)
self.label_accelorometer.setGeometry(QtCore.QRect(310, 520, 211, 41)) self.label_34.setGeometry(QtCore.QRect(310, 520, 211, 41))
font = QtGui.QFont() font = QtGui.QFont()
font.setPointSize(14) font.setPointSize(14)
font.setBold(True) font.setBold(True)
font.setWeight(75) font.setWeight(75)
self.label_accelorometer.setFont(font) self.label_34.setFont(font)
self.label_accelorometer.setObjectName("label_accelorometer") self.label_34.setObjectName("label_34")
self.vkl_b = QtWidgets.QPushButton(self.centralwidget) self.vkl_b = QtWidgets.QPushButton(self.centralwidget)
self.vkl_b.setGeometry(QtCore.QRect(1099, 482, 75, 23)) self.vkl_b.setGeometry(QtCore.QRect(1099, 482, 75, 23))
self.vkl_b.setObjectName("vkl_b") self.vkl_b.setObjectName("vkl_b")
@ -293,44 +293,44 @@ class Ui_MainWindow(object):
self.lcdNumber_9.setStyleSheet("color: rgb(0, 0, 0);") self.lcdNumber_9.setStyleSheet("color: rgb(0, 0, 0);")
self.lcdNumber_9.setSegmentStyle(QtWidgets.QLCDNumber.Flat) self.lcdNumber_9.setSegmentStyle(QtWidgets.QLCDNumber.Flat)
self.lcdNumber_9.setObjectName("lcdNumber_9") self.lcdNumber_9.setObjectName("lcdNumber_9")
self.label_rgb_illumination = QtWidgets.QLabel(self.centralwidget) self.label_16 = QtWidgets.QLabel(self.centralwidget)
self.label_rgb_illumination.setGeometry(QtCore.QRect(310, 460, 211, 41)) self.label_16.setGeometry(QtCore.QRect(310, 460, 211, 41))
font = QtGui.QFont() font = QtGui.QFont()
font.setPointSize(14) font.setPointSize(14)
font.setBold(True) font.setBold(True)
font.setWeight(75) font.setWeight(75)
self.label_rgb_illumination.setFont(font) self.label_16.setFont(font)
self.label_rgb_illumination.setObjectName("label_rgb_illumination") self.label_16.setObjectName("label_16")
self.label_x = QtWidgets.QLabel(self.centralwidget) self.label_10 = QtWidgets.QLabel(self.centralwidget)
self.label_x.setGeometry(QtCore.QRect(570, 560, 47, 13)) self.label_10.setGeometry(QtCore.QRect(570, 560, 47, 13))
self.label_x.setObjectName("label_x") self.label_10.setObjectName("label_10")
self.label_y = QtWidgets.QLabel(self.centralwidget) self.label_11 = QtWidgets.QLabel(self.centralwidget)
self.label_y.setGeometry(QtCore.QRect(650, 560, 47, 13)) self.label_11.setGeometry(QtCore.QRect(650, 560, 47, 13))
self.label_y.setObjectName("label_y") self.label_11.setObjectName("label_11")
self.label_z = QtWidgets.QLabel(self.centralwidget) self.label_12 = QtWidgets.QLabel(self.centralwidget)
self.label_z.setGeometry(QtCore.QRect(730, 560, 47, 13)) self.label_12.setGeometry(QtCore.QRect(730, 560, 47, 13))
self.label_z.setObjectName("label_z") self.label_12.setObjectName("label_12")
self.lubel_tumblers = QtWidgets.QLabel(self.centralwidget) self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.lubel_tumblers.setGeometry(QtCore.QRect(900, 70, 81, 20)) self.label_4.setGeometry(QtCore.QRect(900, 60, 81, 20))
font = QtGui.QFont() font = QtGui.QFont()
font.setFamily("Times New Roman") font.setFamily("Times New Roman")
font.setPointSize(12) font.setPointSize(12)
font.setBold(True) font.setBold(True)
font.setWeight(75) font.setWeight(75)
self.lubel_tumblers.setFont(font) self.label_4.setFont(font)
self.lubel_tumblers.setObjectName("lubel_tumblers") self.label_4.setObjectName("label_4")
self.textEdit = QtWidgets.QTextEdit(self.centralwidget) self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit.setGeometry(QtCore.QRect(10, 60, 291, 531)) self.textEdit.setGeometry(QtCore.QRect(10, 60, 291, 531))
self.textEdit.setObjectName("textEdit") self.textEdit.setObjectName("textEdit")
self.pushButton_send_get = QtWidgets.QPushButton(self.centralwidget) self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_send_get.setGeometry(QtCore.QRect(1050, 50, 101, 21)) self.pushButton_5.setGeometry(QtCore.QRect(1050, 50, 101, 21))
self.pushButton_send_get.setObjectName("pushButton_send_get") self.pushButton_5.setObjectName("pushButton_5")
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(690, 50, 341, 21)) self.lineEdit_2.setGeometry(QtCore.QRect(790, 40, 241, 21))
self.lineEdit_2.setObjectName("lineEdit_2") self.lineEdit_2.setObjectName("lineEdit_2")
MainWindow.setCentralWidget(self.centralwidget) MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1185, 22)) self.menubar.setGeometry(QtCore.QRect(0, 0, 1185, 21))
self.menubar.setObjectName("menubar") self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar) MainWindow.setMenuBar(self.menubar)
@ -340,29 +340,39 @@ class Ui_MainWindow(object):
def retranslateUi(self, MainWindow): def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate _translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "IoT pgrm v0_1_13")) MainWindow.setWindowTitle(_translate("MainWindow", "IoT pgrm v0_1_13"))
self.pushButton_send_post.setText(_translate("MainWindow", "SEND Post")) self.pushButton.setText(_translate("MainWindow", "SEND Post"))
self.label_url.setText(_translate("MainWindow", "URL")) self.label.setText(_translate("MainWindow", "URL"))
self.label_message.setText(_translate("MainWindow", "Body message")) self.label_2.setText(_translate("MainWindow", "Body message"))
self.label_temp.setText(_translate("MainWindow", "Температура")) self.label_6.setText(_translate("MainWindow", "Температура"))
self.lcdNumber_2.setToolTip(_translate("MainWindow", "<html><head/><body><p><br/></p></body></html>")) self.lcdNumber_2.setToolTip(_translate("MainWindow", "<html><head/><body><p><br/></p></body></html>"))
self.label_r.setText(_translate("MainWindow", "R")) self.label_7.setText(_translate("MainWindow", "R"))
self.label_g.setText(_translate("MainWindow", "G")) self.label_8.setText(_translate("MainWindow", "G"))
self.label_b.setText(_translate("MainWindow", "B")) self.label_9.setText(_translate("MainWindow", "B"))
self.pushButton_sensor1.setText(_translate("MainWindow", "Вкл")) self.pushButton_2.setText(_translate("MainWindow", "Вкл"))
self.pushButton_sensor2.setText(_translate("MainWindow", "Вкл")) self.pushButton_3.setText(_translate("MainWindow", "Вкл"))
self.pushButton_sensor3.setText(_translate("MainWindow", "Вкл")) self.pushButton_4.setText(_translate("MainWindow", "Вкл"))
self.label_pressure.setText(_translate("MainWindow", "Давление")) self.label_13.setText(_translate("MainWindow", "Давление"))
self.label_illumination.setText(_translate("MainWindow", "Освещенность")) self.label_14.setText(_translate("MainWindow", "Освещенность"))
self.label_illumination2.setText(_translate("MainWindow", "Освещенность")) self.label_15.setText(_translate("MainWindow", "Освещенность"))
self.label_accelorometer.setText(_translate("MainWindow", "Акселлерометр")) self.label_34.setText(_translate("MainWindow", "Акселлерометр"))
self.vkl_b.setText(_translate("MainWindow", "Вкл")) self.vkl_b.setText(_translate("MainWindow", "Вкл"))
self.vikl_b.setText(_translate("MainWindow", "Выкл")) self.vikl_b.setText(_translate("MainWindow", "Выкл"))
self.color_b.setText(_translate("MainWindow", "Цвет")) self.color_b.setText(_translate("MainWindow", "Цвет"))
self.lcdNumber_5.setToolTip(_translate("MainWindow", "<html><head/><body><p><br/></p></body></html>")) self.lcdNumber_5.setToolTip(_translate("MainWindow", "<html><head/><body><p><br/></p></body></html>"))
self.label_rgb_illumination.setText(_translate("MainWindow", "Освещенность")) self.label_16.setText(_translate("MainWindow", "Освещенность"))
self.label_x.setText(_translate("MainWindow", "Х")) self.label_10.setText(_translate("MainWindow", "Х"))
self.label_y.setText(_translate("MainWindow", "Y")) self.label_11.setText(_translate("MainWindow", "Y"))
self.label_z.setText(_translate("MainWindow", "Z")) self.label_12.setText(_translate("MainWindow", "Z"))
self.lubel_tumblers.setText(_translate("MainWindow", "Тумблеры")) self.label_4.setText(_translate("MainWindow", "Тумблеры"))
self.pushButton_send_get.setText(_translate("MainWindow", "SEND Get request")) self.pushButton_5.setText(_translate("MainWindow", "SEND Get request"))
import Res_rc import Res_rc
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())

View File

@ -22,7 +22,7 @@ label_26 = label_sensor_megalka2
label_29 = label_sensor_megalka3 label_29 = label_sensor_megalka3
pushButton = pushButton_send_post pushButton = pushButton_send_post
pushButton_5 = pushButton_send_get pushButton_5 = pushButton_send_get_request
pushButton_2 = pushButton_sensor1 pushButton_2 = pushButton_sensor1
pushButton_3 = pushButton_sensor2 pushButton_3 = pushButton_sensor2
pushButton_4 = pushButton_sensor3 pushButton_4 = pushButton_sensor3