- All files:
  Modify almost all files to adjust functions and classes to
  work with pointers to objects passed at task creation
  instead of global variables from config.hpp
- Remove/clear config.hpp to get rid of all global variables
- main.cpp
    - Create pointer to all shared (used in multiple tasks) objects in main
- remove evaluatedSwitch button object,
  since joystick library is used to get switch events
- changes HTTP-mode
    - always init http-server (do not enable/disable at mode change)
    - pass url-handle function to init-htpp function
    - add lambda function to pass method of instance for thatMajor Rework all files - Remove global variables, pass pointers to tasks
- All files:
  Modify almost all files to adjust functions and classes to
  work with pointers to objects passed at task creation
  instead of global variables from config.hpp
- Remove/clear config.hpp to get rid of all global variables
- main.cpp
    - Create pointer to all shared (used in multiple tasks) objects in main
- remove evaluatedSwitch button object,
  since joystick library is used to get switch events
- changes HTTP-mode
    - always init http-server (do not enable/disable at mode change)
    - pass url-handle function to init-htpp function
    - add lambda function to pass method of instance for that
NOTES:  - tested on breakoutboard only
        - known issue that slow encoder events are not recognized
        (especially in menu) - slowing down motorctl helps
		
	
			
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| extern "C" {
 | |
| #include <stdio.h>
 | |
| #include <stdlib.h>
 | |
| #include <string.h>
 | |
| #include <stdarg.h>
 | |
| #include "freertos/FreeRTOS.h"
 | |
| #include "freertos/task.h"
 | |
| #include "esp_log.h"
 | |
| 
 | |
| #include "ssd1306.h"
 | |
| #include "font8x8_basic.h"
 | |
| }
 | |
| 
 | |
| 
 | |
| #include "joystick.hpp"
 | |
| #include "control.hpp"
 | |
| #include "speedsensor.hpp"
 | |
| 
 | |
| // struct with variables passed to task from main()
 | |
| typedef struct display_task_parameters_t {
 | |
|     controlledArmchair * control;
 | |
|     evaluatedJoystick * joystick;
 | |
|     QueueHandle_t encoderQueue;
 | |
|     controlledMotor * motorLeft;
 | |
|     controlledMotor * motorRight;
 | |
|     speedSensor * speedLeft;
 | |
|     speedSensor * speedRight;
 | |
|     buzzer_t *buzzer;
 | |
| } display_task_parameters_t;
 | |
| 
 | |
| 
 | |
| //task that inititialized the display, displays welcome message 
 | |
| //and releatedly updates the display with certain content
 | |
| void display_task( void * pvParameters );
 | |
| 
 | |
| //abstracted function for printing one line on the display, using a format string directly
 | |
| //and options: Large-font (3 lines, max 5 digits), or inverted color
 | |
| void displayTextLine(SSD1306_t *display, int line, bool large, bool inverted, const char *format, ...);
 | |
| 
 | |
| //abstracted function for printing a string CENTERED on the display, using a format string
 | |
| //adds spaces left and right to fill the line (if not too long already)
 | |
| void displayTextLineCentered(SSD1306_t *display, int line, bool isLarge, bool inverted, const char *format, ...); |