diff --git a/robot_cdt/Statechart.ysc b/robot_cdt/Statechart.ysc index f51085a..c2ad2c7 100644 --- a/robot_cdt/Statechart.ysc +++ b/robot_cdt/Statechart.ysc @@ -1,41 +1,59 @@ - + - - - - + + + + - - + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + - - + + - - - - - + + @@ -46,171 +64,268 @@ - - - - + + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - + + + - - - - - + + + + + - - - - + + + + + + + + - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + - - - - + - - + + - - - - + + + + - - - - - + + + + + - - - + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - + + - - - + + + - + - - + + - - - - + + + + - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - + + + - + @@ -250,7 +365,7 @@ - + @@ -335,5 +450,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/robot_cdt/src-gen/Statechart.c b/robot_cdt/src-gen/Statechart.c index 0271011..922071b 100644 --- a/robot_cdt/src-gen/Statechart.c +++ b/robot_cdt/src-gen/Statechart.c @@ -15,51 +15,68 @@ Implementation of the state machine 'Statechart' #endif /* prototypes of all internal functions */ -static void enact_main_region_on_r1_responding(Statechart* handle); -static void enact_main_region_on_r1_sensor_error(Statechart* handle); -static void enact_main_region_on_r2_pressed(Statechart* handle); -static void exact_main_region_on_r2_pressed(Statechart* handle); -static void enseq_main_region_on_default(Statechart* handle); -static void enseq_main_region_on_r1_responding_default(Statechart* handle); -static void enseq_main_region_on_r1_sensor_error_default(Statechart* handle); -static void enseq_main_region_on_r2_not_pressed_default(Statechart* handle); -static void enseq_main_region_on_r2_pressed_default(Statechart* handle); -static void enseq_main_region_off_default(Statechart* handle); +static void enact_main_region_everything_r1_on_r1_responding(Statechart* handle); +static void enact_main_region_everything_r1_on_r1_sensor_error(Statechart* handle); +static void enact_main_region_everything_r1_on_r2_pressed(Statechart* handle); +static void exact_main_region_everything_r1_on_r2_pressed(Statechart* handle); +static void enseq_main_region_everything_default(Statechart* handle); +static void enseq_main_region_everything_r1_off_default(Statechart* handle); +static void enseq_main_region_everything_r1_on_default(Statechart* handle); +static void enseq_main_region_everything_r1_on_r1_responding_default(Statechart* handle); +static void enseq_main_region_everything_r1_on_r1_sensor_error_default(Statechart* handle); +static void enseq_main_region_everything_r1_on_r2_not_pressed_default(Statechart* handle); +static void enseq_main_region_everything_r1_on_r2_pressed_default(Statechart* handle); +static void enseq_main_region_everything_pollButton_button0_default(Statechart* handle); +static void enseq_main_region_everything_pollButton_button1_default(Statechart* handle); static void enseq_main_region_default(Statechart* handle); -static void enseq_main_region_on_r1_default(Statechart* handle); -static void enseq_main_region_on_r2_default(Statechart* handle); -static void exseq_main_region_on(Statechart* handle); -static void exseq_main_region_on_r1_responding(Statechart* handle); -static void exseq_main_region_on_r1_sensor_error(Statechart* handle); -static void exseq_main_region_on_r2_not_pressed(Statechart* handle); -static void exseq_main_region_on_r2_pressed(Statechart* handle); -static void exseq_main_region_off(Statechart* handle); +static void enseq_main_region_everything_r1_default(Statechart* handle); +static void enseq_main_region_everything_r1_on_r1_default(Statechart* handle); +static void enseq_main_region_everything_r1_on_r2_default(Statechart* handle); +static void enseq_main_region_everything_pollButton_default(Statechart* handle); +static void exseq_main_region_everything_r1_off(Statechart* handle); +static void exseq_main_region_everything_r1_on(Statechart* handle); +static void exseq_main_region_everything_r1_on_r1_responding(Statechart* handle); +static void exseq_main_region_everything_r1_on_r1_sensor_error(Statechart* handle); +static void exseq_main_region_everything_r1_on_r2_not_pressed(Statechart* handle); +static void exseq_main_region_everything_r1_on_r2_pressed(Statechart* handle); +static void exseq_main_region_everything_pollButton_button0(Statechart* handle); +static void exseq_main_region_everything_pollButton_button1(Statechart* handle); static void exseq_main_region(Statechart* handle); -static void exseq_main_region_on_r1(Statechart* handle); -static void exseq_main_region_on_r2(Statechart* handle); -static void react_main_region_on_r1__choice_0(Statechart* handle); -static void react_main_region_on_r1__entry_Default(Statechart* handle); -static void react_main_region_on_r2__entry_Default(Statechart* handle); +static void exseq_main_region_everything_r1_on_r1(Statechart* handle); +static void exseq_main_region_everything_r1_on_r2(Statechart* handle); +static void react_main_region_everything_r1_on_r1__choice_0(Statechart* handle); +static void react_main_region_everything_r1__entry_Default(Statechart* handle); +static void react_main_region_everything_r1_on_r1__entry_Default(Statechart* handle); +static void react_main_region_everything_r1_on_r2__entry_Default(Statechart* handle); +static void react_main_region_everything_pollButton__entry_Default(Statechart* handle); static void react_main_region__entry_Default(Statechart* handle); +/*! The reactions of state off. */ +static sc_integer main_region_everything_r1_off_react(Statechart* handle, const sc_integer transitioned_before); + /*! The reactions of state responding. */ -static sc_integer main_region_on_r1_responding_react(Statechart* handle, const sc_integer transitioned_before); +static sc_integer main_region_everything_r1_on_r1_responding_react(Statechart* handle, const sc_integer transitioned_before); /*! The reactions of state sensor_error. */ -static sc_integer main_region_on_r1_sensor_error_react(Statechart* handle, const sc_integer transitioned_before); +static sc_integer main_region_everything_r1_on_r1_sensor_error_react(Statechart* handle, const sc_integer transitioned_before); /*! The reactions of state not_pressed. */ -static sc_integer main_region_on_r2_not_pressed_react(Statechart* handle, const sc_integer transitioned_before); +static sc_integer main_region_everything_r1_on_r2_not_pressed_react(Statechart* handle, const sc_integer transitioned_before); /*! The reactions of state pressed. */ -static sc_integer main_region_on_r2_pressed_react(Statechart* handle, const sc_integer transitioned_before); +static sc_integer main_region_everything_r1_on_r2_pressed_react(Statechart* handle, const sc_integer transitioned_before); -/*! The reactions of state off. */ -static sc_integer main_region_off_react(Statechart* handle, const sc_integer transitioned_before); +/*! The reactions of state button0. */ +static sc_integer main_region_everything_pollButton_button0_react(Statechart* handle, const sc_integer transitioned_before); + +/*! The reactions of state button1. */ +static sc_integer main_region_everything_pollButton_button1_react(Statechart* handle, const sc_integer transitioned_before); static void clear_in_events(Statechart* handle); +static void clear_internal_events(Statechart* handle); + static void micro_step(Statechart* handle); /*! Performs a 'run to completion' step. */ @@ -99,6 +116,7 @@ void statechart_init(Statechart* handle) clear_in_events(handle); + clear_internal_events(handle); sc_observable_int32_t_init(&handle->iface.setMotorR); sc_observable_int32_t_init(&handle->iface.setMotorL); @@ -107,6 +125,7 @@ void statechart_init(Statechart* handle) statechart_internal_set_speed(handle, 0); handle->isExecuting = bool_false; + statechart_eventqueue_init(&handle->internal_event_queue, handle->internal_buffer, STATECHART_INTERNAL_EVENTQUEUE_BUFFERSIZE); statechart_eventqueue_init(&handle->in_event_queue, handle->in_buffer, STATECHART_IN_EVENTQUEUE_BUFFERSIZE); } @@ -135,7 +154,8 @@ void statechart_exit(Statechart* handle) exseq_main_region(handle); handle->stateConfVector[0] = Statechart_last_state; handle->stateConfVector[1] = Statechart_last_state; - handle->stateConfVectorPosition = 1; + handle->stateConfVector[2] = Statechart_last_state; + handle->stateConfVectorPosition = 2; handle->isExecuting = bool_false; } @@ -184,28 +204,40 @@ sc_boolean statechart_is_state_active(const Statechart* handle, StatechartStates sc_boolean result = bool_false; switch (state) { - case Statechart_main_region_on : - result = (sc_boolean) (handle->stateConfVector[SCVI_STATECHART_MAIN_REGION_ON] >= Statechart_main_region_on - && handle->stateConfVector[SCVI_STATECHART_MAIN_REGION_ON] <= Statechart_main_region_on_r2_pressed); + case Statechart_main_region_everything : + result = (sc_boolean) (handle->stateConfVector[SCVI_STATECHART_MAIN_REGION_EVERYTHING] >= Statechart_main_region_everything + && handle->stateConfVector[SCVI_STATECHART_MAIN_REGION_EVERYTHING] <= Statechart_main_region_everything_pollButton_button1); break; - case Statechart_main_region_on_r1_responding : - result = (sc_boolean) (handle->stateConfVector[SCVI_STATECHART_MAIN_REGION_ON_R1_RESPONDING] == Statechart_main_region_on_r1_responding + case Statechart_main_region_everything_r1_off : + result = (sc_boolean) (handle->stateConfVector[SCVI_STATECHART_MAIN_REGION_EVERYTHING_R1_OFF] == Statechart_main_region_everything_r1_off ); break; - case Statechart_main_region_on_r1_sensor_error : - result = (sc_boolean) (handle->stateConfVector[SCVI_STATECHART_MAIN_REGION_ON_R1_SENSOR_ERROR] == Statechart_main_region_on_r1_sensor_error + case Statechart_main_region_everything_r1_on : + result = (sc_boolean) (handle->stateConfVector[SCVI_STATECHART_MAIN_REGION_EVERYTHING_R1_ON] >= Statechart_main_region_everything_r1_on + && handle->stateConfVector[SCVI_STATECHART_MAIN_REGION_EVERYTHING_R1_ON] <= Statechart_main_region_everything_r1_on_r2_pressed); + break; + case Statechart_main_region_everything_r1_on_r1_responding : + result = (sc_boolean) (handle->stateConfVector[SCVI_STATECHART_MAIN_REGION_EVERYTHING_R1_ON_R1_RESPONDING] == Statechart_main_region_everything_r1_on_r1_responding ); break; - case Statechart_main_region_on_r2_not_pressed : - result = (sc_boolean) (handle->stateConfVector[SCVI_STATECHART_MAIN_REGION_ON_R2_NOT_PRESSED] == Statechart_main_region_on_r2_not_pressed + case Statechart_main_region_everything_r1_on_r1_sensor_error : + result = (sc_boolean) (handle->stateConfVector[SCVI_STATECHART_MAIN_REGION_EVERYTHING_R1_ON_R1_SENSOR_ERROR] == Statechart_main_region_everything_r1_on_r1_sensor_error ); break; - case Statechart_main_region_on_r2_pressed : - result = (sc_boolean) (handle->stateConfVector[SCVI_STATECHART_MAIN_REGION_ON_R2_PRESSED] == Statechart_main_region_on_r2_pressed + case Statechart_main_region_everything_r1_on_r2_not_pressed : + result = (sc_boolean) (handle->stateConfVector[SCVI_STATECHART_MAIN_REGION_EVERYTHING_R1_ON_R2_NOT_PRESSED] == Statechart_main_region_everything_r1_on_r2_not_pressed ); break; - case Statechart_main_region_off : - result = (sc_boolean) (handle->stateConfVector[SCVI_STATECHART_MAIN_REGION_OFF] == Statechart_main_region_off + case Statechart_main_region_everything_r1_on_r2_pressed : + result = (sc_boolean) (handle->stateConfVector[SCVI_STATECHART_MAIN_REGION_EVERYTHING_R1_ON_R2_PRESSED] == Statechart_main_region_everything_r1_on_r2_pressed + ); + break; + case Statechart_main_region_everything_pollButton_button0 : + result = (sc_boolean) (handle->stateConfVector[SCVI_STATECHART_MAIN_REGION_EVERYTHING_POLLBUTTON_BUTTON0] == Statechart_main_region_everything_pollButton_button0 + ); + break; + case Statechart_main_region_everything_pollButton_button1 : + result = (sc_boolean) (handle->stateConfVector[SCVI_STATECHART_MAIN_REGION_EVERYTHING_POLLBUTTON_BUTTON1] == Statechart_main_region_everything_pollButton_button1 ); break; default: @@ -218,9 +250,14 @@ sc_boolean statechart_is_state_active(const Statechart* handle, StatechartStates static void clear_in_events(Statechart* handle) { handle->iface.sensor_raised = bool_false; - handle->iface.buttonPressed_raised = bool_false; - handle->iface.buttonReleased_raised = bool_false; - handle->timeEvents.statechart_main_region_on_r2_pressed_tev0_raised = bool_false; + handle->iface.buttonState_raised = bool_false; + handle->timeEvents.statechart_main_region_everything_r1_on_r2_pressed_tev0_raised = bool_false; +} + +static void clear_internal_events(Statechart* handle) +{ + handle->internal.buttonPressed_raised = bool_false; + handle->internal.buttonReleased_raised = bool_false; } static void micro_step(Statechart* handle) @@ -229,19 +266,19 @@ static void micro_step(Statechart* handle) handle->stateConfVectorPosition = 0; switch(handle->stateConfVector[ 0 ]) { - case Statechart_main_region_on_r1_responding : + case Statechart_main_region_everything_r1_off : { - transitioned = main_region_on_r1_responding_react(handle,transitioned); + transitioned = main_region_everything_r1_off_react(handle,transitioned); break; } - case Statechart_main_region_on_r1_sensor_error : + case Statechart_main_region_everything_r1_on_r1_responding : { - transitioned = main_region_on_r1_sensor_error_react(handle,transitioned); + transitioned = main_region_everything_r1_on_r1_responding_react(handle,transitioned); break; } - case Statechart_main_region_off : + case Statechart_main_region_everything_r1_on_r1_sensor_error : { - transitioned = main_region_off_react(handle,transitioned); + transitioned = main_region_everything_r1_on_r1_sensor_error_react(handle,transitioned); break; } default: @@ -252,14 +289,32 @@ static void micro_step(Statechart* handle) { switch(handle->stateConfVector[ 1 ]) { - case Statechart_main_region_on_r2_not_pressed : + case Statechart_main_region_everything_r1_on_r2_not_pressed : { - main_region_on_r2_not_pressed_react(handle,transitioned); + transitioned = main_region_everything_r1_on_r2_not_pressed_react(handle,transitioned); break; } - case Statechart_main_region_on_r2_pressed : + case Statechart_main_region_everything_r1_on_r2_pressed : { - main_region_on_r2_pressed_react(handle,transitioned); + transitioned = main_region_everything_r1_on_r2_pressed_react(handle,transitioned); + break; + } + default: + /* do nothing */ + break; + } + } if ((handle->stateConfVectorPosition) < (2)) + { + switch(handle->stateConfVector[ 2 ]) + { + case Statechart_main_region_everything_pollButton_button0 : + { + main_region_everything_pollButton_button0_react(handle,transitioned); + break; + } + case Statechart_main_region_everything_pollButton_button1 : + { + main_region_everything_pollButton_button1_react(handle,transitioned); break; } default: @@ -282,6 +337,7 @@ static void run_cycle(Statechart* handle) { micro_step(handle); clear_in_events(handle); + clear_internal_events(handle); } while (statechart_dispatch_next_event(handle) == bool_true); handle->isExecuting = bool_false; } @@ -293,15 +349,9 @@ void statechart_raise_sensor(Statechart* handle, int32_t value) run_cycle(handle); } -void statechart_raise_buttonPressed(Statechart* handle) +void statechart_raise_buttonState(Statechart* handle, sc_boolean value) { - statechart_add_event_to_queue(&(handle->in_event_queue), Statechart_buttonPressed); - run_cycle(handle); -} - -void statechart_raise_buttonReleased(Statechart* handle) -{ - statechart_add_event_to_queue(&(handle->in_event_queue), Statechart_buttonReleased); + statechart_add_value_event_to_queue(&(handle->in_event_queue), Statechart_buttonState, &value); run_cycle(handle); } @@ -329,7 +379,7 @@ static void statechart_internal_set_pid_vars(Statechart* handle, pid_vars_t valu /* implementations of all internal functions */ /* Entry action for state 'responding'. */ -static void enact_main_region_on_r1_responding(Statechart* handle) +static void enact_main_region_everything_r1_on_r1_responding(Statechart* handle) { /* Entry action for state 'responding'. */ statechart_internal_set_speed(handle, statechart_pid(handle,handle->iface.sensor_value, handle->internal.pid_vars)); @@ -344,7 +394,7 @@ static void enact_main_region_on_r1_responding(Statechart* handle) } /* Entry action for state 'sensor_error'. */ -static void enact_main_region_on_r1_sensor_error(Statechart* handle) +static void enact_main_region_everything_r1_on_r1_sensor_error(Statechart* handle) { /* Entry action for state 'sensor_error'. */ { @@ -358,68 +408,92 @@ static void enact_main_region_on_r1_sensor_error(Statechart* handle) } /* Entry action for state 'pressed'. */ -static void enact_main_region_on_r2_pressed(Statechart* handle) +static void enact_main_region_everything_r1_on_r2_pressed(Statechart* handle) { /* Entry action for state 'pressed'. */ - statechart_set_timer(handle, (sc_eventid) &(handle->timeEvents.statechart_main_region_on_r2_pressed_tev0_raised) , (((sc_time) 2) * 1000), bool_false); + statechart_set_timer(handle, (sc_eventid) &(handle->timeEvents.statechart_main_region_everything_r1_on_r2_pressed_tev0_raised) , (((sc_time) 2) * 1000), bool_false); } /* Exit action for state 'pressed'. */ -static void exact_main_region_on_r2_pressed(Statechart* handle) +static void exact_main_region_everything_r1_on_r2_pressed(Statechart* handle) { /* Exit action for state 'pressed'. */ - statechart_unset_timer(handle, (sc_eventid) &(handle->timeEvents.statechart_main_region_on_r2_pressed_tev0_raised) ); + statechart_unset_timer(handle, (sc_eventid) &(handle->timeEvents.statechart_main_region_everything_r1_on_r2_pressed_tev0_raised) ); +} + +/* 'default' enter sequence for state everything */ +static void enseq_main_region_everything_default(Statechart* handle) +{ + /* 'default' enter sequence for state everything */ + enseq_main_region_everything_r1_default(handle); + enseq_main_region_everything_pollButton_default(handle); +} + +/* 'default' enter sequence for state off */ +static void enseq_main_region_everything_r1_off_default(Statechart* handle) +{ + /* 'default' enter sequence for state off */ + handle->stateConfVector[0] = Statechart_main_region_everything_r1_off; + handle->stateConfVectorPosition = 0; } /* 'default' enter sequence for state on */ -static void enseq_main_region_on_default(Statechart* handle) +static void enseq_main_region_everything_r1_on_default(Statechart* handle) { /* 'default' enter sequence for state on */ - enseq_main_region_on_r1_default(handle); - enseq_main_region_on_r2_default(handle); + enseq_main_region_everything_r1_on_r1_default(handle); + enseq_main_region_everything_r1_on_r2_default(handle); } /* 'default' enter sequence for state responding */ -static void enseq_main_region_on_r1_responding_default(Statechart* handle) +static void enseq_main_region_everything_r1_on_r1_responding_default(Statechart* handle) { /* 'default' enter sequence for state responding */ - enact_main_region_on_r1_responding(handle); - handle->stateConfVector[0] = Statechart_main_region_on_r1_responding; + enact_main_region_everything_r1_on_r1_responding(handle); + handle->stateConfVector[0] = Statechart_main_region_everything_r1_on_r1_responding; handle->stateConfVectorPosition = 0; } /* 'default' enter sequence for state sensor_error */ -static void enseq_main_region_on_r1_sensor_error_default(Statechart* handle) +static void enseq_main_region_everything_r1_on_r1_sensor_error_default(Statechart* handle) { /* 'default' enter sequence for state sensor_error */ - enact_main_region_on_r1_sensor_error(handle); - handle->stateConfVector[0] = Statechart_main_region_on_r1_sensor_error; + enact_main_region_everything_r1_on_r1_sensor_error(handle); + handle->stateConfVector[0] = Statechart_main_region_everything_r1_on_r1_sensor_error; handle->stateConfVectorPosition = 0; } /* 'default' enter sequence for state not_pressed */ -static void enseq_main_region_on_r2_not_pressed_default(Statechart* handle) +static void enseq_main_region_everything_r1_on_r2_not_pressed_default(Statechart* handle) { /* 'default' enter sequence for state not_pressed */ - handle->stateConfVector[1] = Statechart_main_region_on_r2_not_pressed; + handle->stateConfVector[1] = Statechart_main_region_everything_r1_on_r2_not_pressed; handle->stateConfVectorPosition = 1; } /* 'default' enter sequence for state pressed */ -static void enseq_main_region_on_r2_pressed_default(Statechart* handle) +static void enseq_main_region_everything_r1_on_r2_pressed_default(Statechart* handle) { /* 'default' enter sequence for state pressed */ - enact_main_region_on_r2_pressed(handle); - handle->stateConfVector[1] = Statechart_main_region_on_r2_pressed; + enact_main_region_everything_r1_on_r2_pressed(handle); + handle->stateConfVector[1] = Statechart_main_region_everything_r1_on_r2_pressed; handle->stateConfVectorPosition = 1; } -/* 'default' enter sequence for state off */ -static void enseq_main_region_off_default(Statechart* handle) +/* 'default' enter sequence for state button0 */ +static void enseq_main_region_everything_pollButton_button0_default(Statechart* handle) { - /* 'default' enter sequence for state off */ - handle->stateConfVector[0] = Statechart_main_region_off; - handle->stateConfVectorPosition = 0; + /* 'default' enter sequence for state button0 */ + handle->stateConfVector[2] = Statechart_main_region_everything_pollButton_button0; + handle->stateConfVectorPosition = 2; +} + +/* 'default' enter sequence for state button1 */ +static void enseq_main_region_everything_pollButton_button1_default(Statechart* handle) +{ + /* 'default' enter sequence for state button1 */ + handle->stateConfVector[2] = Statechart_main_region_everything_pollButton_button1; + handle->stateConfVectorPosition = 2; } /* 'default' enter sequence for region main region */ @@ -430,69 +504,99 @@ static void enseq_main_region_default(Statechart* handle) } /* 'default' enter sequence for region r1 */ -static void enseq_main_region_on_r1_default(Statechart* handle) +static void enseq_main_region_everything_r1_default(Statechart* handle) { /* 'default' enter sequence for region r1 */ - react_main_region_on_r1__entry_Default(handle); + react_main_region_everything_r1__entry_Default(handle); +} + +/* 'default' enter sequence for region r1 */ +static void enseq_main_region_everything_r1_on_r1_default(Statechart* handle) +{ + /* 'default' enter sequence for region r1 */ + react_main_region_everything_r1_on_r1__entry_Default(handle); } /* 'default' enter sequence for region r2 */ -static void enseq_main_region_on_r2_default(Statechart* handle) +static void enseq_main_region_everything_r1_on_r2_default(Statechart* handle) { /* 'default' enter sequence for region r2 */ - react_main_region_on_r2__entry_Default(handle); + react_main_region_everything_r1_on_r2__entry_Default(handle); +} + +/* 'default' enter sequence for region pollButton */ +static void enseq_main_region_everything_pollButton_default(Statechart* handle) +{ + /* 'default' enter sequence for region pollButton */ + react_main_region_everything_pollButton__entry_Default(handle); +} + +/* Default exit sequence for state off */ +static void exseq_main_region_everything_r1_off(Statechart* handle) +{ + /* Default exit sequence for state off */ + handle->stateConfVector[0] = Statechart_main_region_everything; + handle->stateConfVectorPosition = 0; } /* Default exit sequence for state on */ -static void exseq_main_region_on(Statechart* handle) +static void exseq_main_region_everything_r1_on(Statechart* handle) { /* Default exit sequence for state on */ - exseq_main_region_on_r1(handle); - exseq_main_region_on_r2(handle); - handle->stateConfVector[0] = Statechart_last_state; - handle->stateConfVector[1] = Statechart_last_state; + exseq_main_region_everything_r1_on_r1(handle); + exseq_main_region_everything_r1_on_r2(handle); + handle->stateConfVector[0] = Statechart_main_region_everything; + handle->stateConfVector[1] = Statechart_main_region_everything; handle->stateConfVectorPosition = 1; } /* Default exit sequence for state responding */ -static void exseq_main_region_on_r1_responding(Statechart* handle) +static void exseq_main_region_everything_r1_on_r1_responding(Statechart* handle) { /* Default exit sequence for state responding */ - handle->stateConfVector[0] = Statechart_main_region_on; + handle->stateConfVector[0] = Statechart_main_region_everything_r1_on; handle->stateConfVectorPosition = 0; } /* Default exit sequence for state sensor_error */ -static void exseq_main_region_on_r1_sensor_error(Statechart* handle) +static void exseq_main_region_everything_r1_on_r1_sensor_error(Statechart* handle) { /* Default exit sequence for state sensor_error */ - handle->stateConfVector[0] = Statechart_main_region_on; + handle->stateConfVector[0] = Statechart_main_region_everything_r1_on; handle->stateConfVectorPosition = 0; } /* Default exit sequence for state not_pressed */ -static void exseq_main_region_on_r2_not_pressed(Statechart* handle) +static void exseq_main_region_everything_r1_on_r2_not_pressed(Statechart* handle) { /* Default exit sequence for state not_pressed */ - handle->stateConfVector[1] = Statechart_main_region_on; + handle->stateConfVector[1] = Statechart_main_region_everything_r1_on; handle->stateConfVectorPosition = 1; } /* Default exit sequence for state pressed */ -static void exseq_main_region_on_r2_pressed(Statechart* handle) +static void exseq_main_region_everything_r1_on_r2_pressed(Statechart* handle) { /* Default exit sequence for state pressed */ - handle->stateConfVector[1] = Statechart_main_region_on; + handle->stateConfVector[1] = Statechart_main_region_everything_r1_on; handle->stateConfVectorPosition = 1; - exact_main_region_on_r2_pressed(handle); + exact_main_region_everything_r1_on_r2_pressed(handle); } -/* Default exit sequence for state off */ -static void exseq_main_region_off(Statechart* handle) +/* Default exit sequence for state button0 */ +static void exseq_main_region_everything_pollButton_button0(Statechart* handle) { - /* Default exit sequence for state off */ - handle->stateConfVector[0] = Statechart_last_state; - handle->stateConfVectorPosition = 0; + /* Default exit sequence for state button0 */ + handle->stateConfVector[2] = Statechart_main_region_everything; + handle->stateConfVectorPosition = 2; +} + +/* Default exit sequence for state button1 */ +static void exseq_main_region_everything_pollButton_button1(Statechart* handle) +{ + /* Default exit sequence for state button1 */ + handle->stateConfVector[2] = Statechart_main_region_everything; + handle->stateConfVectorPosition = 2; } /* Default exit sequence for region main region */ @@ -502,19 +606,19 @@ static void exseq_main_region(Statechart* handle) /* Handle exit of all possible states (of Statechart.main_region) at position 0... */ switch(handle->stateConfVector[ 0 ]) { - case Statechart_main_region_on_r1_responding : + case Statechart_main_region_everything_r1_off : { - exseq_main_region_on_r1_responding(handle); + exseq_main_region_everything_r1_off(handle); break; } - case Statechart_main_region_on_r1_sensor_error : + case Statechart_main_region_everything_r1_on_r1_responding : { - exseq_main_region_on_r1_sensor_error(handle); + exseq_main_region_everything_r1_on_r1_responding(handle); break; } - case Statechart_main_region_off : + case Statechart_main_region_everything_r1_on_r1_sensor_error : { - exseq_main_region_off(handle); + exseq_main_region_everything_r1_on_r1_sensor_error(handle); break; } default: @@ -524,14 +628,31 @@ static void exseq_main_region(Statechart* handle) /* Handle exit of all possible states (of Statechart.main_region) at position 1... */ switch(handle->stateConfVector[ 1 ]) { - case Statechart_main_region_on_r2_not_pressed : + case Statechart_main_region_everything_r1_on_r2_not_pressed : { - exseq_main_region_on_r2_not_pressed(handle); + exseq_main_region_everything_r1_on_r2_not_pressed(handle); break; } - case Statechart_main_region_on_r2_pressed : + case Statechart_main_region_everything_r1_on_r2_pressed : { - exseq_main_region_on_r2_pressed(handle); + exseq_main_region_everything_r1_on_r2_pressed(handle); + break; + } + default: + /* do nothing */ + break; + } + /* Handle exit of all possible states (of Statechart.main_region) at position 2... */ + switch(handle->stateConfVector[ 2 ]) + { + case Statechart_main_region_everything_pollButton_button0 : + { + exseq_main_region_everything_pollButton_button0(handle); + break; + } + case Statechart_main_region_everything_pollButton_button1 : + { + exseq_main_region_everything_pollButton_button1(handle); break; } default: @@ -541,20 +662,20 @@ static void exseq_main_region(Statechart* handle) } /* Default exit sequence for region r1 */ -static void exseq_main_region_on_r1(Statechart* handle) +static void exseq_main_region_everything_r1_on_r1(Statechart* handle) { /* Default exit sequence for region r1 */ - /* Handle exit of all possible states (of Statechart.main_region.on.r1) at position 0... */ + /* Handle exit of all possible states (of Statechart.main_region.everything.r1.on.r1) at position 0... */ switch(handle->stateConfVector[ 0 ]) { - case Statechart_main_region_on_r1_responding : + case Statechart_main_region_everything_r1_on_r1_responding : { - exseq_main_region_on_r1_responding(handle); + exseq_main_region_everything_r1_on_r1_responding(handle); break; } - case Statechart_main_region_on_r1_sensor_error : + case Statechart_main_region_everything_r1_on_r1_sensor_error : { - exseq_main_region_on_r1_sensor_error(handle); + exseq_main_region_everything_r1_on_r1_sensor_error(handle); break; } default: @@ -564,20 +685,20 @@ static void exseq_main_region_on_r1(Statechart* handle) } /* Default exit sequence for region r2 */ -static void exseq_main_region_on_r2(Statechart* handle) +static void exseq_main_region_everything_r1_on_r2(Statechart* handle) { /* Default exit sequence for region r2 */ - /* Handle exit of all possible states (of Statechart.main_region.on.r2) at position 1... */ + /* Handle exit of all possible states (of Statechart.main_region.everything.r1.on.r2) at position 1... */ switch(handle->stateConfVector[ 1 ]) { - case Statechart_main_region_on_r2_not_pressed : + case Statechart_main_region_everything_r1_on_r2_not_pressed : { - exseq_main_region_on_r2_not_pressed(handle); + exseq_main_region_everything_r1_on_r2_not_pressed(handle); break; } - case Statechart_main_region_on_r2_pressed : + case Statechart_main_region_everything_r1_on_r2_pressed : { - exseq_main_region_on_r2_pressed(handle); + exseq_main_region_everything_r1_on_r2_pressed(handle); break; } default: @@ -587,41 +708,71 @@ static void exseq_main_region_on_r2(Statechart* handle) } /* The reactions of state null. */ -static void react_main_region_on_r1__choice_0(Statechart* handle) +static void react_main_region_everything_r1_on_r1__choice_0(Statechart* handle) { /* The reactions of state null. */ if ((handle->iface.sensor_value) < (0)) { - enseq_main_region_on_r1_sensor_error_default(handle); + enseq_main_region_everything_r1_on_r1_sensor_error_default(handle); } else { - enseq_main_region_on_r1_responding_default(handle); + enseq_main_region_everything_r1_on_r1_responding_default(handle); } } /* Default react sequence for initial entry */ -static void react_main_region_on_r1__entry_Default(Statechart* handle) +static void react_main_region_everything_r1__entry_Default(Statechart* handle) { /* Default react sequence for initial entry */ - enseq_main_region_on_r1_responding_default(handle); + enseq_main_region_everything_r1_off_default(handle); } /* Default react sequence for initial entry */ -static void react_main_region_on_r2__entry_Default(Statechart* handle) +static void react_main_region_everything_r1_on_r1__entry_Default(Statechart* handle) { /* Default react sequence for initial entry */ - enseq_main_region_on_r2_not_pressed_default(handle); + enseq_main_region_everything_r1_on_r1_responding_default(handle); +} + +/* Default react sequence for initial entry */ +static void react_main_region_everything_r1_on_r2__entry_Default(Statechart* handle) +{ + /* Default react sequence for initial entry */ + enseq_main_region_everything_r1_on_r2_not_pressed_default(handle); +} + +/* Default react sequence for initial entry */ +static void react_main_region_everything_pollButton__entry_Default(Statechart* handle) +{ + /* Default react sequence for initial entry */ + enseq_main_region_everything_pollButton_button0_default(handle); } /* Default react sequence for initial entry */ static void react_main_region__entry_Default(Statechart* handle) { /* Default react sequence for initial entry */ - enseq_main_region_off_default(handle); + enseq_main_region_everything_default(handle); } -static sc_integer main_region_on_r1_responding_react(Statechart* handle, const sc_integer transitioned_before) +static sc_integer main_region_everything_r1_off_react(Statechart* handle, const sc_integer transitioned_before) +{ + /* The reactions of state off. */ + sc_integer transitioned_after = transitioned_before; + if ((transitioned_after) < (0)) + { + if (handle->internal.buttonPressed_raised == bool_true) + { + exseq_main_region_everything_r1_off(handle); + enseq_main_region_everything_r1_on_default(handle); + transitioned_after = 0; + } + } + return transitioned_after; +} + +static sc_integer main_region_everything_r1_on_r1_responding_react(Statechart* handle, const sc_integer transitioned_before) { /* The reactions of state responding. */ sc_integer transitioned_after = transitioned_before; @@ -629,15 +780,15 @@ static sc_integer main_region_on_r1_responding_react(Statechart* handle, const s { if (handle->iface.sensor_raised == bool_true) { - exseq_main_region_on_r1_responding(handle); - react_main_region_on_r1__choice_0(handle); + exseq_main_region_everything_r1_on_r1_responding(handle); + react_main_region_everything_r1_on_r1__choice_0(handle); transitioned_after = 0; } } return transitioned_after; } -static sc_integer main_region_on_r1_sensor_error_react(Statechart* handle, const sc_integer transitioned_before) +static sc_integer main_region_everything_r1_on_r1_sensor_error_react(Statechart* handle, const sc_integer transitioned_before) { /* The reactions of state sensor_error. */ sc_integer transitioned_after = transitioned_before; @@ -645,24 +796,24 @@ static sc_integer main_region_on_r1_sensor_error_react(Statechart* handle, const { if (handle->iface.sensor_raised == bool_true) { - exseq_main_region_on_r1_sensor_error(handle); - react_main_region_on_r1__choice_0(handle); + exseq_main_region_everything_r1_on_r1_sensor_error(handle); + react_main_region_everything_r1_on_r1__choice_0(handle); transitioned_after = 0; } } return transitioned_after; } -static sc_integer main_region_on_r2_not_pressed_react(Statechart* handle, const sc_integer transitioned_before) +static sc_integer main_region_everything_r1_on_r2_not_pressed_react(Statechart* handle, const sc_integer transitioned_before) { /* The reactions of state not_pressed. */ sc_integer transitioned_after = transitioned_before; if ((transitioned_after) < (1)) { - if (handle->iface.buttonPressed_raised == bool_true) + if (handle->internal.buttonPressed_raised == bool_true) { - exseq_main_region_on_r2_not_pressed(handle); - enseq_main_region_on_r2_pressed_default(handle); + exseq_main_region_everything_r1_on_r2_not_pressed(handle); + enseq_main_region_everything_r1_on_r2_pressed_default(handle); transitioned_after = 1; } } @@ -675,24 +826,24 @@ static sc_integer main_region_on_r2_not_pressed_react(Statechart* handle, const return transitioned_after; } -static sc_integer main_region_on_r2_pressed_react(Statechart* handle, const sc_integer transitioned_before) +static sc_integer main_region_everything_r1_on_r2_pressed_react(Statechart* handle, const sc_integer transitioned_before) { /* The reactions of state pressed. */ sc_integer transitioned_after = transitioned_before; if ((transitioned_after) < (1)) { - if (handle->timeEvents.statechart_main_region_on_r2_pressed_tev0_raised == bool_true) + if (handle->timeEvents.statechart_main_region_everything_r1_on_r2_pressed_tev0_raised == bool_true) { - exseq_main_region_on(handle); - handle->timeEvents.statechart_main_region_on_r2_pressed_tev0_raised = bool_false; - enseq_main_region_off_default(handle); + exseq_main_region_everything_r1_on(handle); + handle->timeEvents.statechart_main_region_everything_r1_on_r2_pressed_tev0_raised = bool_false; + enseq_main_region_everything_r1_off_default(handle); transitioned_after = 1; } else { - if (handle->iface.buttonReleased_raised == bool_true) + if (handle->internal.buttonReleased_raised == bool_true) { - exseq_main_region_on_r2_pressed(handle); - enseq_main_region_on_r2_not_pressed_default(handle); + exseq_main_region_everything_r1_on_r2_pressed(handle); + enseq_main_region_everything_r1_on_r2_not_pressed_default(handle); transitioned_after = 1; } } @@ -706,17 +857,41 @@ static sc_integer main_region_on_r2_pressed_react(Statechart* handle, const sc_i return transitioned_after; } -static sc_integer main_region_off_react(Statechart* handle, const sc_integer transitioned_before) +static sc_integer main_region_everything_pollButton_button0_react(Statechart* handle, const sc_integer transitioned_before) { - /* The reactions of state off. */ + /* The reactions of state button0. */ sc_integer transitioned_after = transitioned_before; - if ((transitioned_after) < (0)) + if ((transitioned_after) < (2)) { - if (handle->iface.buttonPressed_raised == bool_true) + if (((handle->iface.buttonState_raised) == bool_true) && ((handle->iface.buttonState_value) == bool_true)) { - exseq_main_region_off(handle); - enseq_main_region_on_default(handle); - transitioned_after = 0; + exseq_main_region_everything_pollButton_button0(handle); + statechart_add_event_to_queue(&(handle->internal_event_queue), Statechart_internal_buttonPressed); + enseq_main_region_everything_pollButton_button1_default(handle); + transitioned_after = 2; + } + } + /* If no transition was taken */ + if ((transitioned_after) == (transitioned_before)) + { + /* then execute local reactions. */ + transitioned_after = transitioned_before; + } + return transitioned_after; +} + +static sc_integer main_region_everything_pollButton_button1_react(Statechart* handle, const sc_integer transitioned_before) +{ + /* The reactions of state button1. */ + sc_integer transitioned_after = transitioned_before; + if ((transitioned_after) < (2)) + { + if (((handle->iface.buttonState_raised) == bool_true) && ((!(handle->iface.buttonState_value)) == bool_true)) + { + exseq_main_region_everything_pollButton_button1(handle); + statechart_add_event_to_queue(&(handle->internal_event_queue), Statechart_internal_buttonReleased); + enseq_main_region_everything_pollButton_button0_default(handle); + transitioned_after = 2; } } /* If no transition was taken */ @@ -804,19 +979,25 @@ static sc_boolean statechart_dispatch_event(Statechart* handle, const statechart handle->iface.sensor_value = event->value.Statechart_sensor_value; return bool_true; } - case Statechart_buttonPressed: + case Statechart_buttonState: { - handle->iface.buttonPressed_raised = bool_true; + handle->iface.buttonState_raised = bool_true; + handle->iface.buttonState_value = event->value.Statechart_buttonState_value; return bool_true; } - case Statechart_buttonReleased: + case Statechart_internal_buttonPressed: { - handle->iface.buttonReleased_raised = bool_true; + handle->internal.buttonPressed_raised = bool_true; return bool_true; } - case Statechart_Statechart_main_region_on_r2_pressed_time_event_0: + case Statechart_internal_buttonReleased: { - handle->timeEvents.statechart_main_region_on_r2_pressed_tev0_raised = bool_true; + handle->internal.buttonReleased_raised = bool_true; + return bool_true; + } + case Statechart_Statechart_main_region_everything_r1_on_r2_pressed_time_event_0: + { + handle->timeEvents.statechart_main_region_everything_r1_on_r2_pressed_tev0_raised = bool_true; return bool_true; } default: @@ -828,7 +1009,10 @@ static statechart_event statechart_get_next_event(Statechart* handle) { statechart_event next_event; statechart_event_init(&next_event, Statechart_invalid_event); - if(statechart_eventqueue_size(&(handle->in_event_queue)) > 0) { + if(statechart_eventqueue_size(&(handle->internal_event_queue)) > 0) { + next_event = statechart_eventqueue_pop(&(handle->internal_event_queue)); + } + else if(statechart_eventqueue_size(&(handle->in_event_queue)) > 0) { next_event = statechart_eventqueue_pop(&(handle->in_event_queue)); } return next_event; @@ -843,8 +1027,8 @@ static sc_boolean statechart_dispatch_next_event(Statechart* handle) static StatechartEventID statechart_get_timed_event_name(Statechart* handle, sc_eventid evid) { - if(evid == &handle->timeEvents.statechart_main_region_on_r2_pressed_tev0_raised) { - return Statechart_Statechart_main_region_on_r2_pressed_time_event_0; + if(evid == &handle->timeEvents.statechart_main_region_everything_r1_on_r2_pressed_tev0_raised) { + return Statechart_Statechart_main_region_everything_r1_on_r2_pressed_time_event_0; } return Statechart_invalid_event; } @@ -860,6 +1044,9 @@ static void statechart_event_value_init(statechart_event * ev, StatechartEventID case Statechart_sensor: ev->value.Statechart_sensor_value = *((int32_t*)value); break; + case Statechart_buttonState: + ev->value.Statechart_buttonState_value = *((sc_boolean*)value); + break; default: /* do nothing */ break; diff --git a/robot_cdt/src-gen/Statechart.h b/robot_cdt/src-gen/Statechart.h index 1e833fc..78a40f1 100644 --- a/robot_cdt/src-gen/Statechart.h +++ b/robot_cdt/src-gen/Statechart.h @@ -35,6 +35,7 @@ typedef struct StatechartTimeEvents StatechartTimeEvents; #include "../src/sc_types.h" #include "../src/sc_rxc.h" #include "../src/sc_rxc_int32_t.h" +#include "../src/sc_rxc_bool.h" #include "../src/sc_rxc_int32_t.h" #include "../src/sc_rxc_int32_t.h" @@ -52,30 +53,37 @@ Header of the state machine 'Statechart'. #ifndef STATECHART_IN_EVENTQUEUE_BUFFERSIZE #define STATECHART_IN_EVENTQUEUE_BUFFERSIZE STATECHART_EVENTQUEUE_BUFFERSIZE #endif +#ifndef STATECHART_INTERNAL_EVENTQUEUE_BUFFERSIZE +#define STATECHART_INTERNAL_EVENTQUEUE_BUFFERSIZE STATECHART_EVENTQUEUE_BUFFERSIZE +#endif #ifndef SC_INVALID_EVENT_VALUE #define SC_INVALID_EVENT_VALUE 0 #endif /*! Define number of states in the state enum */ -#define STATECHART_STATE_COUNT 6 +#define STATECHART_STATE_COUNT 9 /*! Define dimension of the state configuration vector for orthogonal states. */ -#define STATECHART_MAX_ORTHOGONAL_STATES 2 +#define STATECHART_MAX_ORTHOGONAL_STATES 3 /*! Define maximum number of time events that can be active at once */ #define STATECHART_MAX_PARALLEL_TIME_EVENTS 1 /*! Define indices of states in the StateConfVector */ -#define SCVI_STATECHART_MAIN_REGION_ON 0 -#define SCVI_STATECHART_MAIN_REGION_ON_R1_RESPONDING 0 -#define SCVI_STATECHART_MAIN_REGION_ON_R1_SENSOR_ERROR 0 -#define SCVI_STATECHART_MAIN_REGION_ON_R2_NOT_PRESSED 1 -#define SCVI_STATECHART_MAIN_REGION_ON_R2_PRESSED 1 -#define SCVI_STATECHART_MAIN_REGION_OFF 0 +#define SCVI_STATECHART_MAIN_REGION_EVERYTHING 0 +#define SCVI_STATECHART_MAIN_REGION_EVERYTHING_R1_OFF 0 +#define SCVI_STATECHART_MAIN_REGION_EVERYTHING_R1_ON 0 +#define SCVI_STATECHART_MAIN_REGION_EVERYTHING_R1_ON_R1_RESPONDING 0 +#define SCVI_STATECHART_MAIN_REGION_EVERYTHING_R1_ON_R1_SENSOR_ERROR 0 +#define SCVI_STATECHART_MAIN_REGION_EVERYTHING_R1_ON_R2_NOT_PRESSED 1 +#define SCVI_STATECHART_MAIN_REGION_EVERYTHING_R1_ON_R2_PRESSED 1 +#define SCVI_STATECHART_MAIN_REGION_EVERYTHING_POLLBUTTON_BUTTON0 2 +#define SCVI_STATECHART_MAIN_REGION_EVERYTHING_POLLBUTTON_BUTTON1 2 /* * Union of all possible event value types. */ typedef union { int32_t Statechart_sensor_value; + sc_boolean Statechart_buttonState_value; } statechart_event_value; /* @@ -84,9 +92,10 @@ typedef union { typedef enum { Statechart_invalid_event = SC_INVALID_EVENT_VALUE, Statechart_sensor, - Statechart_buttonPressed, - Statechart_buttonReleased, - Statechart_Statechart_main_region_on_r2_pressed_time_event_0 + Statechart_buttonState, + Statechart_internal_buttonPressed, + Statechart_internal_buttonReleased, + Statechart_Statechart_main_region_everything_r1_on_r2_pressed_time_event_0 } StatechartEventID; /* @@ -113,12 +122,15 @@ typedef struct statechart_eventqueue_s { typedef enum { Statechart_last_state, - Statechart_main_region_on, - Statechart_main_region_on_r1_responding, - Statechart_main_region_on_r1_sensor_error, - Statechart_main_region_on_r2_not_pressed, - Statechart_main_region_on_r2_pressed, - Statechart_main_region_off + Statechart_main_region_everything, + Statechart_main_region_everything_r1_off, + Statechart_main_region_everything_r1_on, + Statechart_main_region_everything_r1_on_r1_responding, + Statechart_main_region_everything_r1_on_r1_sensor_error, + Statechart_main_region_everything_r1_on_r2_not_pressed, + Statechart_main_region_everything_r1_on_r2_pressed, + Statechart_main_region_everything_pollButton_button0, + Statechart_main_region_everything_pollButton_button1 } StatechartStates; @@ -129,8 +141,8 @@ struct StatechartIface { sc_boolean sensor_raised; int32_t sensor_value; - sc_boolean buttonPressed_raised; - sc_boolean buttonReleased_raised; + sc_boolean buttonState_raised; + sc_boolean buttonState_value; sc_observable_int32_t setMotorR; sc_observable_int32_t setMotorL; }; @@ -140,6 +152,8 @@ struct StatechartIface /*! Type declaration of the data structure for the StatechartInternal interface scope. */ struct StatechartInternal { + sc_boolean buttonPressed_raised; + sc_boolean buttonReleased_raised; int32_t speed; pid_vars_t pid_vars; }; @@ -149,7 +163,7 @@ struct StatechartInternal /*! Type declaration of the data structure for the StatechartTimeEvents interface scope. */ struct StatechartTimeEvents { - sc_boolean statechart_main_region_on_r2_pressed_tev0_raised; + sc_boolean statechart_main_region_everything_r1_on_r2_pressed_tev0_raised; }; @@ -169,6 +183,8 @@ struct Statechart StatechartTimeEvents timeEvents; sc_boolean isExecuting; sc_integer stateConfVectorPosition; + statechart_eventqueue internal_event_queue; + statechart_event internal_buffer[STATECHART_INTERNAL_EVENTQUEUE_BUFFERSIZE]; statechart_eventqueue in_event_queue; statechart_event in_buffer[STATECHART_IN_EVENTQUEUE_BUFFERSIZE]; }; @@ -196,10 +212,8 @@ extern void statechart_raise_time_event(Statechart* handle, sc_eventid evid); /*! Raises the in event 'sensor' that is defined in the default interface scope. */ extern void statechart_raise_sensor(Statechart* handle, int32_t value); -/*! Raises the in event 'buttonPressed' that is defined in the default interface scope. */ -extern void statechart_raise_buttonPressed(Statechart* handle); -/*! Raises the in event 'buttonReleased' that is defined in the default interface scope. */ -extern void statechart_raise_buttonReleased(Statechart* handle); +/*! Raises the in event 'buttonState' that is defined in the default interface scope. */ +extern void statechart_raise_buttonState(Statechart* handle, sc_boolean value); /*! Returns the observable for the out event 'setMotorR' that is defined in the default interface scope. */ extern sc_observable_int32_t* statechart_get_setMotorR(Statechart* handle); diff --git a/robot_cdt/src/sc_rxc_bool.c b/robot_cdt/src/sc_rxc_bool.c new file mode 100644 index 0000000..eba96b9 --- /dev/null +++ b/robot_cdt/src/sc_rxc_bool.c @@ -0,0 +1,6 @@ +/* Generated by itemis CREATE code generator. */ + +#include "sc_rxc_bool.h" + +define_sc_reactive_extensions(bool) + diff --git a/robot_cdt/src/sc_rxc_bool.h b/robot_cdt/src/sc_rxc_bool.h new file mode 100644 index 0000000..e8e22cb --- /dev/null +++ b/robot_cdt/src/sc_rxc_bool.h @@ -0,0 +1,19 @@ +/* Generated by itemis CREATE code generator. */ + +#ifndef SC_RXC_BOOL_H_ +#define SC_RXC_BOOL_H_ + +#include "sc_rxc.h" + +#ifdef __cplusplus +extern "C" { +#endif + +declare_sc_reactive_extensions(bool) + +#ifdef __cplusplus +} +#endif + + +#endif /* SC_RXC_BOOL_H_ */