enum OK -> OLR_OK to avoid conflict with ESP32 board libs + function parameter type fix

This commit is contained in:
Luca Borsari 2024-10-07 18:13:51 +02:00
parent 2b4160d579
commit 09d67b77b3
3 changed files with 36 additions and 28 deletions

View file

@ -17,7 +17,7 @@ void controller_setup( void ) {
digitalWrite(PIN_VCC_ADC2, HIGH); digitalWrite(PIN_VCC_ADC2, HIGH);
} }
***/ ***/
DIGITAL_CTRL[CTRL_1]= DIG_CTRL_1_PIN; DIGITAL_CTRL[CTRL_1]= DIG_CTRL_1_PIN;
DIGITAL_CTRL[CTRL_2]= DIG_CTRL_2_PIN; DIGITAL_CTRL[CTRL_2]= DIG_CTRL_2_PIN;
DIGITAL_CTRL[CTRL_3]= DIG_CTRL_3_PIN; DIGITAL_CTRL[CTRL_3]= DIG_CTRL_3_PIN;

View file

@ -45,9 +45,9 @@ enum phases {
// Types for ack.type // Types for ack.type
enum resp{ // enum resp{ //
NOK = -1, NOK = -1,
NOTHING = 0, NOTHING = 0,
OK = 1 OLR_OK = 1 // Changed from OK to OLR_OK to avoid conflicts with ESP32 libs
}; };
// Answer sent after processing a command received from Host // Answer sent after processing a command received from Host

View file

