add Steering
This commit is contained in:
parent
473d71ff6b
commit
f45fd4ae7e
@ -232,9 +232,19 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, bool rtr, uint32_t data){
|
||||
|
||||
}
|
||||
|
||||
if(idMsg == 0x3) { // STEERING_READY
|
||||
// - - - -
|
||||
|
||||
}
|
||||
|
||||
if(idMsg == 0xF) { // STEERING_ALIVE
|
||||
// statusH statusL - -
|
||||
// TODO steering say ALIVE with his status
|
||||
ALIVE_ISALIVE(&steering()->myChecker);
|
||||
if(steering()->myChecker.state == STST_DEAD) {
|
||||
KART_CST.STEERING_ALIVE_TIME = MEM_read_1_byte(MEMADD_STEERING_ALIVE_TIME);
|
||||
ALIVE_emitResurrect(&steering()->myChecker, 0, 0);
|
||||
ALIVE_emitBorn(&steering()->myChecker, 0, 0);
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
|
@ -12,19 +12,6 @@
|
||||
#include <stdbool.h> // usage of boolean types
|
||||
#include "../mcc_generated_files/mcc.h"
|
||||
|
||||
/*
|
||||
S R M
|
||||
1 0 F CONTROL_ALIVE - - - -
|
||||
1 2 0 JOY_SETUP Mode Param1 Param2 aliveTime
|
||||
1 3 0 DISPLAY_SETUP reset - - aliveTime
|
||||
1 3 2 DISPLAY_SPEED valH valL - -
|
||||
1 3 3 DISPLAY_DIRECTION direction - - -
|
||||
1 4 0 DRIVE_SETUP Reset/init speedTime stopTime aliveTime
|
||||
1 4 1 DRIVE_POWER valH valL - -
|
||||
1 5 0 STEERING_SETUP Reset/init homing setCenter aliveTime
|
||||
1 5 1 STEERING_SET valHH valH valL valLL
|
||||
1 6 0 SETUP_CONTROL batteryVoltTime batteryCurrentTime batteryEnergyTime aliveTime
|
||||
*/
|
||||
|
||||
/**
|
||||
* Process an incoming message
|
||||
|
@ -46,6 +46,10 @@ DRIVE* drive(){
|
||||
return &theFactory.drive_;
|
||||
}
|
||||
|
||||
STEERING* steering(){
|
||||
return &theFactory.steering_;
|
||||
}
|
||||
|
||||
|
||||
//initialize all objects
|
||||
void Factory_init() {
|
||||
@ -80,6 +84,7 @@ void Factory_init() {
|
||||
|
||||
ALIVE_init(ALjoy());
|
||||
DRIVE_init(drive());
|
||||
STEERING_init(steering());
|
||||
}
|
||||
|
||||
//connect objects if required
|
||||
@ -100,6 +105,9 @@ void Factory_build() {
|
||||
DRIVE_onRun(drive(), LED_on, l2());
|
||||
DRIVE_onDead(drive(), LED_off, l2());
|
||||
|
||||
STEERING_onRun(drive(), LED_on, l3());
|
||||
STEERING_onDead(drive(), LED_off, l3());
|
||||
|
||||
}
|
||||
|
||||
//start all state machines
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include "../can_message.h"
|
||||
#include "../eeprom.h"
|
||||
#include "../drive.h"
|
||||
#include "../steering.h"
|
||||
#include "../../board/led/led.h"
|
||||
#include "../../board/button/button.h"
|
||||
#include "../../middleware/alive.h"
|
||||
@ -38,6 +39,7 @@ typedef struct {
|
||||
ALIVE ALcontroller_;
|
||||
ALIVE ALjoy_;
|
||||
DRIVE drive_;
|
||||
STEERING steering_;
|
||||
|
||||
} Factory;
|
||||
|
||||
@ -61,6 +63,7 @@ BLINKER* b1();
|
||||
ALIVE* ALcontroller();
|
||||
ALIVE* ALjoy();
|
||||
DRIVE* drive();
|
||||
STEERING* steering();
|
||||
|
||||
|
||||
#endif
|
164
306-controller_interface.X/app/steering.c
Normal file
164
306-controller_interface.X/app/steering.c
Normal file
@ -0,0 +1,164 @@
|
||||
/**
|
||||
* @author Rémi Heredero
|
||||
* @version 1.0.0
|
||||
* @date September 2023
|
||||
* @file steering.c
|
||||
*/
|
||||
|
||||
#include "steering.h"
|
||||
#include "can_message.h"
|
||||
#include "car.h"
|
||||
//#include "drive.h"
|
||||
|
||||
void STEERING_init(STEERING* me){
|
||||
me->state = STST_INIT;
|
||||
ALIVE_init(&me->myChecker);
|
||||
ALIVE_onSetup(&me->myChecker, CM_STEERING_SETUP, &ALWAYSFALSE);
|
||||
ALIVE_onWait(&me->myChecker, STEERING_emitStart, me);
|
||||
ALIVE_onDead(&me->myChecker, STEERING_emitStop, me);
|
||||
ALIVE_onBorn(&me->myChecker, STEERING_emitResurrect, me);
|
||||
me->wait.f = NULL;
|
||||
me->run.f = NULL;
|
||||
me->dead.f = NULL;
|
||||
}
|
||||
|
||||
void STEERING_startBehaviour(STEERING* me){
|
||||
POST(me, &STEERING_processEvent, evSTinit, 100, 0);
|
||||
}
|
||||
|
||||
bool STEERING_processEvent(Event* ev) {
|
||||
bool processed = false;
|
||||
STEERING* me = (STEERING*)Event_getTarget(ev);
|
||||
STEERING_STATES oldState = me->state;
|
||||
evIDT evid = Event_getId(ev);
|
||||
uint64_t data = Event_getData(ev);
|
||||
|
||||
switch (me->state) { // onState
|
||||
case STST_INIT:
|
||||
if (ev->id == evSTinit) {
|
||||
me->state = STST_WAIT;
|
||||
ALIVE_startBehaviourChecker(&me->myChecker); // Start alive checker
|
||||
}
|
||||
break;
|
||||
|
||||
case STST_WAIT:
|
||||
if (ev->id == evSTstart) {
|
||||
me->state = STST_RUN;
|
||||
}
|
||||
ALIVE_setAliveTime(&me->myChecker, KART_CST.STEERING_ALIVE_TIME);
|
||||
ALIVE_emitBorn(&me->myChecker, 100, 0);
|
||||
ALIVE_emitReady(&me->myChecker, 200, 0);
|
||||
break;
|
||||
|
||||
case STST_RUN:
|
||||
if (ev->id == evSTstop) {
|
||||
me->state = STST_DEAD;
|
||||
}
|
||||
|
||||
if (ev->id == evSTpollDir) {
|
||||
//if(drive()->state == STDR_RUN) {
|
||||
CM_STEERING_SET(&eKart.position);
|
||||
//}
|
||||
}
|
||||
break;
|
||||
|
||||
case STST_DEAD:
|
||||
if (ev->id == evSTresurrect) {
|
||||
me->state = STST_WAIT;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if(oldState != me->state){
|
||||
switch (oldState) { // onExit
|
||||
case STST_INIT:
|
||||
break;
|
||||
|
||||
case STST_WAIT:
|
||||
break;
|
||||
|
||||
case STST_RUN:
|
||||
break;
|
||||
|
||||
case STST_DEAD:
|
||||
break;
|
||||
}
|
||||
|
||||
switch (me->state) { // onEntry
|
||||
case STST_INIT:
|
||||
break;
|
||||
|
||||
case STST_WAIT:
|
||||
if (me->wait.f != NULL) {
|
||||
me->wait.f(me->wait.p);
|
||||
}
|
||||
break;
|
||||
|
||||
case STST_RUN:
|
||||
if (me->run.f != NULL) {
|
||||
me->run.f(me->run.p);
|
||||
}
|
||||
break;
|
||||
|
||||
case STST_DEAD:
|
||||
if (me->dead.f != NULL) {
|
||||
me->dead.f(me->dead.p);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
processed = true;
|
||||
}
|
||||
return processed;
|
||||
}
|
||||
|
||||
/*************
|
||||
* Callbacks *
|
||||
*************/
|
||||
|
||||
void STEERING_onWait(STEERING* me, STEERING_CALLBACK_FUNCTION f, void* p) {
|
||||
me->wait.f = f;
|
||||
me->wait.p = p;
|
||||
}
|
||||
|
||||
void STEERING_onRun(STEERING* me, STEERING_CALLBACK_FUNCTION f, void* p) {
|
||||
me->run.f = f;
|
||||
me->run.p = p;
|
||||
}
|
||||
|
||||
void STEERING_onDead(STEERING* me, STEERING_CALLBACK_FUNCTION f, void* p) {
|
||||
me->dead.f = f;
|
||||
me->dead.p = p;
|
||||
}
|
||||
|
||||
/************
|
||||
* EMITTERS *
|
||||
************/
|
||||
|
||||
void STEERING_emitStart(void* p) {
|
||||
STEERING* me = (STEERING*) p;
|
||||
POST(me, &STEERING_processEvent, evSTstart, 0, 0);
|
||||
}
|
||||
|
||||
void STEERING_emitStop(void* p) {
|
||||
STEERING* me = (STEERING*) p;
|
||||
POST(me, &STEERING_processEvent, evSTstop, 0, 0);
|
||||
}
|
||||
|
||||
void STEERING_emitResurrect(void* p) {
|
||||
STEERING* me = (STEERING*) p;
|
||||
POST(me, &STEERING_processEvent, evSTresurrect, 0, 0);
|
||||
}
|
||||
|
||||
void STEERING_emitPollDir(void* p) {
|
||||
STEERING* me = (STEERING*) p;
|
||||
POST(me, &STEERING_processEvent, evSTpollDir, 0, 0);
|
||||
}
|
||||
|
||||
/***********
|
||||
* SETTERS *
|
||||
***********/
|
||||
|
||||
void STEERING_setMyChecker(STEERING* me, ALIVE v) {
|
||||
me->myChecker = v;
|
||||
}
|
124
306-controller_interface.X/app/steering.h
Normal file
124
306-controller_interface.X/app/steering.h
Normal file
@ -0,0 +1,124 @@
|
||||
/**
|
||||
* @author Rémi Heredero
|
||||
* @version 1.0.0
|
||||
* @date September 2023
|
||||
* @file steering.h
|
||||
*/
|
||||
#ifndef STEERING_H
|
||||
#define STEERING_H
|
||||
|
||||
#include "../xf/xf.h"
|
||||
#include "../middleware/alive.h"
|
||||
|
||||
typedef enum {
|
||||
STST_INIT = 110,
|
||||
STST_WAIT,
|
||||
STST_RUN,
|
||||
STST_DEAD
|
||||
} STEERING_STATES;
|
||||
|
||||
typedef enum {
|
||||
evSTinit = 110,
|
||||
evSTstart,
|
||||
evSTstop,
|
||||
evSTresurrect,
|
||||
evSTpollDir
|
||||
} STEERING_EVENTS;
|
||||
|
||||
typedef void (*STEERING_CALLBACK_FUNCTION)(void*);
|
||||
typedef struct {
|
||||
STEERING_CALLBACK_FUNCTION f; // function
|
||||
void* p; // param(s)
|
||||
} STEERING_CALLBACK;
|
||||
|
||||
typedef struct {
|
||||
STEERING_STATES state;
|
||||
ALIVE myChecker;
|
||||
STEERING_CALLBACK wait;
|
||||
STEERING_CALLBACK run;
|
||||
STEERING_CALLBACK dead;
|
||||
} STEERING;
|
||||
|
||||
/**
|
||||
* Initialize the STEERING
|
||||
* @param me the STEERING itself
|
||||
*/
|
||||
void STEERING_init(STEERING* me);
|
||||
|
||||
/**
|
||||
* Start the STEERING state machine
|
||||
* @param me the STEERING itself
|
||||
*/
|
||||
void STEERING_startBehaviour(STEERING* me);
|
||||
|
||||
/**
|
||||
* Process the event
|
||||
* @param ev the event to process
|
||||
* @return true if the event is processed
|
||||
*/
|
||||
bool STEERING_processEvent(Event* ev);
|
||||
|
||||
/*************
|
||||
* Callbacks *
|
||||
*************/
|
||||
|
||||
/**
|
||||
* Set the callback function to call when the STEERING is entering state wait
|
||||
* @param me the STEERING itself
|
||||
* @param f the function to call
|
||||
* @param p the param(s) to pass to the function
|
||||
*/
|
||||
void STEERING_onWait(STEERING* me, STEERING_CALLBACK_FUNCTION f, void* p);
|
||||
|
||||
/**
|
||||
* Set the callback function to call when the STEERING is entering state run
|
||||
* @param me the STEERING itself
|
||||
* @param f the function to call
|
||||
* @param p the param(s) to pass to the function
|
||||
*/
|
||||
void STEERING_onRun(STEERING* me, STEERING_CALLBACK_FUNCTION f, void* p);
|
||||
|
||||
/**
|
||||
* Set the callback function to call when the STEERING is entering state dead
|
||||
* @param me the STEERING itself
|
||||
* @param f the function to call
|
||||
* @param p the param(s) to pass to the function
|
||||
*/
|
||||
void STEERING_onDead(STEERING* me, STEERING_CALLBACK_FUNCTION f, void* p);
|
||||
|
||||
/************
|
||||
* EMITTERS *
|
||||
************/
|
||||
|
||||
/**
|
||||
* Emit the start event
|
||||
* @param p the STEERING itself
|
||||
*/
|
||||
void STEERING_emitStart(void* p);
|
||||
|
||||
/**
|
||||
* Emit the stop event
|
||||
* @param p the STEERING itself
|
||||
*/
|
||||
void STEERING_emitStop(void* p);
|
||||
|
||||
/**
|
||||
* Emit the resurrect event
|
||||
* @param p the STEERING itself
|
||||
*/
|
||||
void STEERING_emitResurrect(void* p);
|
||||
|
||||
/**
|
||||
* Emit the pollDir event
|
||||
* @param me the STEERING itself
|
||||
* @param t time to wait in ms before triggering event
|
||||
* @param data data to put on the event for XF
|
||||
*/
|
||||
void STEERING_emitPollDir(void* p);
|
||||
|
||||
/***********
|
||||
* SETTERS *
|
||||
***********/
|
||||
|
||||
|
||||
#endif
|
@ -51,17 +51,17 @@ OBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE}
|
||||
DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}
|
||||
|
||||
# Source Files Quoted if spaced
|
||||
SOURCEFILES_QUOTED_IF_SPACED=app/factory/factory.c app/can_message.c app/kartculator.c app/eeprom.c app/drive.c board/led/led.c mcc_generated_files/interrupt_manager.c mcc_generated_files/tmr0.c mcc_generated_files/pin_manager.c mcc_generated_files/device_config.c mcc_generated_files/mcc.c mcc_generated_files/ecan.c mcc_generated_files/memory.c middleware/can_interface.c middleware/alive.c middleware/blinker.c xf/event.c xf/xf.c main.c
|
||||
SOURCEFILES_QUOTED_IF_SPACED=app/factory/factory.c app/can_message.c app/kartculator.c app/eeprom.c app/drive.c board/led/led.c mcc_generated_files/interrupt_manager.c mcc_generated_files/tmr0.c mcc_generated_files/pin_manager.c mcc_generated_files/device_config.c mcc_generated_files/mcc.c mcc_generated_files/ecan.c mcc_generated_files/memory.c middleware/can_interface.c middleware/alive.c middleware/blinker.c xf/event.c xf/xf.c main.c app/steering.c
|
||||
|
||||
# Object Files Quoted if spaced
|
||||
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/app/factory/factory.p1 ${OBJECTDIR}/app/can_message.p1 ${OBJECTDIR}/app/kartculator.p1 ${OBJECTDIR}/app/eeprom.p1 ${OBJECTDIR}/app/drive.p1 ${OBJECTDIR}/board/led/led.p1 ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1 ${OBJECTDIR}/mcc_generated_files/tmr0.p1 ${OBJECTDIR}/mcc_generated_files/pin_manager.p1 ${OBJECTDIR}/mcc_generated_files/device_config.p1 ${OBJECTDIR}/mcc_generated_files/mcc.p1 ${OBJECTDIR}/mcc_generated_files/ecan.p1 ${OBJECTDIR}/mcc_generated_files/memory.p1 ${OBJECTDIR}/middleware/can_interface.p1 ${OBJECTDIR}/middleware/alive.p1 ${OBJECTDIR}/middleware/blinker.p1 ${OBJECTDIR}/xf/event.p1 ${OBJECTDIR}/xf/xf.p1 ${OBJECTDIR}/main.p1
|
||||
POSSIBLE_DEPFILES=${OBJECTDIR}/app/factory/factory.p1.d ${OBJECTDIR}/app/can_message.p1.d ${OBJECTDIR}/app/kartculator.p1.d ${OBJECTDIR}/app/eeprom.p1.d ${OBJECTDIR}/app/drive.p1.d ${OBJECTDIR}/board/led/led.p1.d ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1.d ${OBJECTDIR}/mcc_generated_files/tmr0.p1.d ${OBJECTDIR}/mcc_generated_files/pin_manager.p1.d ${OBJECTDIR}/mcc_generated_files/device_config.p1.d ${OBJECTDIR}/mcc_generated_files/mcc.p1.d ${OBJECTDIR}/mcc_generated_files/ecan.p1.d ${OBJECTDIR}/mcc_generated_files/memory.p1.d ${OBJECTDIR}/middleware/can_interface.p1.d ${OBJECTDIR}/middleware/alive.p1.d ${OBJECTDIR}/middleware/blinker.p1.d ${OBJECTDIR}/xf/event.p1.d ${OBJECTDIR}/xf/xf.p1.d ${OBJECTDIR}/main.p1.d
|
||||
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/app/factory/factory.p1 ${OBJECTDIR}/app/can_message.p1 ${OBJECTDIR}/app/kartculator.p1 ${OBJECTDIR}/app/eeprom.p1 ${OBJECTDIR}/app/drive.p1 ${OBJECTDIR}/board/led/led.p1 ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1 ${OBJECTDIR}/mcc_generated_files/tmr0.p1 ${OBJECTDIR}/mcc_generated_files/pin_manager.p1 ${OBJECTDIR}/mcc_generated_files/device_config.p1 ${OBJECTDIR}/mcc_generated_files/mcc.p1 ${OBJECTDIR}/mcc_generated_files/ecan.p1 ${OBJECTDIR}/mcc_generated_files/memory.p1 ${OBJECTDIR}/middleware/can_interface.p1 ${OBJECTDIR}/middleware/alive.p1 ${OBJECTDIR}/middleware/blinker.p1 ${OBJECTDIR}/xf/event.p1 ${OBJECTDIR}/xf/xf.p1 ${OBJECTDIR}/main.p1 ${OBJECTDIR}/app/steering.p1
|
||||
POSSIBLE_DEPFILES=${OBJECTDIR}/app/factory/factory.p1.d ${OBJECTDIR}/app/can_message.p1.d ${OBJECTDIR}/app/kartculator.p1.d ${OBJECTDIR}/app/eeprom.p1.d ${OBJECTDIR}/app/drive.p1.d ${OBJECTDIR}/board/led/led.p1.d ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1.d ${OBJECTDIR}/mcc_generated_files/tmr0.p1.d ${OBJECTDIR}/mcc_generated_files/pin_manager.p1.d ${OBJECTDIR}/mcc_generated_files/device_config.p1.d ${OBJECTDIR}/mcc_generated_files/mcc.p1.d ${OBJECTDIR}/mcc_generated_files/ecan.p1.d ${OBJECTDIR}/mcc_generated_files/memory.p1.d ${OBJECTDIR}/middleware/can_interface.p1.d ${OBJECTDIR}/middleware/alive.p1.d ${OBJECTDIR}/middleware/blinker.p1.d ${OBJECTDIR}/xf/event.p1.d ${OBJECTDIR}/xf/xf.p1.d ${OBJECTDIR}/main.p1.d ${OBJECTDIR}/app/steering.p1.d
|
||||
|
||||
# Object Files
|
||||
OBJECTFILES=${OBJECTDIR}/app/factory/factory.p1 ${OBJECTDIR}/app/can_message.p1 ${OBJECTDIR}/app/kartculator.p1 ${OBJECTDIR}/app/eeprom.p1 ${OBJECTDIR}/app/drive.p1 ${OBJECTDIR}/board/led/led.p1 ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1 ${OBJECTDIR}/mcc_generated_files/tmr0.p1 ${OBJECTDIR}/mcc_generated_files/pin_manager.p1 ${OBJECTDIR}/mcc_generated_files/device_config.p1 ${OBJECTDIR}/mcc_generated_files/mcc.p1 ${OBJECTDIR}/mcc_generated_files/ecan.p1 ${OBJECTDIR}/mcc_generated_files/memory.p1 ${OBJECTDIR}/middleware/can_interface.p1 ${OBJECTDIR}/middleware/alive.p1 ${OBJECTDIR}/middleware/blinker.p1 ${OBJECTDIR}/xf/event.p1 ${OBJECTDIR}/xf/xf.p1 ${OBJECTDIR}/main.p1
|
||||
OBJECTFILES=${OBJECTDIR}/app/factory/factory.p1 ${OBJECTDIR}/app/can_message.p1 ${OBJECTDIR}/app/kartculator.p1 ${OBJECTDIR}/app/eeprom.p1 ${OBJECTDIR}/app/drive.p1 ${OBJECTDIR}/board/led/led.p1 ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1 ${OBJECTDIR}/mcc_generated_files/tmr0.p1 ${OBJECTDIR}/mcc_generated_files/pin_manager.p1 ${OBJECTDIR}/mcc_generated_files/device_config.p1 ${OBJECTDIR}/mcc_generated_files/mcc.p1 ${OBJECTDIR}/mcc_generated_files/ecan.p1 ${OBJECTDIR}/mcc_generated_files/memory.p1 ${OBJECTDIR}/middleware/can_interface.p1 ${OBJECTDIR}/middleware/alive.p1 ${OBJECTDIR}/middleware/blinker.p1 ${OBJECTDIR}/xf/event.p1 ${OBJECTDIR}/xf/xf.p1 ${OBJECTDIR}/main.p1 ${OBJECTDIR}/app/steering.p1
|
||||
|
||||
# Source Files
|
||||
SOURCEFILES=app/factory/factory.c app/can_message.c app/kartculator.c app/eeprom.c app/drive.c board/led/led.c mcc_generated_files/interrupt_manager.c mcc_generated_files/tmr0.c mcc_generated_files/pin_manager.c mcc_generated_files/device_config.c mcc_generated_files/mcc.c mcc_generated_files/ecan.c mcc_generated_files/memory.c middleware/can_interface.c middleware/alive.c middleware/blinker.c xf/event.c xf/xf.c main.c
|
||||
SOURCEFILES=app/factory/factory.c app/can_message.c app/kartculator.c app/eeprom.c app/drive.c board/led/led.c mcc_generated_files/interrupt_manager.c mcc_generated_files/tmr0.c mcc_generated_files/pin_manager.c mcc_generated_files/device_config.c mcc_generated_files/mcc.c mcc_generated_files/ecan.c mcc_generated_files/memory.c middleware/can_interface.c middleware/alive.c middleware/blinker.c xf/event.c xf/xf.c main.c app/steering.c
|
||||
|
||||
|
||||
|
||||
@ -240,6 +240,14 @@ ${OBJECTDIR}/main.p1: main.c nbproject/Makefile-${CND_CONF}.mk
|
||||
@-${MV} ${OBJECTDIR}/main.d ${OBJECTDIR}/main.p1.d
|
||||
@${FIXDEPS} ${OBJECTDIR}/main.p1.d $(SILENT) -rsi ${MP_CC_DIR}../
|
||||
|
||||
${OBJECTDIR}/app/steering.p1: app/steering.c nbproject/Makefile-${CND_CONF}.mk
|
||||
@${MKDIR} "${OBJECTDIR}/app"
|
||||
@${RM} ${OBJECTDIR}/app/steering.p1.d
|
||||
@${RM} ${OBJECTDIR}/app/steering.p1
|
||||
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -D__DEBUG=1 -mdebugger=pickit3 -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o ${OBJECTDIR}/app/steering.p1 app/steering.c
|
||||
@-${MV} ${OBJECTDIR}/app/steering.d ${OBJECTDIR}/app/steering.p1.d
|
||||
@${FIXDEPS} ${OBJECTDIR}/app/steering.p1.d $(SILENT) -rsi ${MP_CC_DIR}../
|
||||
|
||||
else
|
||||
${OBJECTDIR}/app/factory/factory.p1: app/factory/factory.c nbproject/Makefile-${CND_CONF}.mk
|
||||
@${MKDIR} "${OBJECTDIR}/app/factory"
|
||||
@ -393,6 +401,14 @@ ${OBJECTDIR}/main.p1: main.c nbproject/Makefile-${CND_CONF}.mk
|
||||
@-${MV} ${OBJECTDIR}/main.d ${OBJECTDIR}/main.p1.d
|
||||
@${FIXDEPS} ${OBJECTDIR}/main.p1.d $(SILENT) -rsi ${MP_CC_DIR}../
|
||||
|
||||
${OBJECTDIR}/app/steering.p1: app/steering.c nbproject/Makefile-${CND_CONF}.mk
|
||||
@${MKDIR} "${OBJECTDIR}/app"
|
||||
@${RM} ${OBJECTDIR}/app/steering.p1.d
|
||||
@${RM} ${OBJECTDIR}/app/steering.p1
|
||||
${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c -mdfp="${DFP_DIR}/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF) -msummary=-psect,-class,+mem,-hex,-file -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD) -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o ${OBJECTDIR}/app/steering.p1 app/steering.c
|
||||
@-${MV} ${OBJECTDIR}/app/steering.d ${OBJECTDIR}/app/steering.p1.d
|
||||
@${FIXDEPS} ${OBJECTDIR}/app/steering.p1.d $(SILENT) -rsi ${MP_CC_DIR}../
|
||||
|
||||
endif
|
||||
|
||||
# ------------------------------------------------------------------------------------
|
||||
|
@ -11,6 +11,7 @@
|
||||
<itemPath>app/kartculator.h</itemPath>
|
||||
<itemPath>app/eeprom.h</itemPath>
|
||||
<itemPath>app/drive.h</itemPath>
|
||||
<itemPath>app/steering.h</itemPath>
|
||||
</logicalFolder>
|
||||
<logicalFolder name="board" displayName="board" projectFiles="true">
|
||||
<itemPath>board/led/led.h</itemPath>
|
||||
@ -50,6 +51,7 @@
|
||||
<itemPath>app/kartculator.c</itemPath>
|
||||
<itemPath>app/eeprom.c</itemPath>
|
||||
<itemPath>app/drive.c</itemPath>
|
||||
<itemPath>app/steering.c</itemPath>
|
||||
</logicalFolder>
|
||||
<logicalFolder name="board" displayName="board" projectFiles="true">
|
||||
<itemPath>board/led/led.c</itemPath>
|
||||
|
124
UML/steering.uxf
Normal file
124
UML/steering.uxf
Normal file
@ -0,0 +1,124 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<diagram program="umlet" version="15.0.0">
|
||||
<zoom_level>15</zoom_level>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>660</x>
|
||||
<y>90</y>
|
||||
<w>210</w>
|
||||
<h>120</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=->
|
||||
evInit
|
||||
/startAliveChecker
|
||||
</panel_attributes>
|
||||
<additional_attributes>10.0;10.0;10.0;60.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLSpecialState</id>
|
||||
<coordinates>
|
||||
<x>660</x>
|
||||
<y>75</y>
|
||||
<w>30</w>
|
||||
<h>30</h>
|
||||
</coordinates>
|
||||
<panel_attributes>type=initial</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLState</id>
|
||||
<coordinates>
|
||||
<x>540</x>
|
||||
<y>405</y>
|
||||
<w>270</w>
|
||||
<h>105</h>
|
||||
</coordinates>
|
||||
<panel_attributes>RUN
|
||||
--
|
||||
/entry: LED ON
|
||||
--
|
||||
emitPollDirEv</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLState</id>
|
||||
<coordinates>
|
||||
<x>480</x>
|
||||
<y>180</y>
|
||||
<w>390</w>
|
||||
<h>135</h>
|
||||
</coordinates>
|
||||
<panel_attributes>WAIT
|
||||
--
|
||||
ALIVE_emitBorn(ALsteering(), 0, 0);
|
||||
ALIVE_emitReady(ALsteering(), 100, 0);
|
||||
setAliveTime</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>660</x>
|
||||
<y>300</y>
|
||||
<w>120</w>
|
||||
<h>135</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=->
|
||||
m1=evStart\n(onWait)
|
||||
</panel_attributes>
|
||||
<additional_attributes>10.0;10.0;10.0;70.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>735</x>
|
||||
<y>450</y>
|
||||
<w>195</w>
|
||||
<h>180</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=->
|
||||
m1= evPollDir\n/sendDir
|
||||
</panel_attributes>
|
||||
<additional_attributes>10.0;40.0;10.0;100.0;110.0;100.0;110.0;10.0;50.0;10.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>390</x>
|
||||
<y>240</y>
|
||||
<w>345</w>
|
||||
<h>555</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=->
|
||||
m1= evResurrect\n(onBorn)
|
||||
</panel_attributes>
|
||||
<additional_attributes>130.0;300.0;130.0;350.0;10.0;350.0;10.0;10.0;60.0;10.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLState</id>
|
||||
<coordinates>
|
||||
<x>450</x>
|
||||
<y>600</y>
|
||||
<w>270</w>
|
||||
<h>90</h>
|
||||
</coordinates>
|
||||
<panel_attributes>DEAD
|
||||
--
|
||||
/entry: LED OFF</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>570</x>
|
||||
<y>495</y>
|
||||
<w>135</w>
|
||||
<h>135</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=->
|
||||
m1=evStop\n(onDead)
|
||||
</panel_attributes>
|
||||
<additional_attributes>10.0;10.0;10.0;70.0</additional_attributes>
|
||||
</element>
|
||||
</diagram>
|
Reference in New Issue
Block a user