professional diaplay update

This commit is contained in:
Neythen 2021-08-03 19:44:16 +01:00
parent 5867b862c6
commit 768cfa72d0
14 changed files with 119 additions and 13 deletions

View File

@ -1 +0,0 @@
{"stocks": "03/08/2021 13:14:11", "crypto": "03/08/2021 13:14:13", "news": "03/08/2021 13:14:15", "weather": "03/08/2021 13:14:14", "forex": "03/08/2021 19:14:18", "sports": "03/08/2021 13:14:16"}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 B

View File

@ -163,11 +163,7 @@ class StockTicker():
time.sleep(self.delay) time.sleep(self.delay)
kill = self.checkKilled() kill = self.checkKilled()
if kill: break if kill: break
return kill return kill
@ -383,7 +379,7 @@ class StockTicker():
update_process.join() update_process.join()
i+=1 i+=1
def scrollMultiple(self, animation = 'down'): def scrollMultiple(self, animation = 'down'):
# scrolls trhough all functions with animation. Updates functions and remakes images when each function not being dispplayed # scrolls trhough all functions with animation. Updates functions and remakes images when each function not being dispplayed
@ -1935,8 +1931,119 @@ class StockTicker():
if kill: if kill:
break break
def scrollProfessionalAnimated(self, options, animation = 'on'):
# scrolls trhough all functions with animation. Updates functions and remakes images when each function not being dispplayed
print(options[0:2])
self.updateMultiple(options[0:2])
kill = False
i1 = 0 # keep track of which image we are displaying
i2 = 1 # keep track of which image we are displaying
self.double_buffer = self.matrix.CreateFrameCanvas()
update_process = Process(target = self.updateMultiple, args = ([options[(max(i1,i2)+1) % len(options)]],))
update_process.start()
image1 = self.openImage('./display_images/' + options[i1 % len(options)] +'.ppm')
image1 = image1.convert('RGB')
print(options[i2 % len(options)])
image2 = self.openImage('./display_images/' + options[i2 % len(options)] +'.ppm')
image2 = image2.convert('RGB')
offset_x1 = 0
offset_x2 = 0
offset_y1 = -16
offset_y2 = 32
frame_skip = int((1/15)/self.delay) #controls how fast gifs run
self.frame = 0
img_width1, img_height1 = image1.size
img_width2, img_height2 = image2.size
kill = False
delay_t1 = 0.02
delay_t2 = 0.025
update_t1 = time.time()
update_t2 = time.time()
while True:
if offset_x1 < -(img_width1+1):
i1 = max(i1, i2) + 1
offset_x1 = 0
offset_y1 = -16
update_process.join()
update_process = Process(target = self.updateMultiple, args = ([options[(max(i1,i2)+1) % len(options)]],))
update_process.start()
image1 = self.openImage('./display_images/' + options[i1 % len(options)] +'.ppm')
image1 = image1.convert('RGB')
img_width1, img_height1 = image1.size
if offset_x2 < -(img_width2+1):
i2 = max(i1, i2) + 1
offset_x2 = 0
offset_y2 = 32
update_process.join()
update_process = Process(target = self.updateMultiple, args = ([options[(max(i1,i2)+1) % len(options)]],))
update_process.start()
image2 = self.openImage('./display_images/' + options[i2 % len(options)] +'.ppm')
image2 = image2.convert('RGB')
img_width2, img_height2 = image2.size
if time.time() - update_t1 > delay_t1:
update_t1 = time.time()
if offset_y1 < 0:
offset_y1+=1
else:
offset_x1 -= 1
if time.time() - update_t2 > delay_t2:
update_t2 = time.time()
if offset_y2 > 16:
offset_y2-=1
else:
offset_x2 -= 1
if kill: break
#image = image.convert('RGB')
self.double_buffer.SetImage(image1, offset_x1, offset_y1)
self.double_buffer.SetImage(image2, offset_x2, offset_y2)
buff = 0
# remove the ppixels behind the image, to stop trailing
self.double_buffer = self.matrix.SwapOnVSync(self.double_buffer)
for y in range(16):
self.matrix.SetPixel(offset_x1 + img_width1 +1 , y , 0,0,0)
self.matrix.SetPixel(offset_x1 + img_width1 , y , 0,0,0)
for y in range(16,32):
self.matrix.SetPixel(offset_x2 + img_width2 +1 , y , 0,0,0)
self.matrix.SetPixel(offset_x2 + img_width2 , y , 0,0,0)
kill = self.checkKilled()
if kill: break
if kill: break
def process_msg(self, msg): def process_msg(self, msg):
if msg == 'S': # stocks if msg == 'S': # stocks
@ -2007,10 +2114,10 @@ class StockTicker():
self.scrollFunctionsAnimated(userSettings, animation = 'down') self.scrollFunctionsAnimated(userSettings, animation = 'down')
elif msg == 'b': elif msg == 'b':
#userSettings = ['stocks_prof', 'crypto_prof', 'forex_prof', 'today_weather_prof'] userSettings = ['stocks_prof', 'forex_prof', 'crypto_prof', 'today_weather_prof']
#self.scrollFunctionsAnimatedProf(userSettings) self.scrollProfessionalAnimated(userSettings)
self.displayProfessional() #self.displayProfessional()
elif msg == '+': elif msg == '+':
stock_ticker.scrollMultiple() stock_ticker.scrollMultiple()
@ -2031,7 +2138,7 @@ if __name__ == '__main__':
# #
#stock_ticker.process_msg('G')
#stock_ticker.process_msg('G') #stock_ticker.process_msg('G')
#stock_ticker.process_msg('f') #stock_ticker.process_msg('f')
#stock_ticker.process_msg('W') #stock_ticker.process_msg('W')