You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

UIController.py 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. from UIModell import *
  2. import UIViewTKinter as viewTkinter
  3. import UIViewPySide as viewPySide
  4. from threading import Thread
  5. class Controller():
  6. def __init__(self):
  7. self.view = viewTkinter.View(self)
  8. self.modi = "taktilesBCI"
  9. self.commands = {
  10. "copySpelling": self.commandoCopySpelling,
  11. "stop": self.commandStop,
  12. "freeSpelling": self.commandFreeSpelling,
  13. "test": self.test,
  14. "wechsel": self.wechsel,
  15. "speicherort": self.speicherort
  16. }
  17. self.nexts = {
  18. "filterXdawn" : self.filterXdawn,
  19. "filterClassic": self.filterClassic
  20. }
  21. self.pagesTaktil = {
  22. "stop": "StartPage",
  23. "copySpelling": "WorkingPageTaktil",
  24. "freeSpelling": "WorkingPageTaktil",
  25. "test": "WorkingPageTaktil"
  26. }
  27. self.pagesVisuell = {
  28. "stop": "StartPage",
  29. "copySpelling": "WorkingPageVisuell",
  30. "freeSpelling": "WorkingPageVisuell",
  31. "test": "WorkingPageVisuell"
  32. }
  33. self.view.mainloop()
  34. def actionPerformed(self, action):
  35. self.changePage(action)
  36. func = self.commands.get(action)
  37. if(func is not None):
  38. func()
  39. else:
  40. print("Kommado existiert nicht")
  41. def changePage(self,action):
  42. if(self.modi == "taktilesBCI"):
  43. page = self.pagesTaktil.get(action)
  44. elif(self.modi == "visuellesBCI"):
  45. page = self.pagesVisuell.get(action)
  46. if(page is not None):
  47. self.view.changeFrame(self.pages.get(action))
  48. def wechsel(self):
  49. if(self.modi == "taktilesBCI"):
  50. self.view.setChangeBtnText("Wechsel zu taktilen BCI")
  51. self.view.setTitleText("visuelles BCI")
  52. self.modi = "visuellesBCI"
  53. elif(self.modi == "visuellesBCI"):
  54. self.setTitle("taktiles BCI")
  55. self.view.setChangeBtnText("Wechsel zu visuellen BCI")
  56. self.modi = "taktilesBCI"
  57. def speicherort(self):
  58. pass
  59. def test(self):
  60. self.model = Modell(self)
  61. self.model.setFunktion(self.model.trainXDawn)
  62. self.model.start()
  63. #wird durch Btn gestartet -> startet copyspelling als thread
  64. def commandoCopySpelling(self):
  65. self.model = Modell(self)
  66. self.model.setFunktion(self.model.startCopySpelling)
  67. self.model.start()
  68. #wird durch Copy-Speller Thread copystelling gestartet -> startete filtern als thread
  69. def filterXdawn(self):
  70. self.model = Modell(self)
  71. self.model.setFunktion(self.model.trainXDawn)
  72. self.model.start()
  73. #wird durch XDawn-Thread copystelling gestartet -> startete filtern als thread
  74. def filterClassic(self):
  75. self.model = Modell(self)
  76. self.model.setFunktion(self.model.trainClassifier)
  77. self.model.start()
  78. def commandFreeSpelling(self):
  79. print("freespelling")
  80. self.model = Modell(self)
  81. self.model.setFunktion(self.model.freeSpelling)
  82. self.model.start()
  83. def commandStop(self):
  84. self.setInfos("Action: STOP-Command")
  85. self.model.stop()
  86. self.model.join()
  87. self.model.killProzess()
  88. self.mode = None
  89. def stop(self, next=None):
  90. print("Stop aus Modell")
  91. self.model.stop()
  92. self.model.join()
  93. self.model.killProzess()
  94. self.mode = None
  95. if(next is not None):
  96. func = self.nexts.get(next)
  97. func()
  98. def setInfos(self,text):
  99. self.view.setInfoText(text)
  100. def setTitle(self,text):
  101. self.view.setTitleText(text)
  102. def changeScreen(self, pageName):
  103. self.view.changeFrame(pageName=pageName)
  104. def getModi(self):
  105. return self.modi