test drive
This commit is contained in:
		| @@ -208,6 +208,15 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){ | ||||
|              | ||||
|             if(idMsg == 0xF) { // DRIVE_ALIVE | ||||
|                 //  statusH statusL -   - | ||||
|                 ALIVE_ISALIVE(ALdrive()); | ||||
|                 if(ALdrive()->state == STAL_DEAD){ | ||||
|                     KART_CST.DRIVE_SPEED_TIME = MEM_read_1_byte(MEMADD_DRIVE_SPEED_TIME); | ||||
|                     KART_CST.DRIVE_STOP_TIME = MEM_read_1_byte(MEMADD_DRIVE_STOP_TIME); | ||||
|                     KART_CST.DRIVE_ALIVE_TIME = MEM_read_1_byte(MEMADD_DRIVE_ALIVE_TIME); | ||||
|                     ALIVE_setAliveTime(ALdrive(), KART_CST.DRIVE_ALIVE_TIME); | ||||
|                     ALIVE_emitBorn(ALdrive(), 0, 0); | ||||
|                     ALIVE_emitReady(ALdrive(), 100, 0); | ||||
|                 } | ||||
|                 // TODO drive say ALIVE | ||||
|                  | ||||
|             } | ||||
| @@ -324,6 +333,8 @@ void CM_DRIVE_POWER(void* p) { | ||||
|     torque.full = *((int16_t*) p); | ||||
|     tmpData.separate.byte0 = torque.separate.byte1; | ||||
|     tmpData.separate.byte1 = torque.separate.byte0; | ||||
|     tmpData.separate.byte2 = 0; | ||||
|     tmpData.separate.byte3 = 0; | ||||
|     CAN_Send(4, 1, tmpData.full); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -42,6 +42,10 @@ ALIVE* ALjoy(){ | ||||
|     return &theFactory.ALjoy_; | ||||
| } | ||||
|  | ||||
| ALIVE* ALdrive(){ | ||||
|     return &theFactory.ALdrive_; | ||||
| } | ||||
|  | ||||
|  | ||||
| //initialize all objects | ||||
| void Factory_init() { | ||||
| @@ -75,6 +79,20 @@ void Factory_init() { | ||||
|     ALIVE_setAliveTime(ALcontroller(), KART_CST.CONTROL_ALIVE_TIME); | ||||
|      | ||||
|     ALIVE_init(ALjoy()); | ||||
|     ALIVE_init(ALdrive()); | ||||
| } | ||||
|  | ||||
| void foo(void* p){ | ||||
|     static int16_t speed = 0; | ||||
|     static bool up = true; | ||||
|     if(up) { | ||||
|         speed += 3; | ||||
|         if(speed >100) up = false; | ||||
|     } else { | ||||
|         speed -= 3; | ||||
|         if(speed < -100) up = true; | ||||
|     } | ||||
|     CM_DRIVE_POWER(&speed); | ||||
| } | ||||
|  | ||||
| //connect objects if required | ||||
| @@ -84,26 +102,39 @@ void Factory_build() { | ||||
|      | ||||
|     ALIVE_onAlive(ALcontroller(), CM_CONTROLLER_ALIVE, NULL); | ||||
|      | ||||
|     BLINKER_onOn(b1(), LED_on, l6()); | ||||
|     BLINKER_onOff(b1(), LED_off, l6()); | ||||
|     //BLINKER_onOn(b1(), LED_on, l6()); | ||||
|     //BLINKER_onOff(b1(), LED_off, l6()); | ||||
|      | ||||
|     ALIVE_onSetup(ALjoy(), CM_JOY_SETUP, NULL); | ||||
|     ALIVE_setAliveTime(ALjoy(), KART_CST.JOYSTICK_ALIVE_TIME); | ||||
|     ALIVE_onBorn(ALjoy(), LED_on, l1()); | ||||
|     ALIVE_onDead(ALjoy(), LED_off, l1()); | ||||
|      | ||||
|     ALIVE_onSetup(ALdrive(), CM_DRIVE_SETUP, NULL); | ||||
|     ALIVE_setAliveTime(ALdrive(), KART_CST.DRIVE_ALIVE_TIME); | ||||
|     ALIVE_onBorn(ALdrive(), LED_on, l2()); | ||||
|     ALIVE_onDead(ALdrive(), LED_off, l2()); | ||||
|      | ||||
|     BLINKER_setTimeOn(b1(), (KART_CST.DRIVE_STOP_TIME*9)/2); | ||||
|     BLINKER_setTimeOff(b1(), (KART_CST.DRIVE_STOP_TIME*9)/2); | ||||
|     BLINKER_onOn(b1(), foo, NULL); | ||||
| } | ||||
|  | ||||
| //start all state machines | ||||
| void Factory_start() { | ||||
|     CAN_startBehaviour(); | ||||
|      | ||||
|     BLINKER_startBehaviour(b1()); | ||||
|     BLINKER_emitBlink(b1(), 0); | ||||
|          | ||||
|     ALIVE_startBehaviourSender(ALcontroller()); | ||||
|     ALIVE_startBehaviourChecker(ALjoy()); | ||||
|     ALIVE_emitBorn(ALjoy(), 100, 0); | ||||
|     ALIVE_emitReady(ALjoy(), 200, 0); | ||||
|     ALIVE_startBehaviourChecker(ALdrive()); | ||||
|     ALIVE_emitBorn(ALdrive(), 100, 0); | ||||
|     ALIVE_emitReady(ALdrive(), 200, 0); | ||||
|      | ||||
|     BLINKER_startBehaviour(b1()); | ||||
|     BLINKER_emitBlink(b1(), 300); | ||||
|      | ||||
|      | ||||
| } | ||||
|   | ||||
| @@ -36,6 +36,7 @@ typedef struct { | ||||
|      | ||||
|     ALIVE ALcontroller_; | ||||
|     ALIVE ALjoy_; | ||||
|     ALIVE ALdrive_; | ||||
|  | ||||
| } Factory; | ||||
|  | ||||
| @@ -58,6 +59,7 @@ BLINKER* b1(); | ||||
|  | ||||
| ALIVE* ALcontroller(); | ||||
| ALIVE* ALjoy(); | ||||
| ALIVE* ALdrive(); | ||||
|  | ||||
|  | ||||
| #endif | ||||
| @@ -35,11 +35,11 @@ void MEM_init(){ | ||||
|         KART_CST.JOYSTICK_PARAM2         =   1; | ||||
|         KART_CST.JOYSTICK_ALIVE_TIME     =   25; | ||||
|          | ||||
|         KART_CST.DISPLAY_ALIVE_TIME      =   100; | ||||
|         KART_CST.DISPLAY_ALIVE_TIME      =  100; | ||||
|          | ||||
|         KART_CST.DRIVE_SPEED_TIME        =   5; | ||||
|         KART_CST.DRIVE_STOP_TIME         =   20; | ||||
|         KART_CST.DRIVE_ALIVE_TIME        =   10; | ||||
|         KART_CST.DRIVE_SPEED_TIME        =   20; | ||||
|         KART_CST.DRIVE_STOP_TIME         =   10; | ||||
|         KART_CST.DRIVE_ALIVE_TIME        =   25; | ||||
|          | ||||
|         KART_CST.STEERING_ALIVE_TIME     =  100; | ||||
|          | ||||
|   | ||||
		Reference in New Issue
	
	Block a user