- fixed not exitting executor thread

- fixed PID params
This commit is contained in:
jens
2020-12-01 19:35:06 +01:00
parent 5c97ac4d5c
commit 19ed110d0b
3 changed files with 11 additions and 6 deletions
+5 -4
View File
@@ -11,6 +11,7 @@ from utils.value import Value, ValueChanged
TC_DT = 0.1 TC_DT = 0.1
class ATask: class ATask:
def __init__(self, interval): def __init__(self, interval):
self.interval = interval self.interval = interval
@@ -67,7 +68,7 @@ class HeaterTask(ATask):
self.heater = heater self.heater = heater
def actor(self, y): def actor(self, y):
self.heater.setPower(max(0, 200 + self.heater.get_power_max() * y)) self.heater.setPower(max(0, 0 + self.heater.get_power_max() * y))
async def recv(self, data): async def recv(self, data):
print(data) print(data)
@@ -202,7 +203,7 @@ if __name__ == '__main__':
"dt" : 1.0, "dt" : 1.0,
"theta" : 20, "theta" : 20,
"C" : 4190, "C" : 4190,
"M" : 10, "M" : 20,
"L" : 0.02, "L" : 0.02,
"Td" : 12, "Td" : 12,
"kn" : 0.2 "kn" : 0.2
@@ -222,8 +223,8 @@ if __name__ == '__main__':
"dt": 1.0, "dt": 1.0,
"Hold": { "Hold": {
"Pid": { "Pid": {
"kp": 0.4, "kp": 0.8,
"ki": 0.0, "ki": 0.000004,
"kd": 0.0, "kd": 0.0,
"rho": 1.0 "rho": 1.0
} }
-1
View File
@@ -5,7 +5,6 @@ from ws.client.ws_client import WsClient
from ws.message import MessageDispatcherSync from ws.message import MessageDispatcherSync
from queue import Queue from queue import Queue
import asyncio import asyncio
from ws.connection import IConnection
class Window(QtWidgets.QMainWindow, Ui_MainWindow): class Window(QtWidgets.QMainWindow, Ui_MainWindow):
+6 -1
View File
@@ -129,7 +129,12 @@ class MessageDispatcherSync(IConnection):
await asyncio.get_event_loop().run_in_executor(None, h.on_recv, d) await asyncio.get_event_loop().run_in_executor(None, h.on_recv, d)
async def on_send(self): async def on_send(self):
return await asyncio.get_event_loop().run_in_executor(None, self.state.get) result = None
try:
result = await asyncio.get_event_loop().run_in_executor(None, self.state.get, True, 1.0)
except:
pass
return result
def send(self, data): def send(self, data):
self.state.put(data) self.state.put(data)