Compare commits

...

3 Commits
v1.0.0 ... main

Author SHA1 Message Date
sdt.tutorial 05f5df5d9b Commit message 2024-04-24 11:31:38 +09:00
sdt.tutorial 197c019adc Commit message 2024-04-24 11:30:22 +09:00
sdt.tutorial 3d70524150 Commit message 2024-04-24 11:25:13 +09:00
2 changed files with 57 additions and 125 deletions

View File

@ -8,5 +8,5 @@ spec:
runtime: python3.9
package: requirements.txt # 설치할 Python 패키지 정보 파일입니다.(기본 값은 requirement.txt 입니다.)
stackbase:
tagName: v1.0.0 # Stackbase(gitea)에 릴리즈 태그명 입니다.
tagName: v1.0.2 # Stackbase(gitea)에 릴리즈 태그명 입니다.
repoName: dts-py-app # Stackbase(gitea)에 저장될 저장소 이릅니다.

146
main.py
View File

@ -1,124 +1,56 @@
from SDT_Device.DTS import DTS
import sys
from PyQt6 import QtCore
from PyQt6.QtCore import Qt
from PyQt6.QtWidgets import QApplication, QMainWindow
from MainWindow import Ui_MainWindow
from pyqtgraph import PlotWidget, plot
import pyqtgraph as pg
from random import randint
import threading
import time
import struct
import sys
import json
import uuid
import sdtcloudpubsub
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.show()
# with open("./info.json","r") as f:
# info = f.read()
self.pb_Start1.clicked.connect(self.SendStartPacket1)
self.pb_Stop1.clicked.connect(self.SendStopPacket1)
self.pushButton_EnableDelaySet.clicked.connect(self.SetEnableDelay)
self.pushButton_AverageStepSet.clicked.connect(self.SetAverage)
self.pushButton_SampleRangeSet.clicked.connect(self.SetSampleRange)
self.comboboxMinVal = 8
for i in range(self.comboboxMinVal, 12):
self.comboBox_AverageStepVal.addItem(str(2**i))
# ch = info['ch']
# ch = 0
# ip = info['ip']
# port = info['port']
# enableDelayVal = info['enableDelayVal']
# sampleRangeVal = info['sampleRangeVal']
# avgStepVal = info['avgStepVal']
# Default Setup for Test
ch = 0
ip= "192.168.0.20"
port = 5001
self.dts = DTS(ip, port)
self.dtsInit()
enableDelayVal = 10
sampleRangeVal = 100
avgStepVal = 10
self.x1 = []
self.y1 = []
self.data_line1 = self.graphWidget1.plot(self.x1, self.y1)
sdtcloud = sdtcloudpubsub.sdtcloudpubsub()
mqttClient = sdtcloud.setClient(f"device-app-{uuid.uuid1()}") # parameter is client ID(string)
self.timer = QtCore.QTimer()
self.timer.setInterval(250)
self.timer.timeout.connect(self.update_plot_data)
self.timer.start()
# Run Start
dts = DTS(ip,port)
dts.setSystemReset()
dts.setAvgStart(ch, 0)
self.tick = 0
dts.setAvgEnableDelay(ch, 10 + enableDelayVal)
dts.setAvgSampleRange(ch, sampleRangeVal)
dts.setAvgStep(ch, avgStepVal)
self.prevDataCount = 0
# Get Data Start
dts. setAvgStart(ch, 1)
def SetEnableDelay(self):
val = int(self.lineEdit_EnableDelayValue.text())
self.dts.setAvgEnableDelay(0, 10 + val)
self.dts.setAvgStart(0, 0)
self.dts.setAvgStart(0, 1)
def SetAverage(self):
val = self.comboBox_AverageStepVal.currentIndex() + self.comboboxMinVal
self.dts.setAvgStep(0, val)
self.dts.setAvgStart(0, 0)
self.dts.setAvgStart(0, 1)
def SetSampleRange(self):
val = int(self.lineEdit_SampleRangeValue.text())
self.dts.setAvgSampleRange(0, val)
self.dts.setAvgStart(0, 0)
self.dts.setAvgStart(0, 1)
def SendStartPacket1(self):
print("Send Start1")
self.dts.setAvgStart(0, 1)
def SendStopPacket1(self):
print("Send Stop1")
self.dts.setAvgStart(0, 0)
def update_plot_data(self):
self.y1 = self.dts.ReadAdcData(0)
size = len(self.y1)
self.x1 = list(range(size))
self.data_line1.setData(self.x1, self.y1)
print(self.dts.dataCount)
if self.prevDataCount != self.dts.dataCount[0]:
self.prevDataCount = self.dts.dataCount[0]
current_time = time.time()
formatted_time = time.strftime("%H:%M:%S", time.localtime(current_time))
print(f"[{formatted_time}] dataCount={self.dts.dataCount[0]}")
debugData = self.dts.getDebugData()
self.lineEdit_TriggerCount.setText(str(debugData[4]))
def dtsInit(self):
self.dts.setSystemReset()
self.comboBox_AverageStepVal.setCurrentText(f"{self.comboboxMinVal}")
avgStepVal = self.comboBox_AverageStepVal.currentIndex() + self.comboboxMinVal
self.lineEdit_SampleRangeValue.setText("50000")
sampleRangeVal = int(self.lineEdit_SampleRangeValue.text())
self.lineEdit_EnableDelayValue.setText("0")
enableDelayVal = int(self.lineEdit_EnableDelayValue.text())
ch = 0
self.dts.setAvgEnableDelay(ch, 10 + enableDelayVal)
self.dts.setAvgSampleRange(ch, sampleRangeVal)
self.dts.setAvgStep(ch, avgStepVal)
self.dts.setAvgStart(ch, 0)
self.dts.setTimerTick(ch, 100_000_000)
dts.setTimerTick(ch, 100_000_000)
def mainInit():
app = QApplication(sys.argv)
w = MainWindow()
app.exec()
while(1):
print("Run")
y1 = dts.ReadAdcData(0)
if __name__ == "__main__":
mainInit()
# pyuic6 .\MainWindow.ui -o MainWindow.py
print(y1)
msg = {
"sensor_data": y1
}
sdtcloud.pubMessage(mqttClient, msg)
time.sleep(1)