@ -122,12 +122,13 @@ void setup() {
// Check if DEMO mode is configured // Check if DEMO mode is configured
race.demo_mode = param_option_is_active(&tck.cfg, DEMO_MODE_OPTION); race.demo_mode = param_option_is_active(&tck.cfg, DEMO_MODE_OPTION);
enum ctr_type current_mode = (race.demo_mode == true) ? DEMO_MODE : DIGITAL_MODE;
// enum ctr_type current_mode = (race.demo_mode == true) ? DEMO_MODE : DIGITAL_MODE;
// !!! Eliminare var current_mode ...mettere if contratto direttamente in f() call // !!! Eliminare var current_mode ...mettere if contratto direttamente in f() call
// Initialize Controllers for very player // Initialize Controllers for very player
set_controllers_mode(race.numcars, current_mode ) ; //set_controllers_mode(race.numcars, current_mode ) ;
set_controllers_mode(race.numcars, (race.demo_mode == true) ? DEMO_MODE : DIGITAL_MODE ) ;
// Initialize car for every player // Initialize car for every player
init_cars(race.numcars); init_cars(race.numcars);
@ -371,8 +372,9 @@ void loop() {
/** /**
* *
*/ */
void set_controllers_mode(uint8_t numctrl, uint8_t mode ) { void set_controllers_mode(uint8_t numctrl, enum ctr_type mode ) {
for( uint8_t i = 0; i < numctrl; ++i) { for( uint8_t i = 0; i < numctrl; ++i) {
//enum ctr_type mode;
controller_init( &switchs[i], mode, DIGITAL_CTRL[i] ); controller_init( &switchs[i], mode, DIGITAL_CTRL[i] );
} }
} }
@ -780,7 +782,7 @@ ack_t manageSerialCommand() {
race.phase = CONFIG; race.phase = CONFIG;
enter_configuration_mode(); enter_configuration_mode();
} }
ack.rp = OK; ack.rp = OLR_OK;
} }
break; break;
@ -790,7 +792,7 @@ ack_t manageSerialCommand() {
if(race.phase == CONFIG) { // Ignore command if Board is not in "Configure Mode" if(race.phase == CONFIG) { // Ignore command if Board is not in "Configure Mode"
race.newcfg = true; race.newcfg = true;
} }
ack.rp = OK; ack.rp = OLR_OK;
} }
break; break;
@ -803,12 +805,12 @@ ack_t manageSerialCommand() {
// Does not accept anymore R=1 as Enter Configuration / Use command @ instead // Does not accept anymore R=1 as Enter Configuration / Use command @ instead
if( 0 > phase || RACE_PHASES <= phase || phase == CONFIG) return ack; if( 0 > phase || RACE_PHASES <= phase || phase == CONFIG) return ack;
race.phase = (enum phases) phase; race.phase = (enum phases) phase;
ack.rp = OK; ack.rp = OLR_OK;
**/ **/
// Codice vecchio con R1=Enter Configuration // Codice vecchio con R1=Enter Configuration
if( 0 > phase || RACE_PHASES <= phase) return ack; if( 0 > phase || RACE_PHASES <= phase) return ack;
race.phase = (enum phases) phase; race.phase = (enum phases) phase;
ack.rp = OK; ack.rp = OLR_OK;
if ( race.phase == CONFIG ) { // accept R1 as a EnterConfigurationMode command - DEPRECATED if ( race.phase == CONFIG ) { // accept R1 as a EnterConfigurationMode command - DEPRECATED
enter_configuration_mode(); enter_configuration_mode();
} }
@ -825,7 +827,7 @@ ack_t manageSerialCommand() {
if( 0 >= ncar || race.numcars < ncar) return ack; if( 0 >= ncar || race.numcars < ncar) return ack;
cars[ncar-1].st = CAR_ENTER; cars[ncar-1].st = CAR_ENTER;
cars[ncar-1].speed = (float) speed / 10; cars[ncar-1].speed = (float) speed / 10;
ack.rp = OK; ack.rp = OLR_OK;
ack.rp = NOTHING; ack.rp = NOTHING;
if( false ) { if( false ) {
sprintf( txbuff, "%s %d, %s %d, %s %d", "CAR: ", ncar, "STATUS: ", cars[ncar-1].st, "SPEED: ", (int)(cars[ncar-1].speed * 10) ); sprintf( txbuff, "%s %d, %s %d, %s %d", "CAR: ", ncar, "STATUS: ", cars[ncar-1].st, "SPEED: ", (int)(cars[ncar-1].speed * 10) );
@ -840,7 +842,7 @@ ack_t manageSerialCommand() {
byte const ncar = atoi( cmd + 1); byte const ncar = atoi( cmd + 1);
if( 0 >= ncar || race.numcars < ncar) return ack; if( 0 >= ncar || race.numcars < ncar) return ack;
cars[ncar-1].st = CAR_COMING; cars[ncar-1].st = CAR_COMING;
ack.rp = OK; ack.rp = OLR_OK;
if ( false ) { if ( false ) {
sprintf( txbuff, "%s %d, %s %d", "CAR: ", ncar, "STATUS: ", cars[ncar-1].st); sprintf( txbuff, "%s %d, %s %d", "CAR: ", ncar, "STATUS: ", cars[ncar-1].st);
printdebug( txbuff, LOG ); printdebug( txbuff, LOG );
@ -894,7 +896,7 @@ ack_t manageSerialCommand() {
race.cfg.nrepeat = tck.cfg.race.nrepeat; race.cfg.nrepeat = tck.cfg.race.nrepeat;
race.cfg.finishline = tck.cfg.race.finishline; race.cfg.finishline = tck.cfg.race.finishline;
ack.rp = OK; ack.rp = OLR_OK;
} }
break; break;
@ -912,7 +914,7 @@ ack_t manageSerialCommand() {
track_configure( &tck, 0); track_configure( &tck, 0);
if( err ) return ack; if( err ) return ack;
ack.rp = OK; ack.rp = OLR_OK;
} }
break; break;
@ -934,7 +936,7 @@ ack_t manageSerialCommand() {
int err = boxlen_configure( &tck, boxlen, boxperm ); int err = boxlen_configure( &tck, boxlen, boxperm );
if( err ) return ack; if( err ) return ack;
ack.rp = OK; ack.rp = OLR_OK;
// Force Pitlane ON, so "show_cfgpars_onstrip()" // Force Pitlane ON, so "show_cfgpars_onstrip()"
// will show the new values, even if AlwaysON=false // will show the new values, even if AlwaysON=false
@ -972,7 +974,7 @@ ack_t manageSerialCommand() {
uint8_t err = ramp_configure( &tck, init, center, end, high, slopeperm ); uint8_t err = ramp_configure( &tck, init, center, end, high, slopeperm );
if( err ) return ack; if( err ) return ack;
ack.rp = OK; ack.rp =OLR_OK;
// Force Ramp ON, so "show_cfgpars_onstrip()" // Force Ramp ON, so "show_cfgpars_onstrip()"
// will show the new values, even if AlwaysON=false // will show the new values, even if AlwaysON=false
@ -1007,7 +1009,7 @@ ack_t manageSerialCommand() {
uint8_t err = battery_configure( &tck, delta, min, boost, active ); uint8_t err = battery_configure( &tck, delta, min, boost, active );
if( err ) return ack; if( err ) return ack;
ack.rp = OK; ack.rp = OLR_OK;
} }
break; break;
@ -1023,7 +1025,7 @@ ack_t manageSerialCommand() {
uint8_t err = autostart_configure( &tck, autostart); uint8_t err = autostart_configure( &tck, autostart);
if( err ) return ack; if( err ) return ack;
ack.rp = OK; ack.rp = OLR_OK;
} }
break; break;
@ -1038,7 +1040,7 @@ ack_t manageSerialCommand() {
uint8_t err = demo_configure( &tck, demo); uint8_t err = demo_configure( &tck, demo);
if( err ) return ack; if( err ) return ack;
ack.rp = OK; ack.rp = OLR_OK;
if(demo == 0) { if(demo == 0) {
race.demo_mode_off_received = true; race.demo_mode_off_received = true;
@ -1060,7 +1062,7 @@ ack_t manageSerialCommand() {
uint8_t err = players_n_configure( &tck, players_n); uint8_t err = players_n_configure( &tck, players_n);
if( err ) return ack; if( err ) return ack;
ack.rp = OK; ack.rp = OLR_OK;
} }
break; break;
@ -1085,7 +1087,7 @@ ack_t manageSerialCommand() {
int err = physic_configure( &tck, kgp, kfp ); int err = physic_configure( &tck, kgp, kfp );
if( err ) return ack; if( err ) return ack;
ack.rp = OK; ack.rp = OLR_OK;
} }
break; break;
@ -1095,7 +1097,7 @@ ack_t manageSerialCommand() {
uint8_t const dtunnel = atoi( cmd + 1); uint8_t const dtunnel = atoi( cmd + 1);
if( 0 >= dtunnel || 254 < dtunnel) return ack; if( 0 >= dtunnel || 254 < dtunnel) return ack;
race.circ.outtunnel = dtunnel; race.circ.outtunnel = dtunnel;
ack.rp = OK; ack.rp = OLR_OK;
if ( false ) { //VERBOSE if ( false ) { //VERBOSE
sprintf( txbuff, "%s %d", "TUNNEL: ", race.circ.outtunnel ); sprintf( txbuff, "%s %d", "TUNNEL: ", race.circ.outtunnel );
printdebug( txbuff, LOG ); printdebug( txbuff, LOG );
@ -1110,7 +1112,7 @@ ack_t manageSerialCommand() {
param_setdefault( &tck.cfg ); param_setdefault( &tck.cfg );
EEPROM.put( eeadrInfo, tck.cfg ); // Save immediately EEPROM.put( eeadrInfo, tck.cfg ); // Save immediately
ack.rp = OK; ack.rp = OLR_OK;
// Update box/slope active in current Track Struct with values // Update box/slope active in current Track Struct with values
// just loaded (for show_cfgpars_onstrip()) // just loaded (for show_cfgpars_onstrip())
@ -1128,8 +1130,14 @@ ack_t manageSerialCommand() {
ack.type = cmd[0]; ack.type = cmd[0];
if( strlen(cmd + 1) > LEN_UID ) return ack; if( strlen(cmd + 1) > LEN_UID ) return ack;
strcpy( info->uid, cmd + 1 ); strcpy( info->uid, cmd + 1 );
sprintf( txbuff, "%s%s%c", "$", cmd + 1, EOL );
serialCommand.sendCommand(txbuff);
sprintf( txbuff, "%s%s%c", "$", info->uid, EOL );
serialCommand.sendCommand(txbuff);
EEPROM.put( eeadrInfo, tck.cfg ); // Save immediately EEPROM.put( eeadrInfo, tck.cfg ); // Save immediately
ack.rp = OK; ack.rp = OLR_OK;
} }
break; break;
@ -1163,7 +1171,7 @@ ack_t manageSerialCommand() {
race.network_race = true; race.network_race = true;
race.phase = COMPLETE; // Immediatly ends the current race (if any) race.phase = COMPLETE; // Immediatly ends the current race (if any)
race.winner=0; // Set a fake winner (used in Status=Complete by draw_winner()) race.winner=0; // Set a fake winner (used in Status=Complete by draw_winner())
ack.rp = OK; ack.rp = OLR_OK;
} }
break; break;
@ -1223,7 +1231,7 @@ ack_t manageSerialCommand() {
{ {
ack.type = cmd[0]; ack.type = cmd[0];
EEPROM.put( eeadrInfo, tck.cfg ); EEPROM.put( eeadrInfo, tck.cfg );
ack.rp = OK; ack.rp = OLR_OK;
} }
break; break;
@ -1238,9 +1246,9 @@ ack_t manageSerialCommand() {
*/ */
void sendResponse( ack_t *ack) { void sendResponse( ack_t *ack) {
if(ack->type=='\0'){ if(ack->type=='\0'){
sprintf(txbuff, "%s%c", ack->rp==OK? "OK":"NOK" , EOL ); sprintf(txbuff, "%s%c", ack->rp==OLR_OK? "OK":"NOK" , EOL );
} else { } else {
sprintf(txbuff, "%c%s%c", ack->type, ack->rp==OK? "OK":"NOK" , EOL ); sprintf(txbuff, "%c%s%c", ack->type, ack->rp==OLR_OK? "OK":"NOK" , EOL );
} }
serialCommand.sendCommand(txbuff); serialCommand.sendCommand(txbuff);
} }