Changeset 438


Ignore:
Timestamp:
09/16/2010 11:22:56 AM (8 years ago)
Author:
myl
Message:

Change the agent arguments in the scenario.xml to include "saveDirectory" and "load" parameter which can be True (load the agent state from existing data structure) or False (start the agent from scratch). This is to avoid the need to change the ScenarioLoaderHandler? and scenario.xml everytime you want to start / load an agent.

Location:
AgentMind/trunk/AgentMind
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • AgentMind/trunk/AgentMind/AgentLauncher/src/AgentLauncher.java

    r436 r438  
    6262                switch(agentPlatform){ 
    6363                        case AgentPlatform.ION: 
    64                                 if(args2.length >= 11){ 
     64                                if(args2.length >= 13){ 
    6565                                         
    66                                         agent = new Agent(agentPlatform,args2[1], Integer.parseInt(args[2]),"", Boolean.parseBoolean(args2[3]), args2[4], args2[5], args2[6], args2[7], args2[8], args2[9], args2[10],null,null); 
     66                                        agent = new Agent(agentPlatform,args2[1], Integer.parseInt(args[2]), args2[3],  args2[4], Boolean.parseBoolean(args2[5]), args2[6], args2[7], args2[8], args2[9], args2[10], args2[11],null,null); 
    6767                                } 
    6868                                else if(args2.length == 5) 
     
    7878                                 
    7979                        case AgentPlatform.WORLDSIM: 
    80                                 String saveDirectory = "data/characters/minds/state/"; 
    81                                 if (args2.length == 4){ 
     80                                //String saveDirectory = "data/characters/minds/state/"; 
     81                                /*if (args2.length == 4){ 
    8282                                        agent = new Agent(agentPlatform, args2[1],Integer.parseInt(args2[2]),saveDirectory,args2[3]); 
    83                                 }else if(args2.length >= 11){ 
    84                                         HashMap<String,String> properties = new HashMap<String,String>(); 
    85                                         ArrayList<String> goals = new ArrayList<String>(); 
    86                                         readPropertiesAndGoals(args2, properties, goals); 
    87                                         agent = new Agent(agentPlatform,args2[1], Integer.parseInt(args2[2]),saveDirectory,Boolean.parseBoolean(args2[3]),args2[4], args2[5], args2[6], args2[7],args2[8],args2[9],args2[10], properties, goals);                
    88                                 }else{ 
     83                                }else */ 
     84                                if(args2.length >= 13) 
     85                                { 
     86                                        if (Boolean.parseBoolean(args2[12])) 
     87                                        { 
     88                                                agent = new Agent(agentPlatform, args2[1],Integer.parseInt(args2[2]), args2[3], args2[4]); 
     89                                        } 
     90                                        else 
     91                                        { 
     92                                                HashMap<String,String> properties = new HashMap<String,String>(); 
     93                                                ArrayList<String> goals = new ArrayList<String>(); 
     94                                                readPropertiesAndGoals(args2, properties, goals); 
     95                                                agent = new Agent(agentPlatform, args2[1], Integer.parseInt(args2[2]), args2[3], args2[4], Boolean.parseBoolean(args2[5]), args2[6], args2[7], args2[8],args2[9],args2[10],args2[11], properties, goals); 
     96                                        } 
     97                                } 
     98                                else 
     99                                { 
    89100                                        System.err.println("Wrong number of arguments!"); 
    90101                                } 
     
    109120                String left; 
    110121                         
    111                 for(int i = 11; i < args.length; i++) { 
     122                for(int i = 13; i < args.length; i++) { 
    112123                        st = new StringTokenizer(args[i], ":"); 
    113124                        left = st.nextToken(); 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/Agent.java

    r436 r438  
    114114        private static final Name ACTION_CONTEXT = Name.ParseName("ActionContext()"); 
    115115 
    116         public Agent(short agentPlatform, String host, int port, String saveDirectory, boolean displayMode, String name,  
     116        public Agent(short agentPlatform, String host, int port, String saveDirectory, String name, boolean displayMode,  
    117117                        String sex, String role,  
    118118                        String displayName, String actionsFile,  
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/memory/episodicMemory/EpisodicMemory.java

    r436 r438  
    237237                 
    238238                // 13/09/2010 - Create a new episode  
    239                 _am.NewEpisode(location); 
     239                synchronized (this)  
     240                { 
     241                        _am.NewEpisode(location); 
     242                } 
     243                 
    240244        } 
    241245         
     
    295299        public void MoveSTEMtoAM() 
    296300        { 
    297                 for (int i=0; i < _stm.GetCount(); i++) 
    298                 { 
    299                         ActionDetail detail = _stm.getDetails().get(i); 
    300                         if((detail.getIntention() != null && (detail.getStatus().equals(GoalEvent.GetName(GoalEvent.ACTIVATION)) ||  
    301                                         detail.getStatus().equals(GoalEvent.GetName(GoalEvent.SUCCESS)) || 
    302                                         detail.getStatus().equals(GoalEvent.GetName(GoalEvent.FAILURE)))) || 
    303                                         (detail.getAction() != null && (detail.getEmotion().GetType()) != EmotionType.NEUTRAL)) 
    304                         { 
    305                                 _am.StoreAction(detail);                                         
     301                synchronized (this) { 
     302                        for (int i=0; i < _stm.GetCount(); i++) 
     303                        { 
     304                                ActionDetail detail = _stm.getDetails().get(i); 
     305                                if((detail.getIntention() != null && (detail.getStatus().equals(GoalEvent.GetName(GoalEvent.ACTIVATION)) ||  
     306                                                detail.getStatus().equals(GoalEvent.GetName(GoalEvent.SUCCESS)) || 
     307                                                detail.getStatus().equals(GoalEvent.GetName(GoalEvent.FAILURE)))) || 
     308                                                (detail.getAction() != null && (detail.getEmotion().GetType()) != EmotionType.NEUTRAL)) 
     309                                { 
     310                                        _am.StoreAction(detail);                                         
     311                                } 
    306312                        } 
    307313                        _stm.getDetails().clear(); 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/util/parsers/ScenarioLoaderHandler.java

    r278 r438  
    2323                this._agentArgs = new ArrayList<String>(); 
    2424                this._isPretendedScenario = false;       
    25         } 
    26          
     25        }        
    2726         
    2827        public ScenarioLoaderHandler(String scenarioName, String characterName){ 
     
    9493                                _agentArgs.add(attributes.getValue("host")); 
    9594                                _agentArgs.add(attributes.getValue("port")); 
     95                                _agentArgs.add(attributes.getValue("saveDirectory")); 
     96                                _agentArgs.add(attributes.getValue("name")); 
    9697                                _agentArgs.add(attributes.getValue("displayMode")); 
    97                                 _agentArgs.add(attributes.getValue("name")); 
    9898                                _agentArgs.add(attributes.getValue("sex")); 
    9999                                _agentArgs.add(attributes.getValue("role")); 
     
    101101                                _agentArgs.add(attributes.getValue("actionsFile")); 
    102102                                _agentArgs.add(attributes.getValue("goalsFile")); 
    103                                 _agentArgs.add(attributes.getValue("cultureName"));                              
     103                                _agentArgs.add(attributes.getValue("cultureName"));      
     104                                _agentArgs.add(attributes.getValue("load")); 
    104105                        }else{ 
    105106                                this._isPretendedCharacter = false; 
  • AgentMind/trunk/AgentMind/data/characters/minds/LIRECScenarios.xml

    r432 r438  
    6969                <Agent name="Greta" displayName="Greta" role="Greta" platform="worldsim" host="localhost"  
    7070                           port="46874" displayMode="True" sex="F" actionsFile="LIRECActions"  
    71                            goalsFile="LIRECGoalLibrary" cultureName="NoCulture"> 
     71                           goalsFile="LIRECGoalLibrary" cultureName="NoCulture"  
     72                           saveDirectory="data/characters/minds/state/" load="True"> 
    7273                        <Properties>                             
    7374                                <Property name="time" value="Morning"/> 
Note: See TracChangeset for help on using the changeset viewer.