75 lines
2.1 KiB
Python
75 lines
2.1 KiB
Python
import pygame
|
|
import serial
|
|
|
|
def createText(font, text, position):
|
|
text = font.render(text, True, (0,0,0), (255,255,255))
|
|
textRect = text.get_rect()
|
|
textRect.center = position
|
|
return text, textRect
|
|
|
|
pressure, heart_rate = 0, 0
|
|
pygame.init()
|
|
width, height = 900, 900
|
|
screen = pygame.display.set_mode((width, height))
|
|
pygame.display.set_caption('Bleeding Heart Interface')
|
|
clock = pygame.time.Clock()
|
|
font = pygame.font.SysFont('', 32)
|
|
texts = []
|
|
buttons = []
|
|
positions = [(width*.25, height *.1), (width*.75,height*.1),
|
|
(width*.25, height*.2), (width*.75, height*.2),
|
|
(width*.2, height*.3), (width*.7, height*.3)]
|
|
texts.append(createText(font, 'Pressure (PSI)', positions[0]))
|
|
texts.append(createText(font, 'Heart Rate (BPM)', positions[1]))
|
|
texts.append(createText(font, '0', positions[2]))
|
|
texts.append(createText(font, '0', positions[3]))
|
|
def test(nothing):
|
|
return
|
|
testButton = Button([10,10], [50,50], pygame, test, "Hello")
|
|
|
|
def main():
|
|
done = False
|
|
while not done:
|
|
screen.fill((255, 255, 255))
|
|
for text in texts:
|
|
screen.blit(text[0], text[1])
|
|
for event in pygame.event.get():
|
|
if event.type == pygame.QUIT:
|
|
done = True
|
|
pygame.display.update()
|
|
clock.tick(60)
|
|
|
|
pygame.quit()
|
|
return
|
|
|
|
class Button:
|
|
pos = [0,0]
|
|
size = [0,0]
|
|
def __init__(self, position, size, pygame, function, argument):
|
|
self.pos = position
|
|
self.size = size
|
|
self.function = function
|
|
self.argument = argument
|
|
self.pygame = pygame
|
|
return
|
|
|
|
def isClicked(self):
|
|
x, y = self.pygame.get_pos()[0], self.pygame.get_pos()[1]
|
|
if x >= self.pos[0] and x <= self.pos[0]+self.size[0]:
|
|
if y >= self.pos[1] and y <= self.pos[1]+self.size[1]:
|
|
if pygame.mouse.get_pressed()[0] == True:
|
|
self.function(self.argument)
|
|
return True
|
|
return False
|
|
|
|
def setPosition(self, x, y):
|
|
self.pos[0], self.pos[1] = x, y
|
|
return
|
|
|
|
def setArgument(self, argument):
|
|
self.argument = argument
|
|
return
|
|
|
|
if __name__ == "__main__":
|
|
main()
|