Main file
This commit is contained in:
		
							
								
								
									
										104
									
								
								Inky-Calendar/modules/inkycal.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								Inky-Calendar/modules/inkycal.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,104 @@ | ||||
| #!/usr/bin/python3 | ||||
| # -*- coding: utf-8 -*- | ||||
| """ | ||||
| Main script of Inky-Calendar software. | ||||
| Copyright by aceisace | ||||
| """ | ||||
| from __future__ import print_function | ||||
| from configuration import * | ||||
| from settings import * | ||||
| import arrow | ||||
| from time import sleep | ||||
| import gc | ||||
| import inkycal_drivers as drivers | ||||
|  | ||||
| import inkycal_rss as rss | ||||
| import inkycal_weather as weather | ||||
| import inkycal_calendar as calendar | ||||
| import inkycal_agenda as agenda | ||||
|  | ||||
|  | ||||
| display = drivers.EPD() | ||||
| skip_calibration = False | ||||
|  | ||||
| """Perepare for execution of main programm""" | ||||
| calibration_countdown = 'initial' | ||||
| image_cleanup() | ||||
|  | ||||
| """Check time and calibrate display if time """ | ||||
| #while True: | ||||
| now = arrow.now(tz=get_tz()) | ||||
| for _ in range(1): | ||||
|    | ||||
|   """------------------Add short info------------------""" | ||||
|   print('Current Date: {0} \nCurrent Time: {1}'.format(now.format( | ||||
|     'D MMM YYYY'), now.format('HH:mm'))) | ||||
|   print('-----------Main programm started now----------') | ||||
|  | ||||
|  | ||||
|  | ||||
|   """------------------Calibration check----------------""" | ||||
|   if skip_calibration != True: | ||||
|     print('Calibration..', end = ' ') | ||||
|     if now.hour in calibration_hours: | ||||
|       if calibration_countdown == 'initial': | ||||
|         print('required. Performing calibration now.') | ||||
|         calibration_countdown = 0 | ||||
|         display.calibrate_display(3) | ||||
|       else: | ||||
|         if calibration_countdown % (60 // int(update_interval)) == 0: | ||||
|           display.calibrate_display(3) | ||||
|           calibration_countdown = 0 | ||||
|     else: | ||||
|       print('not required. Continuing...') | ||||
|   else: | ||||
|     print('Calibration skipped!. Please note that not calibrating epaper', | ||||
|           'displays causes ghosting') | ||||
|  | ||||
|   """----------------Generating and assembling images------""" | ||||
|   if top_section == 'Weather': | ||||
|     weather.main() | ||||
|     weather_image = Image.open(image_path + 'weather.png') | ||||
|     image.paste(weather_image, (0, 0)) | ||||
|  | ||||
|   if middle_section == 'Calendar': | ||||
|     calendar.main() | ||||
|     calendar_image = Image.open(image_path + 'calendar.png') | ||||
|     image.paste(calendar_image, (0, middle_section_offset)) | ||||
|      | ||||
|   if middle_section == 'Agenda': | ||||
|     agenda.main() | ||||
|     agenda_image = Image.open(image_path + 'agenda.png') | ||||
|     image.paste(agenda_image, (0, middle_section_offset)) | ||||
|      | ||||
|   if bottom_section == 'RSS': | ||||
|     rss.main() | ||||
|     rss_image = Image.open(image_path + 'rss.png') | ||||
|     image.paste(rss_image, (0, bottom_section_offset)) | ||||
|  | ||||
|   image.save(image_path + 'canvas.png') | ||||
|  | ||||
|   """---------Refreshing E-Paper with newly created image-----------""" | ||||
|   display.show_image(image) | ||||
|  | ||||
|   """--------------Post processing after main loop-----------------""" | ||||
|   """Collect some garbage to free up some resources""" | ||||
|   gc.collect() | ||||
|  | ||||
|   """Adjust calibration countdowns""" | ||||
|   if calibration_countdown == 'initial': | ||||
|       calibration_countdown = 0 | ||||
|   calibration_countdown += 1 | ||||
|  | ||||
|   """Calculate duration until next display refresh""" | ||||
|   for _ in range(1): | ||||
|     update_timings = [(60 - int(update_interval)*updates) for updates in | ||||
|       range(60//int(update_interval))] | ||||
|  | ||||
|     minutes = [i - now.minute for i in update_timings if i >= now.minute] | ||||
|     refresh_countdown = minutes[0]*60 + (60 - now.second) | ||||
|  | ||||
|     print('{0} Minutes left until next refresh'.format(minutes[0])) | ||||
|      | ||||
|     del update_timings, minutes, image | ||||
|     #sleep(refresh_countdown) | ||||
		Reference in New Issue
	
	Block a user