diff --git a/.DS_Store b/.DS_Store index b8dd1ba..b2acd9e 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/.gitmodules b/.gitmodules index b6355bf..789745a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,21 +1,21 @@ [submodule "Software/Sensor"] - path = Software/Sensor - url = http://git.strawhat-solutions.de/NetWEB/Windmessanlage.git + path = /Software/Sensor + url = http://git.strawhat-solutions.de/nits/WindMessAnlage.git branch = Sensor [submodule "Software/tig-stack"] path = Software/tig-stack - url = http://git.strawhat-solutions.de/NetWEB/Windmessanlage.git + url = http://git.strawhat-solutions.de/nits/WindMessAnlage.git branch = tig-stack [submodule "Software/Display"] path = Software/Display - url = http://git.strawhat-solutions.de/NetWEB/Windmessanlage.git + url = http://git.strawhat-solutions.de/nits/WindMessAnlage.git branch = Display [submodule "Dokumentation/"] path = /Dokumentation - url = http://git.strawhat-solutions.de/NetWEB/Windmessanlage.git + url = http://git.strawhat-solutions.de/nits/WindMessAnlage.git branch = Dokumentation [submodule "CAD"] path = /CAD - url = http://git.strawhat-solutions.de/NetWEB/Windmessanlage.git + url = http://git.strawhat-solutions.de/nits/WindMessAnlage.git branch = CAD diff --git a/CAD/Display3D_Druck.FCStd b/CAD/Display3D_Druck.FCStd deleted file mode 100644 index 39f49ba..0000000 Binary files a/CAD/Display3D_Druck.FCStd and /dev/null differ diff --git a/CAD/DisplayHolder.FCStd b/CAD/DisplayHolder.FCStd deleted file mode 100644 index 74ae5a2..0000000 Binary files a/CAD/DisplayHolder.FCStd and /dev/null differ diff --git a/CAD/Halter_3D.stl b/CAD/Halter_3D.stl deleted file mode 100644 index ab49efe..0000000 Binary files a/CAD/Halter_3D.stl and /dev/null differ diff --git a/CAD/NWS_WMA_001_Feststellungsplate.pdf b/CAD/NWS_WMA_001_Feststellungsplate.pdf deleted file mode 100644 index 559a2a7..0000000 Binary files a/CAD/NWS_WMA_001_Feststellungsplate.pdf and /dev/null differ diff --git a/CAD/NWS_WMA_002_Bottom_Plate.pdf b/CAD/NWS_WMA_002_Bottom_Plate.pdf deleted file mode 100644 index 90a8ccd..0000000 Binary files a/CAD/NWS_WMA_002_Bottom_Plate.pdf and /dev/null differ diff --git a/CAD/NWS_WMA_003_Back_Plate.pdf b/CAD/NWS_WMA_003_Back_Plate.pdf deleted file mode 100644 index fc7c65d..0000000 Binary files a/CAD/NWS_WMA_003_Back_Plate.pdf and /dev/null differ diff --git a/CAD/NWS_WMA_004_Mounting_View.pdf b/CAD/NWS_WMA_004_Mounting_View.pdf deleted file mode 100644 index 763b8f6..0000000 Binary files a/CAD/NWS_WMA_004_Mounting_View.pdf and /dev/null differ diff --git a/CAD/NWS_WMA_005_Complete_View.pdf b/CAD/NWS_WMA_005_Complete_View.pdf deleted file mode 100644 index 0c0ab65..0000000 Binary files a/CAD/NWS_WMA_005_Complete_View.pdf and /dev/null differ diff --git a/Display/.DS_Store b/Display/.DS_Store deleted file mode 100644 index 6de6551..0000000 Binary files a/Display/.DS_Store and /dev/null differ diff --git a/Display/DataObject.py b/Display/DataObject.py deleted file mode 100644 index 8512114..0000000 --- a/Display/DataObject.py +++ /dev/null @@ -1,37 +0,0 @@ -import json - -class DataObject(): - def __init__(self): - self.currentSpeed = 0 - self.speed2AVG = 0 - self.speed10AVG = 0 - self.speed2Max = 0 - self.speed10Max = 0 - self.compass = 0 - - def data(self, client, userdata, msg): - - m_in= self.decode( msg.payload ) - - try: - self.currentSpeed = m_in['windspeed'] - self.speed2AVG = m_in['speed2AVG'] - self.speed10AVG = m_in['speed10AVG'] - self.speed2Max = m_in['speed2max'] - self.speed10Max = m_in['speed10max'] - self.compass = m_in['winddirection'] - except: - pass - - def config(self, client, userdata, msg): - - m_in= self.decode( msg.payload ) - - try: - self.warning = m_in['warning_level'] - self.alert = m_in['alert_level'] - except: - pass - - def decode(self,payload): - return json.loads( payload.decode("utf-8", "ignore") ) \ No newline at end of file diff --git a/Display/Screen.py b/Display/Screen.py deleted file mode 100644 index 399ff40..0000000 --- a/Display/Screen.py +++ /dev/null @@ -1,100 +0,0 @@ -import os -import platform -import pygame - -class DriverException(Exception): - def __init__(self, driverName): - self.driverName = driverName - - def __str__(self): - return repr(self.driverName) - -class Screen(): - screen = None - bgColor = None - - def __init__(self, width, height, fullscreen): - size = (width, height) - - disp_no = os.getenv('DISPLAY') - if disp_no: - print ("I'm running under X display = {0}".format(disp_no)) - self.screen = pygame.display.init() - else: - print("Try to run from framebuffer...") - drivers = ['fbcon','directfb', 'svgalib'] - - found = False - for driver in drivers: - print(driver) - if not os.getenv('SDL_VIDEODRIVER'): - os.putenv('SDL_VIDEODRIVER', driver) - try: - self.screen = pygame.display.init() - except pygame.error: - print("Driver: {0} failed.".format(driver)) - continue - found = True - break - - if not found: - raise Exception('No suitable video driver found!') - - self.realSize = (pygame.display.Info().current_w, pygame.display.Info().current_h) - if size[0] > self.realSize[0]: - size = (self.realSize[0], size[1]) - if size[1] > self.realSize[1]: - size = (size[0], self.realSize[1]) - if not fullscreen: - self.screen = pygame.display.set_mode(size) - else: - self.screen = pygame.display.set_mode((0,0), pygame.FULLSCREEN|pygame.DOUBLEBUF|pygame.HWSURFACE) - - - def quit(self): - pygame.display.quit() - - def update(self): - pygame.display.flip() - - def blit(self, surface, x, y): - - self.screen.blit( surface, (x, y) ) - - def background(self, color): - try: - self.screen.fill( pygame.Color(color) ) - except: - self.screen.fill( pygame.Color("white")) - finally: - self.bgColor = color - - def reset(self): - self.background(self.bgColor) - - - - def setCaption(self, title): - pygame.display.set_caption(title) - - def test(self): - # Fill the screen with red (255, 0, 0) - self.screen.fill(pygame.Color("red")) - # Update the display - self.update() - - def getSize(self): - return self.screen.get_size() - - def getRealSize(self): - return self.realSize - - - - - - - - - - diff --git a/Display/__pycache__/Screen.cpython-37.pyc b/Display/__pycache__/Screen.cpython-37.pyc deleted file mode 100644 index c17c3ac..0000000 Binary files a/Display/__pycache__/Screen.cpython-37.pyc and /dev/null differ diff --git a/Display/config.ini b/Display/config.ini deleted file mode 100644 index 1dd6c53..0000000 --- a/Display/config.ini +++ /dev/null @@ -1,71 +0,0 @@ -[General] -fullscreen: True -timeToEnd: 5 - -[MQTT] -topic: DPW/STR/CRAN2/WIND -config: DPW/STR/CRAN2 -host: localhost -port: 1884 -keepalive: 60 - -[Color] -normal = Black -warning = Yellow -alert = Red - - -[CurrentSpeed] -font_size = 28 -x = 386 -y = 226 - -[AVG2Speed] -font_size = 28 -x = 0 -y = 0 -width = 400 -height = 240 - -[AVG10Speed] -font_size = 28 -x = 0 -y = 240 -width = 400 -height = 240 - -[Max2Speed] -font_size = 28 -x = 400 -y = 0 -width = 400 -height = 240 - -[Max10Speed] -font_size = 28 -x = 400 -y = 240 -width = 400 -height = 240 - -[Compass] -font_size = 20 -width = 280 -height = 280 -x = 260 -y = 100 -background = Navy -needle_color = Deepskyblue -lineLength = 60 - -[CompassBackground] -dashedLineColor = Darkgrey -dashsize = 10 -groundColor = Lightgrey -angleOffset = 13 - -[Splashscreen] -fadein = 0.5 -fadeout = 0.5 -solid = 0.5 -font_size = 20 diff --git a/Display/display.sh b/Display/display.sh deleted file mode 100755 index 77a36dc..0000000 --- a/Display/display.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -echo Starting display application -cd /home/pi/Windmessanlage/Software/Display/ -DISPLAY=:0 python3 main.py diff --git a/Display/elements/Compass.py b/Display/elements/Compass.py deleted file mode 100644 index 3741df3..0000000 --- a/Display/elements/Compass.py +++ /dev/null @@ -1,137 +0,0 @@ -import pygame -import math - -class Compass(): - def __init__(self, font_size, size): - pygame.font.init() - self.textColor = pygame.Color("white") - self.backgroundColor = pygame.Color("White") - self.needleColor = pygame.Color("black") - - self.font = pygame.font.Font(pygame.font.get_default_font(), font_size) - - self.surface = pygame.Surface(size, pygame.SRCALPHA) - self.size = size - - self.x = 0 - self.y = 0 - - self.backgroundSurface = None - - - def setX(self, x): - self.x = x - def getX(self): - return self.x - - def setY(self, y): - self.y = y - def getY(self): - return self.y - - def get(self): - return self.surface - - def setTextColor(self, color): - try: - self.textColor = pygame.Color(color) - except: - self.textColor = pygame.Color("black") - - def setBackgroundColor(self, color): - try: - self.backgroundColor = pygame.Color(color) - except: - self.backgroundColor = pygame.Color("white") - - def setNeedleColor(self, color): - try: - self.needleColor = pygame.Color(color) - except: - self.needleColor = pygame.Color("black") - - def update(self, value): - raise NotImplementedError() - - -class MiddleNeedle(Compass): - def update(self, value): - radius = min(self.size[0]//2, self.size[1]//2) - pygame.draw.circle( self.surface, self.backgroundColor, (self.size[0]//2, self.size[1]//2), radius) - - - arrow = pygame.Surface( ((self.size[0]//100*60)//2, self.size[1]//100*60), pygame.SRCALPHA ) - - polygon_list = [ - ( arrow.get_width()//2, 0 ), #Middle top - ( 0, arrow.get_height() ), #bottom left - ( arrow.get_width()//2, (arrow.get_height()-arrow.get_height()//100*30) ), #middle pos - ( arrow.get_width(), arrow.get_height() ), #bottom right - ] - - pygame.draw.polygon(arrow, self.needleColor, polygon_list) - arrow = pygame.transform.rotate( arrow, value ) - self.surface.blit( arrow, ( (self.size[0]//2)-(arrow.get_width()//2), (self.size[1]//2)-(arrow.get_height()//2))) - - text = self.font.render("N", True, self.textColor) - self.surface.blit( text, ( (self.size[0]//2) - (text.get_width()//2), int(self.size[1]/100*10) - text.get_height()//2 ) ) - - text = self.font.render("W", True, self.textColor) - self.surface.blit( text, ( int(self.size[0]/100*10) - (text.get_width()//2), (self.size[1]//2) - (text.get_height()//2) ) ) - - text = self.font.render("O", True, self.textColor) - self.surface.blit( text, ( int(self.size[0]/100*90)- (text.get_width()//2), (self.size[1]//2) - (text.get_height()//2) ) ) - - text = self.font.render("S", True, self.textColor) - self.surface.blit( text, ( (self.size[0]//2) - (text.get_width()//2), int(self.size[1]/100*90) - text.get_height()//2 ) ) - - -class OuterNeedle(Compass): - def update(self, value): - radius = min(self.size[0]//2, self.size[1]//2) - pygame.draw.circle( self.surface, self.backgroundColor, (self.size[0]//2, self.size[1]//2), radius) - - - if self.backgroundSurface: - self.surface.blit( self.backgroundSurface, (0,0) ) - - if self.lineLength is None: - self.lineLength = 5 - - # 0 is down -> +90 - # alpha = 2 * arcsin (s / 2r); s is bottom line - alpha = 2 * math.asin( self.lineLength / (2*radius) ) - value = math.radians(value) + math.pi/2 #put 0 to bottom - bottom_left = self.getPos(value +alpha/2, radius) - bottom_left = ( int(bottom_left[0] + radius), bottom_left[1]+radius) #offset to screen middle - bottom_right = self.getPos(value -alpha/2, radius) - bottom_right = ( int(bottom_right[0] + radius), bottom_right[1]+radius) - height_of_segment = self.lineLength/2 * math.tan( alpha / 4 ) - height_of_triangle = math.sqrt(3) /2 * self.lineLength - top = self.getPos(value, radius-height_of_segment-height_of_triangle) - top = ( int(top[0] + radius), top[1]+radius ) - points = [ bottom_left, top, bottom_right ] - - pygame.draw.lines( self.surface, self.needleColor, False, points,3) - - text = self.font.render("N", True, self.textColor) - self.surface.blit( text, ( (self.size[0]//2) - (text.get_width()//2), int(self.size[1]/100*10) - text.get_height()//2 ) ) - - text = self.font.render("W", True, self.textColor) - self.surface.blit( text, ( int(self.size[0]/100*10) - (text.get_width()//2), (self.size[1]//2) - (text.get_height()//2) ) ) - - text = self.font.render("O", True, self.textColor) - self.surface.blit( text, ( int(self.size[0]/100*90)- (text.get_width()//2), (self.size[1]//2) - (text.get_height()//2) ) ) - - text = self.font.render("S", True, self.textColor) - self.surface.blit( text, ( (self.size[0]//2) - (text.get_width()//2), int(self.size[1]/100*90) - text.get_height()//2 ) ) - - def getPos(self, alpha, radius): - return ( int( radius * math.cos(alpha) ), int( radius * math.sin(alpha) ) ) - - def setLineLength(self, length): - self.lineLength = length - - def setBackgroundSurface(self, surface): - self.backgroundSurface = surface - diff --git a/Display/elements/Line.py b/Display/elements/Line.py deleted file mode 100644 index 3fe33ff..0000000 --- a/Display/elements/Line.py +++ /dev/null @@ -1,44 +0,0 @@ -import pygame -import math - -class Point(): - # constructed using a normal tupple - def __init__(self, point_t = (0,0)): - self.x = float(point_t[0]) - self.y = float(point_t[1]) - - # define all useful operators - def __add__(self, other): - return Point((self.x + other.x, self.y + other.y)) - def __sub__(self, other): - return Point((self.x - other.x, self.y - other.y)) - def __mul__(self, scalar): - return Point((self.x*scalar, self.y*scalar)) - def __truediv__(self, scalar): - return Point((self.x/scalar, self.y/scalar)) - def __len__(self): - return int(math.sqrt(self.x**2 + self.y**2)) - # get back values in original tuple format - def get(self): - return (self.x, self.y) - - -def draw_dashed_line(surf, color, start_pos, end_pos, width=1, dash_length=10): - origin = Point(start_pos) - target = Point(end_pos) - displacement = target - origin - length = len(displacement) - slope = displacement/length - - for index in range(0, int(length/dash_length), 2): - start = origin + (slope * index * dash_length) - end = origin + (slope * (index + 1) * dash_length) - pygame.draw.line(surf, color, start.get(), end.get(), width) - -if __name__ == "__main__": - start =(50,50) - end =(100,50) - - surface = pygame.Surface( (200,200) ) - - draw_dashed_line( surface, pygame.Color("Black"), start, end, width=1 ) \ No newline at end of file diff --git a/Display/elements/Text.py b/Display/elements/Text.py deleted file mode 100644 index 1b61569..0000000 --- a/Display/elements/Text.py +++ /dev/null @@ -1,53 +0,0 @@ -import pygame - -class Text(): - def __init__(self,txt, font_size): - pygame.font.init() - self.color = pygame.Color("black") - self.txt = txt - self.font = pygame.font.Font(pygame.font.get_default_font(), font_size) - self.text = self.font.render(self.txt, True, self.color) - self.x = 0 - self.y = 0 - - def setX(self, x): - self.x = x - def getX(self): - return self.x - - def setY(self, y): - self.y = y - def getY(self): - return self.y - - def get(self): - return self.text - - def getSize(self): - return self.text.get_size() - - def getWidth(self): - return self.text.get_width() - - def setColor(self, color): - try: - self.color = pygame.Color(color) - except: - self.color = pygame.Color("black") - self.text = self.font.render(self.txt, True, self.color) - - -class VariableText(Text): - def __init__(self, txt, font_size): - pygame.font.init() - self.color = pygame.Color("black") - self.txt = txt+"{}" - self.font = pygame.font.Font(pygame.font.get_default_font(), font_size) - self.text = self.font.render(self.txt.format(0), True, self.color) - - def setUnit(self, unit): - self.txt = self.txt+unit - self.unit = unit - - def update(self, value): - self.text = self.font.render(self.txt.format(value), True, self.color) \ No newline at end of file diff --git a/Display/elements/Textbox.py b/Display/elements/Textbox.py deleted file mode 100644 index 91db6c2..0000000 --- a/Display/elements/Textbox.py +++ /dev/null @@ -1,55 +0,0 @@ -import pygame - -class Textbox(): - def __init__(self, size, x, y, font_size): - self.background = pygame.Color("grey") - self.surface = pygame.Surface( size ) - self.surface.fill( self.background ) - - self.color = pygame.Color("White") - self.fontsize = 20 - pygame.font.init() - - self.font = pygame.font.Font(pygame.font.get_default_font(), font_size) - text = self.font.render("", True, self.color) - self.surface.blit( text, (0,0) ) - - self.x = x - self.y = y - - def setText(self, text): - self.lines = text.split('\n') - self.nr_of_lines = len(self.lines) - - def setTextColor(self, color): - try: - self.color = pygame.Color(color) - except: - self.color = pygame.Color("black") - - def setBackgroundColor(self, color): - try: - self.background = pygame.Color(color) - except: - self.background = pygame.Color("grey") - - def get(self): - return self.surface - - def getX(self): - return self.x - - def getY(self): - return self.y - - def update(self, value): - self.surface.fill( self.background ) - - for lineNr, line in enumerate(self.lines): - text = self.font.render(line.format(value), True, self.color) - spacing = text.get_height()//10 - x = self.surface.get_width()//2 - text.get_width()//2 - height_total = self.nr_of_lines * (text.get_height() + spacing) - y = self.surface.get_height()//2 - height_total//2 + (lineNr * (text.get_height()+spacing)) - self.surface.blit( text, (x,y) ) - diff --git a/Display/main.py b/Display/main.py deleted file mode 100644 index fe5bb08..0000000 --- a/Display/main.py +++ /dev/null @@ -1,281 +0,0 @@ -import os -import platform -import pygame -import time -import math - -import configparser - -import paho.mqtt.client as mqtt -from DataObject import DataObject - -from Screen import Screen -from elements.Text import Text, VariableText -from elements.Textbox import Textbox -from elements.Compass import OuterNeedle -from elements.Line import draw_dashed_line, Point - -topic = "" - -def on_connect(client, userdata, flags, rc): - print("Subscribe to {}".format(topic)) - client.subscribe(topic) - - -def splashscreen(screen, fadein, solid, fadeout, font_size): - screen.background("white") - size = screen.getSize() - txt = Text("powered by NetWEB Systems", font_size) - img = pygame.image.load("resources/NWS.bmp") - imgSize = img.get_rect().size - surface = pygame.Surface(size) - surface.fill(pygame.Color("white")) - surface.blit(img, (size[0]//2 - imgSize[0], size[1]//2 - imgSize[1])) - surface.blit(txt.get(), (size[0]//2, size[1]//2)) - - if (fadein > 0): - for alpha in range(0,255): #0 is transparent, 255 is opaque - screen.reset() - surface.set_alpha(alpha) - screen.blit(surface,0,0) - screen.update() - time.sleep( fadein/255 ) - - screen.reset() - screen.blit(surface,0,0) - screen.update() - time.sleep(solid) - - if (fadeout > 0): - for alpha in range(0,255): #0 is transparent, 255 is opaque - screen.reset() - surface.set_alpha(255-alpha) - screen.blit(surface,0,0) - screen.update() - time.sleep( fadeout/255 ) - -def getPos(angle, radius, offset): - return ( int( radius * math.cos(angle) )+offset, int( radius * math.sin(angle) )+offset) - -def blitRotate(surf, image, pos, originPos, angle): - - # calcaulate the axis aligned bounding box of the rotated image - w, h = image.get_size() - box = [pygame.math.Vector2(p) for p in [(0, 0), (w, 0), (w, -h), (0, -h)]] - box_rotate = [p.rotate(angle) for p in box] - min_box = (min(box_rotate, key=lambda p: p[0])[0], min(box_rotate, key=lambda p: p[1])[1]) - max_box = (max(box_rotate, key=lambda p: p[0])[0], max(box_rotate, key=lambda p: p[1])[1]) - - # calculate the translation of the pivot - pivot = pygame.math.Vector2(originPos[0], -originPos[1]) - pivot_rotate = pivot.rotate(angle) - pivot_move = pivot_rotate - pivot - - # calculate the upper left origin of the rotated image - origin = (pos[0] - originPos[0] + min_box[0] - pivot_move[0], pos[1] - originPos[1] - max_box[1] + pivot_move[1]) - - # get a rotated image - rotated_image = pygame.transform.rotate(image, angle) - - # rotate and blit the image - surf.blit(rotated_image, origin) - -def buildBackground( size, config ): - surface = pygame.Surface( size, pygame.SRCALPHA) - - w = size[0] - h = size[1] - - try: - dashedLineColor = pygame.Color( config.get('CompassBackground','dashedLineColor') ) - except: - dashedLineColor = pygame.Color("Black") - - try: - groundColor = pygame.Color( config.get('CompassBackground','groundColor')) - except: - groundColor = pygame.Color("Black") - - radius = min( w, h ) // 2 - angle = config.getint('CompassBackground', 'angleOffset') - angle = math.radians( angle ) - - dash_length = config.getint('CompassBackground','dashSize') - - #Kaimauer - start = getPos( angle, radius, offset=radius ) - end = getPos( angle+math.pi, radius, offset=radius ) - draw_dashed_line(surface, dashedLineColor, start, end, width=2, dash_length= dash_length ) - - alpha = 2 * math.acos( 1-( (radius-10)/radius ) ) - start = getPos( (math.pi/2) + (alpha/2) + angle, radius, offset=radius ) - end = getPos( (math.pi/2) - (alpha/2) + angle, radius, offset=radius ) - draw_dashed_line(surface, dashedLineColor, start, end, width=2, dash_length= dash_length ) - - start = getPos( angle+(math.pi/2), radius//10*8, offset=radius ) - end = getPos( angle+(math.pi/2), radius//10*1, offset=radius ) - - #x1 = Point( start ) - #x2 = Point( end ) - #alpha = math.radians(20) - #d = len(x1 - x2) - #print(d) - #length = d * (1/math.sin(math.pi+alpha)) - #print(length) - #x = d * math.cos( alpha ) - #y = d * math.cos( alpha ) - #print( x, y) - #pygame.draw.line( surface, groundColor, start, (x,y) ) - - txt = Text( 'Terminal', 20 ) - txt.setColor('Lightgrey') - txt_surface = pygame.transform.rotate( txt.get(), -math.degrees(angle) ) - pos = getPos(angle+(math.pi/2), radius/10*2, radius-txt.getWidth()//2) - surface.blit( txt_surface, pos ) - - #circle_surface = pygame.Surface( size, pygame.SRCALPHA) - #pygame.draw.circle( circle_surface, groundColor, (w//2, h//2), radius, width=0, draw_bottom_left=True) - #pygame.draw.circle( circle_surface, groundColor, (w//2, h//2), radius, width=0, draw_bottom_right=True) - #blitRotate(surface, circle_surface, (w//2,h//2), (w//2,h//2), -math.degrees(angle)) - - return surface - -if __name__ == "__main__": - - #load config - config = configparser.ConfigParser() - config.read("config.ini") - - fullscreen = config.getboolean('General', 'fullscreen') - timeToEnd = config.getfloat('General','timetoend') - - screen = Screen(800,480, fullscreen) - screen.setCaption("Windmessanlage") - screen.background("white") - - #Splashscreen - splashscreen(screen, config.getfloat('Splashscreen','fadein'), config.getfloat('Splashscreen','solid'), config.getfloat('Splashscreen','fadeout'), config.getint('Splashscreen','font_size')) - - #-average speed 2min - size = ( int(config.get('AVG2Speed','width')), int(config.get('AVG2Speed','height')) ) - x = int(config.get('AVG2Speed','x')) - y = int(config.get('AVG2Speed','y')) - averageSpeed2 = Textbox( size, x, y, int(config.get('AVG2Speed','font_size')) ) - averageSpeed2.setText("Ø 2min:\n{}m/s") - averageSpeed2.setBackgroundColor("Black") - - #-average speed 10min - size = ( int(config.get('AVG10Speed','width')), int(config.get('AVG10Speed','height')) ) - x = int(config.get('AVG10Speed','x')) - y = int(config.get('AVG10Speed','y')) - averageSpeed10 = Textbox( size, x, y, int(config.get('AVG10Speed','font_size')) ) - averageSpeed10.setText("\nØ 10min:\n{}m/s") - averageSpeed10.setBackgroundColor("Black") - - #-max speed 2min - size = ( int(config.get('Max2Speed','width')), int(config.get('Max2Speed','height')) ) - x = int(config.get('Max2Speed','x')) - y = int(config.get('Max2Speed','y')) - maxSpeed2 = Textbox( size, x, y, int(config.get('Max2Speed','font_size')) ) - maxSpeed2.setText("Max 2min:\n{}m/s") - maxSpeed2.setBackgroundColor("black") - - - #-max speed 10min - size = ( int(config.get('Max10Speed','width')), int(config.get('Max10Speed','height')) ) - x = int(config.get('Max10Speed','x')) - y = int(config.get('Max10Speed','y')) - maxSpeed10 = Textbox( size, x, y, int(config.get('Max10Speed','font_size')) ) - maxSpeed10.setText("\nMax 10min:\n{}m/s") - maxSpeed10.setBackgroundColor("Black") - - #compass - compass = OuterNeedle(int(config.get('Compass','font_size')), (int(config.get('Compass','width')), int(config.get('Compass','height'))) ) - compass.setX( int(config.get('Compass','x')) ) - compass.setY( int(config.get('Compass','y')) ) - compass.setBackgroundColor( config.get('Compass', 'background') ) - compass.setNeedleColor( config.get('Compass', 'needle_color') ) - compass.setLineLength( config.getint('Compass', 'lineLength') ) - - compass.setBackgroundSurface( buildBackground( (int(config.get('Compass','width')), int(config.get('Compass','height'))), config ) ) - - #-Current speed - currentSpeed = VariableText("", int(config.get('CurrentSpeed','font_size'))) - currentSpeed.setX(int(config.get('CurrentSpeed','x'))) - currentSpeed.setY(int(config.get('CurrentSpeed','y'))) - currentSpeed.setUnit("m/s") - currentSpeed.setColor("white") - - #MQTT - topic = config.get('MQTT','topic') - mqttc = mqtt.Client() - mqttc.on_connect = on_connect - - data = DataObject() - mqttc.message_callback_add( config.get('MQTT','topic'), data.data) - mqttc.message_callback_add( config.get('MQTT','config'), data.config) - - mqtt_host = config.get('MQTT', 'host') - mqtt_port = int(config.get('MQTT', 'port')) - - - screen.reset() - screen.blit( Text("Try to connect to MQTT server", 24).get(), 0, 0) - screen.blit( Text("Server: {0}:{1}".format(mqtt_host, mqtt_port),24).get(), 0, 25) - screen.update() - pygame.mouse.set_visible(False) - - while(True): - try: - mqttc.connect(mqtt_host, port=mqtt_port, keepalive=int(config.get('MQTT', 'keepalive'))) - break - except (KeyboardInterrupt, SystemExit): - print("KeyboardInterrupt or SystemExit") - raise - except: - time.sleep(3) - print("Try to reconnect") - mqttc.loop_start() - - - #limit framerate - clock = pygame.time.Clock() - time_start = 0 - - while True: - e = pygame.event.poll() - if e.type == pygame.QUIT: - break - - if e.type == pygame.MOUSEBUTTONDOWN: - time_start = time.time() - - if e.type == pygame.MOUSEBUTTONUP: - if (time.time() - time_start > timeToEnd): - print("{}s".format(time.time() - time_start)) - break - - - - screen.reset() - currentSpeed.update(data.currentSpeed) - averageSpeed2.update(data.speed2AVG) - averageSpeed10.update(data.speed2AVG) - maxSpeed2.update(data.speed2Max) - maxSpeed10.update(data.speed10Max) - compass.update(data.compass) - - - screen.blit( averageSpeed2.get(), averageSpeed2.getX(), averageSpeed2.getY() ) - screen.blit( averageSpeed10.get(), averageSpeed10.getX(), averageSpeed10.getY() ) - screen.blit( maxSpeed2.get(), maxSpeed2.getX(), maxSpeed2.getY() ) - screen.blit( maxSpeed10.get(), maxSpeed10.getX(), maxSpeed10.getY() ) - screen.blit( compass.get(), compass.getX(), compass.getY() ) - screen.blit( currentSpeed.get(), currentSpeed.getX(), currentSpeed.getY() ) - screen.update() - - #Limit to 30 fps - clock.tick(30) - - - screen.quit() diff --git a/Display/resources/NWS.bmp b/Display/resources/NWS.bmp deleted file mode 100644 index d1a6706..0000000 Binary files a/Display/resources/NWS.bmp and /dev/null differ diff --git a/Dokumentation/.DS_Store b/Dokumentation/.DS_Store deleted file mode 100644 index 57ec79a..0000000 Binary files a/Dokumentation/.DS_Store and /dev/null differ diff --git a/Dokumentation/4.920x.00.000_ClimaSensor_US_V4.15_d.pdf b/Dokumentation/4.920x.00.000_ClimaSensor_US_V4.15_d.pdf deleted file mode 100644 index d697517..0000000 Binary files a/Dokumentation/4.920x.00.000_ClimaSensor_US_V4.15_d.pdf and /dev/null differ diff --git a/Dokumentation/Angebot/Angebot Recdata.pdf b/Dokumentation/Angebot/Angebot Recdata.pdf deleted file mode 100644 index b581cd2..0000000 Binary files a/Dokumentation/Angebot/Angebot Recdata.pdf and /dev/null differ diff --git a/Dokumentation/Angebot/V1.2_Windmessanlage.pdf b/Dokumentation/Angebot/V1.2_Windmessanlage.pdf deleted file mode 100644 index 6958866..0000000 Binary files a/Dokumentation/Angebot/V1.2_Windmessanlage.pdf and /dev/null differ diff --git a/Dokumentation/Angebot/Windmessanlage.docx b/Dokumentation/Angebot/Windmessanlage.docx deleted file mode 100644 index a2691f4..0000000 Binary files a/Dokumentation/Angebot/Windmessanlage.docx and /dev/null differ diff --git a/Dokumentation/Angebot/Windmessanlage.pdf b/Dokumentation/Angebot/Windmessanlage.pdf deleted file mode 100644 index 2de896f..0000000 Binary files a/Dokumentation/Angebot/Windmessanlage.pdf and /dev/null differ diff --git a/Dokumentation/HSE.pdf b/Dokumentation/HSE.pdf deleted file mode 100644 index 3c20833..0000000 Binary files a/Dokumentation/HSE.pdf and /dev/null differ diff --git a/Dokumentation/Projektplanung/2020-04-02_Projektplanung.xlsx b/Dokumentation/Projektplanung/2020-04-02_Projektplanung.xlsx deleted file mode 100644 index f92e63d..0000000 Binary files a/Dokumentation/Projektplanung/2020-04-02_Projektplanung.xlsx and /dev/null differ diff --git a/Dokumentation/Projektplanung/Projektplanung.xlsx b/Dokumentation/Projektplanung/Projektplanung.xlsx deleted file mode 100644 index 7fe09dc..0000000 Binary files a/Dokumentation/Projektplanung/Projektplanung.xlsx and /dev/null differ diff --git a/Dokumentation/cpi-a070wr_en_02__34742.1498799123.1280.1280.png b/Dokumentation/cpi-a070wr_en_02__34742.1498799123.1280.1280.png deleted file mode 100644 index c918954..0000000 Binary files a/Dokumentation/cpi-a070wr_en_02__34742.1498799123.1280.1280.png and /dev/null differ diff --git a/Dokumentation/thiesclima_Wind-Clima-Sensor-US_09-04-2020.pdf b/Dokumentation/thiesclima_Wind-Clima-Sensor-US_09-04-2020.pdf deleted file mode 100644 index dcf4d47..0000000 Binary files a/Dokumentation/thiesclima_Wind-Clima-Sensor-US_09-04-2020.pdf and /dev/null differ diff --git a/Sensor b/Sensor deleted file mode 160000 index a0f3d0e..0000000 --- a/Sensor +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a0f3d0edd763ab211ea345604120dc37abefe74b diff --git a/CAD/.DS_Store b/Software/.DS_Store similarity index 69% rename from CAD/.DS_Store rename to Software/.DS_Store index 5023e2f..4f78109 100644 Binary files a/CAD/.DS_Store and b/Software/.DS_Store differ diff --git a/tig-stack b/tig-stack deleted file mode 160000 index a0f3d0e..0000000 --- a/tig-stack +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a0f3d0edd763ab211ea345604120dc37abefe74b