63 lines
		
	
	
		
			913 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			913 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "factory.h"
 | |
| 
 | |
| 
 | |
| //the factory object containing all objects of our system
 | |
| static Factory theFactory;
 | |
| 
 | |
| 
 | |
| //all the getters
 | |
| LED* l()
 | |
| {
 | |
|     return &theFactory.l_;
 | |
| }
 | |
| 
 | |
| Button* b()
 | |
| {
 | |
|     return &theFactory.b_;
 | |
| }
 | |
| 
 | |
| ButtonSM* bsm()
 | |
| {
 | |
|     return &theFactory.bsm_;
 | |
| }
 | |
| 
 | |
| BLControl* blc()
 | |
| {
 | |
|     return &theFactory.blc_;
 | |
| }
 | |
| 
 | |
| 
 | |
| //initialize all objects
 | |
| void Factory_init()
 | |
| {
 | |
|     LED_init(l(),LID);
 | |
|     LED_initHW(l());
 | |
|     Button_init(b(),BID, true);
 | |
|     Button_initHW(b());  
 | |
|     ButtonSM_init(bsm(),b());    
 | |
|     BLControl_init(blc());
 | |
|     
 | |
|     CANINTERFACE_init();
 | |
|     
 | |
| ;
 | |
|     
 | |
| }
 | |
| 
 | |
| void foo(uint32_t a, uint32_t b){
 | |
|     
 | |
| }
 | |
| 
 | |
| //connect objects if required
 | |
| void Factory_build() {
 | |
|     ButtonSM_setObserver(bsm(), blc(), &BLControl_onButton);
 | |
|     
 | |
|     ECAN_SetRXBnInterruptHandler(CANINTERFACE_newMsg);
 | |
|     CANINTERFACE_onProcessCan(foo);
 | |
| }
 | |
| 
 | |
| //start all state machines
 | |
| void Factory_start()
 | |
| {
 | |
|     ButtonSM_startBehaviour(bsm());
 | |
| }
 |