Changeset 654


Ignore:
Timestamp:
11/08/2010 05:05:22 PM (8 years ago)
Author:
joao.dias
Message:
 
Location:
AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/AgentCore.java

    r645 r654  
    5959import FAtiMA.util.AgentLogger; 
    6060import FAtiMA.util.Constants; 
     61import FAtiMA.util.FileLocator; 
    6162import FAtiMA.util.VersionChecker; 
    6263import FAtiMA.util.enumerables.ActionEvent; 
     
    7475 
    7576public class AgentCore implements AgentModel, IGetModelStrategy { 
    76          
    77         public static final String MIND_PATH = "data/characters/minds/"; 
    78         public static final String MIND_PATH_ANDROID = "sdcard/data/characters/minds/"; 
     77 
     78        private static final String MIND_PATH = "data/characters/minds/"; 
     79        private static final String MIND_PATH_ANDROID = "sdcard/data/characters/minds/"; 
     80         
     81         
    7982         
    8083        protected HashMap<String, IComponent> _components; 
    81          
    8284        protected EmotionalState _emotionalState; 
    83          
    8485        protected Memory _memory; 
    85          
    8686        protected boolean _shutdown; 
    8787        protected DeliberativeProcess _deliberativeLayer; 
    8888        protected ReactiveProcess _reactiveLayer; 
    89          
    90  
    9189        protected ArrayList<ValuedAction> _actionsForExecution; 
    9290        protected ArrayList<Event> _perceivedEvents; 
    93  
    9491        protected RemoteAgent _remoteAgent; 
    9592        protected String _role; 
     
    111108        private IGetModelStrategy _strat; 
    112109         
    113         public static Name applyPerspective(Name n, String agentName) 
    114         { 
    115                 Name newName = (Name) n.clone(); 
    116                 ArrayList<Symbol> symbols = newName.GetLiteralList(); 
    117                  
    118                 for(int i = 0; i < symbols.size(); i++) 
    119                 { 
    120                         if(symbols.get(i).getName().equals(agentName)) 
    121                         { 
    122                                 symbols.set(i, new Symbol(Constants.SELF)); 
    123                         } 
    124                 } 
    125                  
    126                 return newName; 
    127         } 
    128110 
    129111        public AgentCore(short agentPlatform, String host, int port, String saveDirectory, String name, boolean displayMode,  
     
    131113                        String displayName, String actionsFile,  
    132114                        String goalsFile, HashMap<String,String> properties, ArrayList<String> goalList) { 
     115                 
     116                 
    133117                 
    134118                _saveDirectory = saveDirectory; 
     
    158142                        AgentLogger.GetInstance().initialize(name,displayMode); 
    159143                         
    160  
    161                         String mind_path = MIND_PATH; 
    162                         if (VersionChecker.runningOnAndroid()) mind_path = MIND_PATH_ANDROID; 
     144                        //TODO: O METODO SEGUINTE ESTA ULTRA MARTELADO 
     145                        if (VersionChecker.runningOnAndroid()){ 
     146                                FileLocator.initialize(MIND_PATH_ANDROID, saveDirectory, actionsFile, goalsFile, role); 
     147                        }else{ 
     148                                FileLocator.initialize(MIND_PATH, saveDirectory, actionsFile, goalsFile, role); 
     149                        } 
    163150                         
    164151                        // Load Plan Operators 
    165                         ActionLibrary.GetInstance().LoadActionsFile("" + mind_path + actionsFile + ".xml", this); 
     152                        ActionLibrary.GetInstance().LoadActionsFile(FileLocator.getActionsFile(), this); 
    166153                        EmotionalPlanner planner = new EmotionalPlanner(ActionLibrary.GetInstance().GetActions()); 
    167154                         
    168155                        // Load GoalLibrary 
    169                         GoalLibrary goalLibrary = new GoalLibrary(mind_path + goalsFile + ".xml"); 
    170                          
    171                          
     156                        GoalLibrary goalLibrary = new GoalLibrary(FileLocator.getGoalsFile()); 
     157                 
    172158                        //For efficiency reasons these two are not real processes 
    173159                        _reactiveLayer = new ReactiveProcess(); 
     
    177163                        AddComponent(_deliberativeLayer); 
    178164         
    179                         String personalityFile = mind_path + "roles/" + role + "/" + role + ".xml"; 
    180                         loadPersonality(personalityFile,agentPlatform, goalList); 
     165                        loadPersonality(FileLocator.getPersonalityFile(),agentPlatform, goalList); 
    181166                         
    182                         if(agentPlatform == AgentPlatform.WORLDSIM){ 
    183                                 _remoteAgent = new WorldSimulatorRemoteAgent(host, port, this, properties); 
    184                         }else if (agentPlatform == AgentPlatform.ION){ 
    185                                 _remoteAgent = new IONRemoteAgent(host, port, this);     
    186                         } 
     167                        //Start the remote agent socket 
     168                        _remoteAgent = startRemoteAgent(agentPlatform,host, port, properties); 
    187169                          
    188170                        /* 
     
    197179                        terminateExecution(); 
    198180                } 
    199  
    200         } 
     181        } 
     182         
     183         
    201184         
    202185        public AgentCore(short agentPlatform, String host, int port, String directory, String fileName) 
     
    205188                        _shutdown = false; 
    206189                        _numberOfCycles = 0; 
    207                          
     190                        AgentLogger.GetInstance().initialize(fileName,_showStateWindow); 
     191         
    208192                        LoadAgentState(directory + fileName); 
    209                         AgentLogger.GetInstance().initialize(fileName,_showStateWindow); 
    210193                         
    211194                        // creating a new episode when the agent loads 13/09/10 
     195         
    212196                        _memory.getEpisodicMemory().StartEpisode(_memory); 
    213                          
    214                         if(agentPlatform == AgentPlatform.ION) 
    215                         { 
    216                                 _remoteAgent = new IONRemoteAgent(host,port,this); 
    217                         } 
    218                         else if (agentPlatform == AgentPlatform.WORLDSIM) 
    219                         { 
    220                                 _remoteAgent = new WorldSimulatorRemoteAgent(host,port,this,new HashMap<String,String>()); 
    221                         }                        
     197                        _remoteAgent = this.startRemoteAgent(agentPlatform, host, port, new HashMap<String,String>()); 
    222198                        _remoteAgent.LoadState(fileName+"-RemoteAgent.dat"); 
    223199                } 
     
    227203                } 
    228204        } 
     205         
     206         
     207        private RemoteAgent startRemoteAgent(short aP, String host, int port, HashMap<String,String> properties) throws IOException{ 
     208                if(aP == AgentPlatform.WORLDSIM){ 
     209                        return new WorldSimulatorRemoteAgent(host, port, this, properties); 
     210                }else if (aP == AgentPlatform.ION){ 
     211                        return new IONRemoteAgent(host, port, this);     
     212                }else{ 
     213                        throw new RuntimeException("startRemoteAgent: AgentPlatform has an incorrect value:" + aP); 
     214                } 
     215        } 
     216         
     217 
     218        public static Name applyPerspective(Name n, String agentName) 
     219        { 
     220                Name newName = (Name) n.clone(); 
     221                ArrayList<Symbol> symbols = newName.GetLiteralList(); 
     222                 
     223                for(int i = 0; i < symbols.size(); i++) 
     224                { 
     225                        if(symbols.get(i).getName().equals(agentName)) 
     226                        { 
     227                                symbols.set(i, new Symbol(Constants.SELF)); 
     228                        } 
     229                } 
     230                 
     231                return newName; 
     232        } 
     233         
    229234         
    230235        public void AddComponent(IComponent c) 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Display/AgentDisplay.java

    r651 r654  
    3939 
    4040import FAtiMA.AgentCore; 
    41 import FAtiMA.ToM.ToMPanel; 
    42 import FAtiMA.motivationalSystem.NeedsPanel; 
    43 import FAtiMA.socialRelations.SocialRelationsPanel; 
    44  
    4541 
    4642/** 
Note: See TracChangeset for help on using the changeset viewer.