From 1355d019cafedbb3d6b191156b80a857c6a618d1 Mon Sep 17 00:00:00 2001 From: Florent Duchon Date: Sun, 4 Mar 2012 01:32:10 +0100 Subject: digital/beacon/simu: beacon simulator v2 -> Multi Obstacles management --- digital/beacon/simu/trust.c | 73 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 digital/beacon/simu/trust.c (limited to 'digital/beacon/simu/trust.c') diff --git a/digital/beacon/simu/trust.c b/digital/beacon/simu/trust.c new file mode 100644 index 00000000..340a82bd --- /dev/null +++ b/digital/beacon/simu/trust.c @@ -0,0 +1,73 @@ +/* trust.c */ +/* Beacon Trust control. {{{ + * + * Copyright (C) 2011 Florent Duchon + * + * APBTeam: + * Web: http://apbteam.org/ + * Email: team AT apbteam DOT org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * }}} */ + +#include "position.h" +#include "trust.h" +#include "debug.h" + +extern opponent_s opponent[MAX_OBSTACLE]; + + +/* This function returns the trust level */ +TTrustStatus trust_check_level(void) +{ + int i = 0; + for( i = 1; i <= MAX_OBSTACLE ; i++) + { + /* If at least one obstacle is under the trust threashold, we are not confident about its position */ + DEBUG_TRUST("opponent[%d].trust == %d\n",i,opponent[i].trust); + if(opponent[i].trust < TRUST_THRESHOLD) + { + return TRUST_TOO_BAD; + } + } + return TRUST_LEVEL_OK; +} + + +/* This function increases the trust level for a specifical obstacle */ +TTrustStatus trust_increase(int number) +{ + if(opponent[number].trust < TRUST_MAX) + { + opponent[number].trust++; + } + return TRUST_LEVEL_OK; +} + +/* This function decreases the trust level for all obstacles */ +TTrustStatus trust_decrease(void) +{ + int i = 0; + for( i = 1; i <= MAX_OBSTACLE ; i++) + { + if(opponent[i].trust > TRUST_MIN) + { + opponent[i].trust--; + } + } + return TRUST_LEVEL_OK; +} + -- cgit v1.2.3