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

150
main.py
View File

@ -1,124 +1,56 @@
from SDT_Device.DTS import DTS 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 time
import struct import sys
import json
import uuid
import sdtcloudpubsub
class MainWindow(QMainWindow, Ui_MainWindow): # with open("./info.json","r") as f:
def __init__(self): # info = f.read()
super().__init__()
self.setupUi(self)
self.show()
self.pb_Start1.clicked.connect(self.SendStartPacket1) # ch = info['ch']
self.pb_Stop1.clicked.connect(self.SendStopPacket1) # ch = 0
# ip = info['ip']
# port = info['port']
# enableDelayVal = info['enableDelayVal']
# sampleRangeVal = info['sampleRangeVal']
# avgStepVal = info['avgStepVal']
self.pushButton_EnableDelaySet.clicked.connect(self.SetEnableDelay) # Default Setup for Test
self.pushButton_AverageStepSet.clicked.connect(self.SetAverage) ch = 0
self.pushButton_SampleRangeSet.clicked.connect(self.SetSampleRange) ip= "192.168.0.20"
port = 5001
enableDelayVal = 10
sampleRangeVal = 100
avgStepVal = 10
self.comboboxMinVal = 8 sdtcloud = sdtcloudpubsub.sdtcloudpubsub()
for i in range(self.comboboxMinVal, 12): mqttClient = sdtcloud.setClient(f"device-app-{uuid.uuid1()}") # parameter is client ID(string)
self.comboBox_AverageStepVal.addItem(str(2**i))
ip = "192.168.0.20" # Run Start
port = 5001 dts = DTS(ip,port)
self.dts = DTS(ip, port) dts.setSystemReset()
self.dtsInit() dts.setAvgStart(ch, 0)
self.x1 = [] dts.setAvgEnableDelay(ch, 10 + enableDelayVal)
self.y1 = [] dts.setAvgSampleRange(ch, sampleRangeVal)
self.data_line1 = self.graphWidget1.plot(self.x1, self.y1) dts.setAvgStep(ch, avgStepVal)
self.timer = QtCore.QTimer() # Get Data Start
self.timer.setInterval(250) dts. setAvgStart(ch, 1)
self.timer.timeout.connect(self.update_plot_data)
self.timer.start()
self.tick = 0 dts.setTimerTick(ch, 100_000_000)
self.prevDataCount = 0
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)
def mainInit(): while(1):
app = QApplication(sys.argv) print("Run")
w = MainWindow() y1 = dts.ReadAdcData(0)
app.exec()
print(y1)
if __name__ == "__main__": msg = {
mainInit() "sensor_data": y1
}
sdtcloud.pubMessage(mqttClient, msg)
# pyuic6 .\MainWindow.ui -o MainWindow.py time.sleep(1)