Compare commits
6 Commits
9335be69c9
...
525c9b8165
Author | SHA1 | Date | |
---|---|---|---|
525c9b8165 | |||
8b622046a2 | |||
be0f819b7e | |||
2a11d17d80 | |||
91d0191e3f | |||
fcf23ab208 |
300
Main.py
300
Main.py
@ -1,300 +0,0 @@
|
||||
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()
|
||||
|
@ -397,7 +397,7 @@
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_sensor_print3 ">
|
||||
<widget class="QLabel" name="label_sensor_print3">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>570</x>
|
||||
@ -986,7 +986,7 @@
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="pushButton_send_get_request">
|
||||
<widget class="QPushButton" name="pushButton_send_get">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1050</x>
|
||||
|
Binary file not shown.
41
README.md
41
README.md
@ -6,13 +6,42 @@
|
||||
|
||||
```
|
||||
.
|
||||
|- requirements.txt
|
||||
|- config.json
|
||||
|- main.py
|
||||
|- display_updater.py # update_led, update_pressure, update_button, update_plot
|
||||
|- network_manager.py # get_value_from_macket, send_colors
|
||||
|- plot.py
|
||||
|- PyQt_app.ui
|
||||
|- requirements.txt
|
||||
|- Res_rc.py
|
||||
```
|
||||
|
||||
Инструкции для запуска проекта
|
||||
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
|
||||
python main.py
|
||||
```
|
||||
def update_led - led1, led2, led3
|
||||
def send_colors - sendMessage
|
||||
```
|
||||
|
||||
Тестовый сервер можно запустить через [Mockoon](https://mockoon.com/)
|
||||
|
||||
В нём нужно открыть файл `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 - поможет с пониманием, зачем нужны многие вещи.
|
||||
|
16
config.json
16
config.json
@ -1,7 +1,7 @@
|
||||
{
|
||||
"uiFileName": "PyQt_app.ui",
|
||||
"uiPath": "ui/",
|
||||
"defaultMDNSname": "esp8266",
|
||||
"uiPath": "./",
|
||||
"defaultMDNSname": "localhost:3001",
|
||||
"defaultPostRoute": "/postvalue",
|
||||
"defaultGetRoute": "/sensval",
|
||||
"pressure": "355",
|
||||
@ -16,5 +16,15 @@
|
||||
"lightness": "0",
|
||||
"acceleration_x": "12",
|
||||
"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}
|
||||
}
|
||||
}
|
505
main.py
505
main.py
@ -1,299 +1,282 @@
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
import typing
|
||||
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.QtCore import QTimer, QJsonDocument, QUrl
|
||||
from PyQt5.QtWidgets import *
|
||||
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest
|
||||
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply
|
||||
|
||||
import requests
|
||||
import time
|
||||
import json
|
||||
import sys
|
||||
import os
|
||||
|
||||
from plot import Plot
|
||||
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): #отвечает за включение первого светодиода
|
||||
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 read_conf() -> dict:
|
||||
|
||||
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")
|
||||
"""
|
||||
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]
|
||||
|
||||
def updateLCD(): #обновление дисплея
|
||||
global temp #переменная для работы с дисплеем
|
||||
form.lcdNumber.display(temp)
|
||||
# TODO: переписать названия пушей и лейблов
|
||||
if checked:
|
||||
getattr(self.ui, 'pushButton_' + n).setText("Выкл")
|
||||
getattr(self.ui, 'label_' + n + '4').hide()
|
||||
getattr(self.ui, 'label_' + n + '0').show()
|
||||
|
||||
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},
|
||||
}
|
||||
print("I'm worked too much") # TODO: нужно что-то более осмысленное
|
||||
else:
|
||||
getattr(self.ui, 'label_' + n + '0').hide()
|
||||
getattr(self.ui, 'label_' + n + '4').show()
|
||||
getattr(self.ui, 'pushButton_' + n).setText("Вкл")
|
||||
|
||||
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()
|
||||
|
||||
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('Ошибка при получении данных')
|
||||
print ("I'm worked too") # TODO: нужно что-то более осмысленное
|
||||
|
||||
|
||||
def collect_lamps_state(self) -> dict:
|
||||
lamps_state = {}
|
||||
|
||||
def getValueFromMacket():
|
||||
url = form.lineEdit_2.text()
|
||||
response = requests.get(url) #отправка POST запроса
|
||||
for i in range(1,4):
|
||||
lamps_state[f"LED{i}"] = getattr(self.ui, f"label_sensor_megalka{i}").isVisible()
|
||||
|
||||
# обрабатываем ответ и выводим его в поле вывода
|
||||
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"]))
|
||||
return lamps_state
|
||||
|
||||
|
||||
def compose_post_json_data(self) -> dict:
|
||||
json_data = {}
|
||||
|
||||
json_data.update(self.rgb_leds_state)
|
||||
json_data.update(self.collect_lamps_state())
|
||||
|
||||
# TODO: добавить отправку остальных данных (см. grdive и поля, которые парсит приложение из stand_code/mDNS_ESP8266.ino)
|
||||
|
||||
bs = list()
|
||||
return json_data
|
||||
|
||||
|
||||
def log_post_request(self, url, json_data):
|
||||
json_str = json.dumps(json_data, separators=(',', ':'))
|
||||
|
||||
data_str = 'Я отправляю текст на: ' + url + '\n'+ json_str
|
||||
|
||||
self.ui.textEdit.setPlainText(data_str)
|
||||
|
||||
|
||||
def send_message(self):
|
||||
|
||||
"""
|
||||
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:
|
||||
status_code = reply.attribute(QNetworkRequest.Attribute.HttpStatusCodeAttribute)
|
||||
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())
|
||||
|
||||
|
||||
@with_err_handling('get_reply')
|
||||
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["button2State"])
|
||||
bs.append(data["button3State"])
|
||||
update_button(bs)
|
||||
"""
|
||||
self.update_buttons(buttons_status)
|
||||
|
||||
update_pressure(data["pressure"])
|
||||
self.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'])
|
||||
color_l=("ambient_light", "red_light", "green_light", "blue_light", "lightness","acceleration_x", "acceleration_y", "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('Ошибка при получении данных')
|
||||
# TODO: переименовать lcdNumber_N в lcdNumber_....._light
|
||||
for s in color_l:
|
||||
getattr(self.ui, "lcdNumber_" + s).display(data[s])
|
||||
"""
|
||||
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):
|
||||
self.handle_toggle_lamp[f"LED{i}", data[f"LED{i}"]]
|
||||
|
||||
self.plot.update(data["temperature"])
|
||||
|
||||
|
||||
#json.load(file) @ACHT! Method to convert Str to JSON
|
||||
def update_buttons(self, bs):
|
||||
for i in range(1, 4):
|
||||
button_state = bs[i-1]
|
||||
if button_state == 'True':
|
||||
getattr(self.ui, f'on_{i}').show()
|
||||
getattr(self.ui, f'off_{i}').hide()
|
||||
else:
|
||||
getattr(self.ui, f'on_{i}').hide()
|
||||
getattr(self.ui, f'off_{i}').show()
|
||||
|
||||
|
||||
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 update_pressure(self, p):
|
||||
self.ui.lcd_pressure.display(p)
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Opening JSON file
|
||||
f = open('config.json') #открывает файл 'config.json', загружает его содержимое в переменную 'conf' в формате словаря (dictionary) при помощи функции 'json.load()', а затем выводит все ключи словаря 'conf' при помощи цикла 'for'.
|
||||
conf = json.load(open('config.json'))
|
||||
f.close()
|
||||
app = QApplication(sys.argv)
|
||||
|
||||
print("Find an arguments:")
|
||||
for i in conf:
|
||||
print(i)
|
||||
|
||||
import sys
|
||||
|
||||
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 запрос
|
||||
conf = read_conf()
|
||||
|
||||
win = AppWindow(conf)
|
||||
win.show()
|
||||
|
||||
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_()) # Запуск цикла событий
|
||||
sys.exit(app.exec())
|
||||
|
27
main2
27
main2
@ -16,10 +16,10 @@ import pyqtgraph as pg
|
||||
#import sys
|
||||
|
||||
colors = {} #переменная для работы с цветом, позже нам понадобится
|
||||
last_clicked_label = None #Флаг
|
||||
last_clicked_label = None
|
||||
plotLen = 20
|
||||
valArr = [20] * plotLen# список из 20 двадцаток
|
||||
plot = None #Флаг
|
||||
plot = None
|
||||
|
||||
"""
|
||||
след функция принимает значение True/False, после осуществляет ветвление,
|
||||
@ -36,10 +36,10 @@ plot = None #Флаг
|
||||
#объявить словарь для label_№? чтобы в дальнейшем к нему обращаться
|
||||
def led1 (checked): #отвечает за включение первого светодиода
|
||||
if checked: #класс form это класс нашей формы, то есть окна приложения
|
||||
form.pushButton_2.setText("Выкл") #pushButton - это экземпляры класса formдля работы кнопок
|
||||
form.pushButton_2.setText("Выкл") #pushButton - для работы кнопок
|
||||
print("I'm worked too much")
|
||||
form.label_24.hide() #label это текст на окне приложения и его прячем
|
||||
form.label_20.show() # к экземпляру класса form применяется метод show(), для отображения виджета на экране
|
||||
form.label_20.show() # метод show(), для отображения виджета на экране
|
||||
else:
|
||||
form.label_20.hide()
|
||||
form.label_24.show()
|
||||
@ -75,7 +75,7 @@ def led3 (checked): #отвечает за включение третьего
|
||||
|
||||
def updateLCD(): #функция,обновление дисплея, не принимает никаких значений
|
||||
global temp #глобальная переменная для работы с дисплеем
|
||||
form.lcdNumber.display(temp) # к экземпляру класса form применяется метод display(temp),
|
||||
form.lcdNumber.display(temp) # применяется метод display(temp),
|
||||
#откуда берется значение переменной temp неизвестно
|
||||
|
||||
def sed (): #проверка работы элемента
|
||||
@ -113,8 +113,8 @@ def vikl():# функция аналогична vkl, только тут зна
|
||||
led_data[led.objectName()]["blue"] = 0
|
||||
|
||||
def color(): #функция работы с отображением цвета в программе
|
||||
color = QColorDialog.getColor() #получение цвета, color примает значение атрибута класса
|
||||
if color.isValid(): #проверка наличия цвета и применение его над изображением программы
|
||||
color = QColorDialog.getColor() #получение цвета, color примает
|
||||
if color.isValid(): #проверка цвета и применение его над изображением программы
|
||||
palette = QPalette()#экземпляр класса QPalette
|
||||
palette.setColor(QPalette.Button, color) #применение метода setColor(кнопка, цвет ) к экземпляру
|
||||
form.color_b.setPalette(palette)
|
||||
@ -127,8 +127,8 @@ def color(): #функция работы с отображением цвета
|
||||
def led_clicked(event):
|
||||
colors = led.palette().color(QPalette.Background)
|
||||
sender= QApplication.widgetAt(event.globalPos()) #QApplication.widgetAt() для получения текущего виджета, на котором было совершено действие
|
||||
color = QColorDialog.getColor() #получение цвета, color примает значение атрибута класса
|
||||
if color.isValid(): # применение метода к color для его проверки на соответствие
|
||||
color = QColorDialog.getColor() #получение цвета, color примает значение
|
||||
if color.isValid(): # применение метода к color для его проверки на
|
||||
#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()
|
||||
@ -137,9 +137,9 @@ def led_clicked(event):
|
||||
else:
|
||||
form.leds.setStyleSheet(" ")
|
||||
|
||||
def sendMessage():# отправка сообщений на компьютер через url
|
||||
def sendMessage():# отправка сообщений на через url
|
||||
url = form.lineEdit.text()
|
||||
labels_dict = {}# формирование словаря: key-имя светодиода, value- значение экземпляра
|
||||
labels_dict = {}# формирование словаря: key-имя светодиода, value-
|
||||
labels_dict["LED1"] = form.label_20.isVisible()
|
||||
labels_dict["LED2"] = form.label_26.isVisible()
|
||||
labels_dict["LED3"] = form.label_29.isVisible()
|
||||
@ -147,8 +147,7 @@ def sendMessage():# отправка сообщений на компьютер
|
||||
json_data = {}# упаковка данных в json пакет из словарей led_data, labels_dict
|
||||
json_data.update(led_data)
|
||||
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
|
||||
form.textEdit.setPlainText(data_str) #оповещение об отправке текста (ранне сформированной json_str) на url
|
||||
@ -239,7 +238,7 @@ def Plots(form, valArr):
|
||||
bargraph = pg.BarGraphItem(x = x, height = valArr, width = 0.6, brush ='g')
|
||||
plot.addItem(bargraph)
|
||||
|
||||
# Создаём grid layout, который отвечает за определение системы макета визуального представления данных
|
||||
# Создаём grid layout, который отвечает за положение элемента
|
||||
layout = QGridLayout()
|
||||
layout.addWidget(plot, 0,0)
|
||||
form.plotwidget.setLayout(layout)
|
||||
|
257
openapi.json
Normal file
257
openapi.json
Normal file
@ -0,0 +1,257 @@
|
||||
{
|
||||
"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": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
115
openapi_mock.json
Normal file
115
openapi_mock.json
Normal file
@ -0,0 +1,115 @@
|
||||
{
|
||||
"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
Normal file
43
plot.py
Normal file
@ -0,0 +1,43 @@
|
||||
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)
|
16
requirements.txt
Normal file
16
requirements.txt
Normal file
@ -0,0 +1,16 @@
|
||||
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
|
@ -26,7 +26,7 @@
|
||||
<string>IoT pgrm v0_1_13</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<widget class="QPushButton" name="pushButton">
|
||||
<widget class="QPushButton" name="pushButton_send_post">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1050</x>
|
||||
@ -39,7 +39,7 @@
|
||||
<string>SEND Post</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label">
|
||||
<widget class="QLabel" name="label_url">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
@ -62,7 +62,7 @@
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<widget class="QLabel" name="label_message">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
@ -91,7 +91,7 @@
|
||||
<double>5.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_6">
|
||||
<widget class="QLabel" name="label_temp">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>310</x>
|
||||
@ -183,7 +183,7 @@
|
||||
<enum>QLCDNumber::Flat</enum>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_7">
|
||||
<widget class="QLabel" name="label_r">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>570</x>
|
||||
@ -196,7 +196,7 @@
|
||||
<string>R</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_8">
|
||||
<widget class="QLabel" name="label_g">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>650</x>
|
||||
@ -209,7 +209,7 @@
|
||||
<string>G</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_9">
|
||||
<widget class="QLabel" name="label_b">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>730</x>
|
||||
@ -260,7 +260,7 @@
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_20">
|
||||
<widget class="QLabel" name="label_sensor_megalka1">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>390</x>
|
||||
@ -279,7 +279,7 @@
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_24">
|
||||
<widget class="QLabel" name="label_sensor_print1">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
@ -301,7 +301,7 @@
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="pushButton_2">
|
||||
<widget class="QPushButton" name="pushButton_sensor1">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>390</x>
|
||||
@ -314,7 +314,7 @@
|
||||
<string>Вкл</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="pushButton_3">
|
||||
<widget class="QPushButton" name="pushButton_sensor2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>480</x>
|
||||
@ -327,7 +327,7 @@
|
||||
<string>Вкл</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_26">
|
||||
<widget class="QLabel" name="label_sensor_megalka2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>480</x>
|
||||
@ -346,7 +346,7 @@
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_27">
|
||||
<widget class="QLabel" name="label_sensor_print2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>480</x>
|
||||
@ -365,7 +365,7 @@
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="pushButton_4">
|
||||
<widget class="QPushButton" name="pushButton_sensor3">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>570</x>
|
||||
@ -378,7 +378,7 @@
|
||||
<string>Вкл</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_29">
|
||||
<widget class="QLabel" name="label_sensor_megalka3">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>570</x>
|
||||
@ -397,7 +397,7 @@
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_31">
|
||||
<widget class="QLabel" name="label_sensor_print3">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>570</x>
|
||||
@ -492,7 +492,7 @@
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_13">
|
||||
<widget class="QLabel" name="label_pressure">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>310</x>
|
||||
@ -544,7 +544,7 @@
|
||||
<double>5.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_14">
|
||||
<widget class="QLabel" name="label_illumination">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>310</x>
|
||||
@ -580,7 +580,7 @@
|
||||
<double>5.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_15">
|
||||
<widget class="QLabel" name="label_illumination2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>310</x>
|
||||
@ -600,7 +600,7 @@
|
||||
<string>Освещенность</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_34">
|
||||
<widget class="QLabel" name="label_accelorometer">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>310</x>
|
||||
@ -896,7 +896,7 @@
|
||||
<enum>QLCDNumber::Flat</enum>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_16">
|
||||
<widget class="QLabel" name="label_rgb_illumination">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>310</x>
|
||||
@ -916,7 +916,7 @@
|
||||
<string>Освещенность</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_10">
|
||||
<widget class="QLabel" name="label_x">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>570</x>
|
||||
@ -929,7 +929,7 @@
|
||||
<string>Х</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_11">
|
||||
<widget class="QLabel" name="label_y">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>650</x>
|
||||
@ -942,7 +942,7 @@
|
||||
<string>Y</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_12">
|
||||
<widget class="QLabel" name="label_z">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>730</x>
|
||||
@ -955,11 +955,11 @@
|
||||
<string>Z</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<widget class="QLabel" name="lubel_tumblers">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>900</x>
|
||||
<y>60</y>
|
||||
<y>70</y>
|
||||
<width>81</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
@ -986,7 +986,7 @@
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="pushButton_5">
|
||||
<widget class="QPushButton" name="pushButton_send_get">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1050</x>
|
||||
@ -1002,9 +1002,9 @@
|
||||
<widget class="QLineEdit" name="lineEdit_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>790</x>
|
||||
<y>40</y>
|
||||
<width>241</width>
|
||||
<x>690</x>
|
||||
<y>50</y>
|
||||
<width>341</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -1016,7 +1016,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1185</width>
|
||||
<height>21</height>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
|
@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file 'PyQt_app.ui'
|
||||
# Form implementation generated from reading ui file 'ui/PyQt_app.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.15.9
|
||||
#
|
||||
@ -19,33 +19,33 @@ class Ui_MainWindow(object):
|
||||
MainWindow.setMaximumSize(QtCore.QSize(1185, 622))
|
||||
self.centralwidget = QtWidgets.QWidget(MainWindow)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.pushButton.setGeometry(QtCore.QRect(1050, 10, 101, 21))
|
||||
self.pushButton.setObjectName("pushButton")
|
||||
self.label = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label.setGeometry(QtCore.QRect(10, 0, 51, 41))
|
||||
self.label.setObjectName("label")
|
||||
self.pushButton_send_post = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.pushButton_send_post.setGeometry(QtCore.QRect(1050, 10, 101, 21))
|
||||
self.pushButton_send_post.setObjectName("pushButton_send_post")
|
||||
self.label_url = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_url.setGeometry(QtCore.QRect(10, 0, 51, 41))
|
||||
self.label_url.setObjectName("label_url")
|
||||
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
|
||||
self.lineEdit.setGeometry(QtCore.QRect(50, 10, 981, 21))
|
||||
self.lineEdit.setObjectName("lineEdit")
|
||||
self.label_2 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_2.setGeometry(QtCore.QRect(10, 40, 71, 20))
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.label_message = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_message.setGeometry(QtCore.QRect(10, 40, 71, 20))
|
||||
self.label_message.setObjectName("label_message")
|
||||
self.lcdNumber = QtWidgets.QLCDNumber(self.centralwidget)
|
||||
self.lcdNumber.setGeometry(QtCore.QRect(550, 190, 141, 41))
|
||||
self.lcdNumber.setFrameShape(QtWidgets.QFrame.Box)
|
||||
self.lcdNumber.setProperty("value", 5.0)
|
||||
self.lcdNumber.setObjectName("lcdNumber")
|
||||
self.label_6 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_6.setGeometry(QtCore.QRect(310, 190, 211, 41))
|
||||
self.label_temp = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_temp.setGeometry(QtCore.QRect(310, 190, 211, 41))
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(14)
|
||||
font.setBold(True)
|
||||
font.setWeight(75)
|
||||
self.label_6.setFont(font)
|
||||
self.label_6.setTextFormat(QtCore.Qt.AutoText)
|
||||
self.label_6.setScaledContents(False)
|
||||
self.label_6.setObjectName("label_6")
|
||||
self.label_temp.setFont(font)
|
||||
self.label_temp.setTextFormat(QtCore.Qt.AutoText)
|
||||
self.label_temp.setScaledContents(False)
|
||||
self.label_temp.setObjectName("label_temp")
|
||||
self.lcdNumber_2 = QtWidgets.QLCDNumber(self.centralwidget)
|
||||
self.lcdNumber_2.setGeometry(QtCore.QRect(540, 470, 81, 20))
|
||||
font = QtGui.QFont()
|
||||
@ -68,15 +68,15 @@ class Ui_MainWindow(object):
|
||||
self.lcdNumber_4.setSmallDecimalPoint(False)
|
||||
self.lcdNumber_4.setSegmentStyle(QtWidgets.QLCDNumber.Flat)
|
||||
self.lcdNumber_4.setObjectName("lcdNumber_4")
|
||||
self.label_7 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_7.setGeometry(QtCore.QRect(570, 500, 47, 13))
|
||||
self.label_7.setObjectName("label_7")
|
||||
self.label_8 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_8.setGeometry(QtCore.QRect(650, 500, 47, 13))
|
||||
self.label_8.setObjectName("label_8")
|
||||
self.label_9 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_9.setGeometry(QtCore.QRect(730, 500, 47, 13))
|
||||
self.label_9.setObjectName("label_9")
|
||||
self.label_r = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_r.setGeometry(QtCore.QRect(570, 500, 47, 13))
|
||||
self.label_r.setObjectName("label_r")
|
||||
self.label_g = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_g.setGeometry(QtCore.QRect(650, 500, 47, 13))
|
||||
self.label_g.setObjectName("label_g")
|
||||
self.label_b = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_b.setGeometry(QtCore.QRect(730, 500, 47, 13))
|
||||
self.label_b.setObjectName("label_b")
|
||||
self.off_1 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.off_1.setGeometry(QtCore.QRect(804, 100, 61, 51))
|
||||
self.off_1.setText("")
|
||||
@ -89,52 +89,52 @@ class Ui_MainWindow(object):
|
||||
self.on_1.setPixmap(QtGui.QPixmap(":/img/ON.svg"))
|
||||
self.on_1.setScaledContents(True)
|
||||
self.on_1.setObjectName("on_1")
|
||||
self.label_20 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_20.setGeometry(QtCore.QRect(390, 70, 61, 61))
|
||||
self.label_20.setText("")
|
||||
self.label_20.setPixmap(QtGui.QPixmap(":/img/led_on.svg"))
|
||||
self.label_20.setScaledContents(True)
|
||||
self.label_20.setObjectName("label_20")
|
||||
self.label_24 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_24.setEnabled(True)
|
||||
self.label_24.setGeometry(QtCore.QRect(390, 70, 61, 61))
|
||||
self.label_24.setText("")
|
||||
self.label_24.setPixmap(QtGui.QPixmap(":/img/led_off.svg"))
|
||||
self.label_24.setScaledContents(True)
|
||||
self.label_24.setObjectName("label_24")
|
||||
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.pushButton_2.setGeometry(QtCore.QRect(390, 140, 71, 21))
|
||||
self.pushButton_2.setObjectName("pushButton_2")
|
||||
self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.pushButton_3.setGeometry(QtCore.QRect(480, 140, 71, 21))
|
||||
self.pushButton_3.setObjectName("pushButton_3")
|
||||
self.label_26 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_26.setGeometry(QtCore.QRect(480, 70, 61, 61))
|
||||
self.label_26.setText("")
|
||||
self.label_26.setPixmap(QtGui.QPixmap(":/img/led_on.svg"))
|
||||
self.label_26.setScaledContents(True)
|
||||
self.label_26.setObjectName("label_26")
|
||||
self.label_27 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_27.setGeometry(QtCore.QRect(480, 70, 61, 61))
|
||||
self.label_27.setText("")
|
||||
self.label_27.setPixmap(QtGui.QPixmap(":/img/led_off.svg"))
|
||||
self.label_27.setScaledContents(True)
|
||||
self.label_27.setObjectName("label_27")
|
||||
self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.pushButton_4.setGeometry(QtCore.QRect(570, 140, 71, 21))
|
||||
self.pushButton_4.setObjectName("pushButton_4")
|
||||
self.label_29 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_29.setGeometry(QtCore.QRect(570, 70, 61, 61))
|
||||
self.label_29.setText("")
|
||||
self.label_29.setPixmap(QtGui.QPixmap(":/img/led_on.svg"))
|
||||
self.label_29.setScaledContents(True)
|
||||
self.label_29.setObjectName("label_29")
|
||||
self.label_31 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_31.setGeometry(QtCore.QRect(570, 70, 61, 61))
|
||||
self.label_31.setText("")
|
||||
self.label_31.setPixmap(QtGui.QPixmap(":/img/led_off.svg"))
|
||||
self.label_31.setScaledContents(True)
|
||||
self.label_31.setObjectName("label_31")
|
||||
self.label_led_on1 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_led_on1.setGeometry(QtCore.QRect(390, 70, 61, 61))
|
||||
self.label_led_on1.setText("")
|
||||
self.label_led_on1.setPixmap(QtGui.QPixmap(":/img/led_on.svg"))
|
||||
self.label_led_on1.setScaledContents(True)
|
||||
self.label_led_on1.setObjectName("label_led_on1")
|
||||
self.label_sensor_print1 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_sensor_print1.setEnabled(True)
|
||||
self.label_sensor_print1.setGeometry(QtCore.QRect(390, 70, 61, 61))
|
||||
self.label_sensor_print1.setText("")
|
||||
self.label_sensor_print1.setPixmap(QtGui.QPixmap(":/img/led_off.svg"))
|
||||
self.label_sensor_print1.setScaledContents(True)
|
||||
self.label_sensor_print1.setObjectName("label_sensor_print1")
|
||||
self.pushButton_sensor1 = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.pushButton_sensor1.setGeometry(QtCore.QRect(390, 140, 71, 21))
|
||||
self.pushButton_sensor1.setObjectName("pushButton_sensor1")
|
||||
self.pushButton_sensor2 = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.pushButton_sensor2.setGeometry(QtCore.QRect(480, 140, 71, 21))
|
||||
self.pushButton_sensor2.setObjectName("pushButton_sensor2")
|
||||
self.label_led_on2 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_led_on2.setGeometry(QtCore.QRect(480, 70, 61, 61))
|
||||
self.label_led_on2.setText("")
|
||||
self.label_led_on2.setPixmap(QtGui.QPixmap(":/img/led_on.svg"))
|
||||
self.label_led_on2.setScaledContents(True)
|
||||
self.label_led_on2.setObjectName("label_led_on2")
|
||||
self.label_sensor_print2 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_sensor_print2.setGeometry(QtCore.QRect(480, 70, 61, 61))
|
||||
self.label_sensor_print2.setText("")
|
||||
self.label_sensor_print2.setPixmap(QtGui.QPixmap(":/img/led_off.svg"))
|
||||
self.label_sensor_print2.setScaledContents(True)
|
||||
self.label_sensor_print2.setObjectName("label_sensor_print2")
|
||||
self.pushButton_sensor3 = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.pushButton_sensor3.setGeometry(QtCore.QRect(570, 140, 71, 21))
|
||||
self.pushButton_sensor3.setObjectName("pushButton_sensor3")
|
||||
self.label_led_on3 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_led_on3.setGeometry(QtCore.QRect(570, 70, 61, 61))
|
||||
self.label_led_on3.setText("")
|
||||
self.label_led_on3.setPixmap(QtGui.QPixmap(":/img/led_on.svg"))
|
||||
self.label_led_on3.setScaledContents(True)
|
||||
self.label_led_on3.setObjectName("label_led_on3")
|
||||
self.label_sensor_print3 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_sensor_print3.setGeometry(QtCore.QRect(570, 70, 61, 61))
|
||||
self.label_sensor_print3.setText("")
|
||||
self.label_sensor_print3.setPixmap(QtGui.QPixmap(":/img/led_off.svg"))
|
||||
self.label_sensor_print3.setScaledContents(True)
|
||||
self.label_sensor_print3.setObjectName("label_sensor_print3")
|
||||
self.off_2 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.off_2.setGeometry(QtCore.QRect(904, 100, 61, 51))
|
||||
self.off_2.setText("")
|
||||
@ -159,14 +159,14 @@ class Ui_MainWindow(object):
|
||||
self.on_3.setPixmap(QtGui.QPixmap(":/img/ON.svg"))
|
||||
self.on_3.setScaledContents(True)
|
||||
self.on_3.setObjectName("on_3")
|
||||
self.label_13 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_13.setGeometry(QtCore.QRect(310, 260, 211, 41))
|
||||
self.label_pressure = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_pressure.setGeometry(QtCore.QRect(310, 260, 211, 41))
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(14)
|
||||
font.setBold(True)
|
||||
font.setWeight(75)
|
||||
self.label_13.setFont(font)
|
||||
self.label_13.setObjectName("label_13")
|
||||
self.label_pressure.setFont(font)
|
||||
self.label_pressure.setObjectName("label_pressure")
|
||||
self.lcd_pressure = QtWidgets.QLCDNumber(self.centralwidget)
|
||||
self.lcd_pressure.setGeometry(QtCore.QRect(550, 260, 141, 41))
|
||||
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.setProperty("value", 5.0)
|
||||
self.lcdNumber_7.setObjectName("lcdNumber_7")
|
||||
self.label_14 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_14.setGeometry(QtCore.QRect(310, 330, 211, 41))
|
||||
self.label_illumination = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_illumination.setGeometry(QtCore.QRect(310, 330, 211, 41))
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(14)
|
||||
font.setBold(True)
|
||||
font.setWeight(75)
|
||||
self.label_14.setFont(font)
|
||||
self.label_14.setObjectName("label_14")
|
||||
self.label_illumination.setFont(font)
|
||||
self.label_illumination.setObjectName("label_illumination")
|
||||
self.lcdNumber_8 = QtWidgets.QLCDNumber(self.centralwidget)
|
||||
self.lcdNumber_8.setGeometry(QtCore.QRect(550, 400, 141, 41))
|
||||
self.lcdNumber_8.setFrameShape(QtWidgets.QFrame.Box)
|
||||
self.lcdNumber_8.setProperty("value", 5.0)
|
||||
self.lcdNumber_8.setObjectName("lcdNumber_8")
|
||||
self.label_15 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_15.setGeometry(QtCore.QRect(310, 400, 211, 41))
|
||||
self.label_illumination2 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_illumination2.setGeometry(QtCore.QRect(310, 400, 211, 41))
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(14)
|
||||
font.setBold(True)
|
||||
font.setWeight(75)
|
||||
self.label_15.setFont(font)
|
||||
self.label_15.setObjectName("label_15")
|
||||
self.label_34 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_34.setGeometry(QtCore.QRect(310, 520, 211, 41))
|
||||
self.label_illumination2.setFont(font)
|
||||
self.label_illumination2.setObjectName("label_illumination2")
|
||||
self.label_accelorometer = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_accelorometer.setGeometry(QtCore.QRect(310, 520, 211, 41))
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(14)
|
||||
font.setBold(True)
|
||||
font.setWeight(75)
|
||||
self.label_34.setFont(font)
|
||||
self.label_34.setObjectName("label_34")
|
||||
self.label_accelorometer.setFont(font)
|
||||
self.label_accelorometer.setObjectName("label_accelorometer")
|
||||
self.vkl_b = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.vkl_b.setGeometry(QtCore.QRect(1099, 482, 75, 23))
|
||||
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.setSegmentStyle(QtWidgets.QLCDNumber.Flat)
|
||||
self.lcdNumber_9.setObjectName("lcdNumber_9")
|
||||
self.label_16 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_16.setGeometry(QtCore.QRect(310, 460, 211, 41))
|
||||
self.label_rgb_illumination = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_rgb_illumination.setGeometry(QtCore.QRect(310, 460, 211, 41))
|
||||
font = QtGui.QFont()
|
||||
font.setPointSize(14)
|
||||
font.setBold(True)
|
||||
font.setWeight(75)
|
||||
self.label_16.setFont(font)
|
||||
self.label_16.setObjectName("label_16")
|
||||
self.label_10 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_10.setGeometry(QtCore.QRect(570, 560, 47, 13))
|
||||
self.label_10.setObjectName("label_10")
|
||||
self.label_11 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_11.setGeometry(QtCore.QRect(650, 560, 47, 13))
|
||||
self.label_11.setObjectName("label_11")
|
||||
self.label_12 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_12.setGeometry(QtCore.QRect(730, 560, 47, 13))
|
||||
self.label_12.setObjectName("label_12")
|
||||
self.label_4 = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_4.setGeometry(QtCore.QRect(900, 60, 81, 20))
|
||||
self.label_rgb_illumination.setFont(font)
|
||||
self.label_rgb_illumination.setObjectName("label_rgb_illumination")
|
||||
self.label_x = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_x.setGeometry(QtCore.QRect(570, 560, 47, 13))
|
||||
self.label_x.setObjectName("label_x")
|
||||
self.label_y = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_y.setGeometry(QtCore.QRect(650, 560, 47, 13))
|
||||
self.label_y.setObjectName("label_y")
|
||||
self.label_z = QtWidgets.QLabel(self.centralwidget)
|
||||
self.label_z.setGeometry(QtCore.QRect(730, 560, 47, 13))
|
||||
self.label_z.setObjectName("label_z")
|
||||
self.lubel_tumblers = QtWidgets.QLabel(self.centralwidget)
|
||||
self.lubel_tumblers.setGeometry(QtCore.QRect(900, 70, 81, 20))
|
||||
font = QtGui.QFont()
|
||||
font.setFamily("Times New Roman")
|
||||
font.setPointSize(12)
|
||||
font.setBold(True)
|
||||
font.setWeight(75)
|
||||
self.label_4.setFont(font)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.lubel_tumblers.setFont(font)
|
||||
self.lubel_tumblers.setObjectName("lubel_tumblers")
|
||||
self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
|
||||
self.textEdit.setGeometry(QtCore.QRect(10, 60, 291, 531))
|
||||
self.textEdit.setObjectName("textEdit")
|
||||
self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.pushButton_5.setGeometry(QtCore.QRect(1050, 50, 101, 21))
|
||||
self.pushButton_5.setObjectName("pushButton_5")
|
||||
self.pushButton_send_get = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.pushButton_send_get.setGeometry(QtCore.QRect(1050, 50, 101, 21))
|
||||
self.pushButton_send_get.setObjectName("pushButton_send_get")
|
||||
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
|
||||
self.lineEdit_2.setGeometry(QtCore.QRect(790, 40, 241, 21))
|
||||
self.lineEdit_2.setGeometry(QtCore.QRect(690, 50, 341, 21))
|
||||
self.lineEdit_2.setObjectName("lineEdit_2")
|
||||
MainWindow.setCentralWidget(self.centralwidget)
|
||||
self.menubar = QtWidgets.QMenuBar(MainWindow)
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 1185, 21))
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 1185, 22))
|
||||
self.menubar.setObjectName("menubar")
|
||||
MainWindow.setMenuBar(self.menubar)
|
||||
|
||||
@ -340,39 +340,29 @@ class Ui_MainWindow(object):
|
||||
def retranslateUi(self, MainWindow):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
MainWindow.setWindowTitle(_translate("MainWindow", "IoT pgrm v0_1_13"))
|
||||
self.pushButton.setText(_translate("MainWindow", "SEND Post"))
|
||||
self.label.setText(_translate("MainWindow", "URL"))
|
||||
self.label_2.setText(_translate("MainWindow", "Body message"))
|
||||
self.label_6.setText(_translate("MainWindow", "Температура"))
|
||||
self.pushButton_send_post.setText(_translate("MainWindow", "SEND Post"))
|
||||
self.label_url.setText(_translate("MainWindow", "URL"))
|
||||
self.label_message.setText(_translate("MainWindow", "Body message"))
|
||||
self.label_temp.setText(_translate("MainWindow", "Температура"))
|
||||
self.lcdNumber_2.setToolTip(_translate("MainWindow", "<html><head/><body><p><br/></p></body></html>"))
|
||||
self.label_7.setText(_translate("MainWindow", "R"))
|
||||
self.label_8.setText(_translate("MainWindow", "G"))
|
||||
self.label_9.setText(_translate("MainWindow", "B"))
|
||||
self.pushButton_2.setText(_translate("MainWindow", "Вкл"))
|
||||
self.pushButton_3.setText(_translate("MainWindow", "Вкл"))
|
||||
self.pushButton_4.setText(_translate("MainWindow", "Вкл"))
|
||||
self.label_13.setText(_translate("MainWindow", "Давление"))
|
||||
self.label_14.setText(_translate("MainWindow", "Освещенность"))
|
||||
self.label_15.setText(_translate("MainWindow", "Освещенность"))
|
||||
self.label_34.setText(_translate("MainWindow", "Акселлерометр"))
|
||||
self.label_r.setText(_translate("MainWindow", "R"))
|
||||
self.label_g.setText(_translate("MainWindow", "G"))
|
||||
self.label_b.setText(_translate("MainWindow", "B"))
|
||||
self.pushButton_sensor1.setText(_translate("MainWindow", "Вкл"))
|
||||
self.pushButton_sensor2.setText(_translate("MainWindow", "Вкл"))
|
||||
self.pushButton_sensor3.setText(_translate("MainWindow", "Вкл"))
|
||||
self.label_pressure.setText(_translate("MainWindow", "Давление"))
|
||||
self.label_illumination.setText(_translate("MainWindow", "Освещенность"))
|
||||
self.label_illumination2.setText(_translate("MainWindow", "Освещенность"))
|
||||
self.label_accelorometer.setText(_translate("MainWindow", "Акселлерометр"))
|
||||
self.vkl_b.setText(_translate("MainWindow", "Вкл"))
|
||||
self.vikl_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.label_16.setText(_translate("MainWindow", "Освещенность"))
|
||||
self.label_10.setText(_translate("MainWindow", "Х"))
|
||||
self.label_11.setText(_translate("MainWindow", "Y"))
|
||||
self.label_12.setText(_translate("MainWindow", "Z"))
|
||||
self.label_4.setText(_translate("MainWindow", "Тумблеры"))
|
||||
self.pushButton_5.setText(_translate("MainWindow", "SEND Get request"))
|
||||
self.label_rgb_illumination.setText(_translate("MainWindow", "Освещенность"))
|
||||
self.label_x.setText(_translate("MainWindow", "Х"))
|
||||
self.label_y.setText(_translate("MainWindow", "Y"))
|
||||
self.label_z.setText(_translate("MainWindow", "Z"))
|
||||
self.lubel_tumblers.setText(_translate("MainWindow", "Тумблеры"))
|
||||
self.pushButton_send_get.setText(_translate("MainWindow", "SEND Get request"))
|
||||
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_())
|
@ -22,7 +22,7 @@ label_26 = label_sensor_megalka2
|
||||
label_29 = label_sensor_megalka3
|
||||
|
||||
pushButton = pushButton_send_post
|
||||
pushButton_5 = pushButton_send_get_request
|
||||
pushButton_5 = pushButton_send_get
|
||||
pushButton_2 = pushButton_sensor1
|
||||
pushButton_3 = pushButton_sensor2
|
||||
pushButton_4 = pushButton_sensor3
|
||||
|
Loading…
x
Reference in New Issue
Block a user