Files @ 5fe83c3dfb92
Branch filter:

Location: OneEye/src/core.py

Laman
splitting core from gui
import multiprocessing
import PIL
from corners import Corners
from gui import gui


class Core:
	corners=Corners()
	tresW=60.0
	tresB=30.0

	@staticmethod
	def setCorners(corners):
		Core.corners=corners

	@staticmethod
	def setTresholds(tresB=None,tresW=None):
		if tresB is not None: Core.tresB=tresB
		if tresW is not None: Core.tresW=tresW


msgQueue=multiprocessing.Queue()
guiQueue=multiprocessing.Queue()
incomingEvent=multiprocessing.Event()
guiEvent=multiprocessing.Event()

frame=PIL.Image.open("../images/7.jpg")

guiProc=multiprocessing.Process(name="gui",target=gui,args=(guiQueue,guiEvent,msgQueue,incomingEvent))
guiProc.start()
guiQueue.put(("setCurrentFrame",(frame,None),dict()))
guiEvent.set()

while True:
	incomingEvent.wait()
	msg=msgQueue.get()
	if msgQueue.empty():
		incomingEvent.clear()
	print(msg)


# !! always pass object copies, don't share instances
"""
core
====
corners
grid
go
imageAnalyzer


gui
===
a) keeps references to important objects and uses them
b) gets and sets all relevant data through method calls with core

GUI
<- addCorner(corner)
-> redrawImgView(img,grid)
<- refreshTresholds(tresB,tresW)

BoardView
-> redrawState(go)
"""