@Classname("ref") public IFuture<Void> execute(IInternalAccess ia) { IBDIXAgentFeature bia = ia.getComponentFeature(IBDIXAgentFeature.class); final Object[] aorders = bia.getBeliefbase().getBeliefSet("orders").getFacts(); SwingUtilities.invokeLater(new Runnable() { public void run() { for(int i = 0; i < aorders.length; i++) { if(!orders.contains(aorders[i])) { orders.add(aorders[i]); } } items.fireTableDataChanged(); } }); return IFuture.DONE; } });
/** * The plan body. */ public void body() { Object[] facts = getBeliefbase().getBeliefSet("egwords").getFacts(); getBeliefbase().getBeliefSet("egwords").removeFact(facts[0]); getLogger().info("Success, removed: "+facts[0]); }
@Classname("players") public IFuture<Void> execute(IInternalAccess ia) { IBDIXAgentFeature bia = ia.getComponentFeature(IBDIXAgentFeature.class); final Player[] players = (Player[])bia.getBeliefbase().getBeliefSet("players").getFacts(); SwingUtilities.invokeLater(new Runnable() { public void run() { JPanel playerDealerPanel = (JPanel)getContentPane().getComponent(1); JPanel playerPanel = (JPanel)playerDealerPanel.getComponent(0); playerPanel.setLayout(new GridLayout(players.length, 1, 0, 0)); playerPanel.setBackground(Color.WHITE); for(int i = 0; i<players.length; i++) { playerPanel.add(new ManagerPlayerPanel(i+1, players[i])); } getContentPane().add(playerDealerPanel, 1); getContentPane().validate(); } }); return IFuture.DONE; } }).addResultListener(dislis);
/** * Get an object from the map. * @param key The key * @return The value. */ public Object get(Object key) { String name = (String)key; Object ret = null; if(containsBelief(name)) { ret = getBelief(name).getFact(); } else if(containsBeliefSet(name)) { ret = getBeliefSet(name).getFacts(); } else { throw new RuntimeException("Unknown belief/set: "+name); } return ret; }
/** * Get the item catalog. * @return The catalog. */ public IFuture<ItemInfo[]> getCatalog() { IBDIXAgentFeature capa = comp.getComponentFeature(IBDIXAgentFeature.class); final Future<ItemInfo[]> ret = new Future<ItemInfo[]>(); ret.setResult((ItemInfo[])capa.getBeliefbase().getBeliefSet("catalog").getFacts()); return ret; }
/** * The plan body. */ public void body() { // Substract both sets. Target[] ts = (Target[])getBeliefbase().getBeliefSet("move.my_targets").getFacts(); Target[] fts = (Target[])getBeliefbase().getBeliefSet("finished_targets").getFacts(); Target[] res = (Target[])SUtil.substractArrays(ts, fts); for(int i=0; i<res.length; i++) { //System.out.println("Infoming sentry about a new target!!!"); informSentryAgents(res[i]); getBeliefbase().getBeliefSet("finished_targets").addFact(res[i]); } }
/** * The plan body. */ public void body() { // Substract both sets. Target[] ts = (Target[])getBeliefbase().getBeliefSet("move.my_targets").getFacts(); Target[] fts = (Target[])getBeliefbase().getBeliefSet("finished_targets").getFacts(); Target[] res = (Target[])SUtil.substractArrays(ts, fts); for(int i=0; i<res.length; i++) { //System.out.println("Infoming sentry about a new target!!!"); informSentryAgents(res[i]); getBeliefbase().getBeliefSet("finished_targets").addFact(res[i]); } }
/** * The body method is called on the * instatiated plan instance from the scheduler. */ public void body() { for(int i=0; i<3; i++) { tr = new TestReport("#"+i, "Tests if a beliefchange is detected."); getLogger().info("Now waiting for a change of belief set 'some_numbers': "); Object val = waitForFactAdded("some_numbers", 3000); getLogger().info("Fact added: "+val); //Object val = waitForFactRemoved("some_numbers", 5000); //getLogger().info("Fact removed: "+val); tr.setSucceeded(true); getLogger().info("Belief changed: "+Arrays.toString(getBeliefbase().getBeliefSet("some_numbers").getFacts())); getBeliefbase().getBeliefSet("testcap.reports").addFact(tr); } }
public IFuture<DrawData> execute(IInternalAccess ia) { IBDIXAgentFeature bdif = ia.getComponentFeature(IBDIXAgentFeature.class); DrawData drawdata = new DrawData(); drawdata.daytime = ((Boolean)bdif.getBeliefbase().getBelief("daytime").getFact()).booleanValue(); drawdata.visited_positions = (MapPoint[])bdif.getBeliefbase().getBeliefSet("visited_positions").getFacts(); drawdata.max_quantity = ((MapPoint)((IExpression)bdif.getExpressionbase().getExpression("query_max_quantity")).execute()).getQuantity(); drawdata.xcnt = ((Integer[])bdif.getBeliefbase().getBeliefSet("raster").getFacts())[0].intValue(); drawdata.ycnt = ((Integer[])bdif.getBeliefbase().getBeliefSet("raster").getFacts())[1].intValue(); drawdata.cleaners = (Cleaner[])bdif.getBeliefbase().getBeliefSet("cleaners").getFacts(); drawdata.chargingstations = (Chargingstation[])bdif.getBeliefbase().getBeliefSet("chargingstations").getFacts(); drawdata.wastebins = (Wastebin[])bdif.getBeliefbase().getBeliefSet("wastebins").getFacts(); drawdata.wastes = (Waste[])bdif.getBeliefbase().getBeliefSet("wastes").getFacts(); drawdata.my_vision = ((Double)bdif.getBeliefbase().getBelief("my_vision").getFact()).doubleValue(); drawdata.my_chargestate = ((Double)bdif.getBeliefbase().getBelief("my_chargestate").getFact()).doubleValue(); drawdata.my_location = (Location)bdif.getBeliefbase().getBelief("my_location").getFact(); drawdata.my_waste = bdif.getBeliefbase().getBelief("carriedwaste").getFact()!=null; IGoal[] goals = (IGoal[])bdif.getGoalbase().getGoals("achievemoveto"); drawdata.dests = new Location[goals.length]; for(int i=0; i<goals.length; i++) { drawdata.dests[i] = (Location)goals[i].getParameter("location").getValue(); } return new Future<DrawData>(drawdata); } }
/** * The plan body. */ public void body() { IVector2[] loci = (IVector2[])getBeliefbase().getBeliefSet("patrolpoints").getFacts(); for(int i=0; i<loci.length; i++) { IGoal moveto = createGoal("achievemoveto"); moveto.getParameter("location").setValue(loci[i]); // System.out.println("Created: "+loci[i]+" "+this); dispatchSubgoalAndWait(moveto); // System.out.println("Reached: "+loci[i]+" "+this); } } }
/** * The plan body. */ public void body() { Location[] loci = (Location[])getBeliefbase().getBeliefSet("patrolpoints").getFacts(); for(int i=0; i<loci.length; i++) { IGoal moveto = createGoal("achievemoveto"); moveto.getParameter("location").setValue(loci[i]); // System.out.println("Created: "+loci[i]+" "+this); dispatchSubgoalAndWait(moveto); // System.out.println("Reached: "+loci[i]+" "+this); } } }
/** * The body method is called on the * instatiated plan instance from the scheduler. */ public void body() { TestReport tr = new TestReport("#1", "Test plan priorities."); IGoal goal = createGoal("test"); dispatchSubgoalAndWait(goal); Integer[] results = (Integer[])getBeliefbase().getBeliefSet("results").getFacts(); boolean succ = results.length==3; for(int i=0; succ && i<results.length-1; i++) { succ = results[i].intValue()>=results[i+1].intValue(); } if(succ) tr.setSucceeded(true); else tr.setReason("Plan priorities were not respected."); getBeliefbase().getBeliefSet("testcap.reports").addFact(tr); } }
/** * Check if the meta-level reasoning was successful. */ protected void validateTestResult(TestReport tr) { Double[] plans = (Double[])getBeliefbase().getBeliefSet("mlrcap.plans").getFacts(); boolean succ = plans.length>0; for(int i=0; succ && i<plans.length-1; i++) { succ = plans[i].doubleValue()>=plans[i+1].doubleValue(); } if(succ) { tr.setSucceeded(true); } else { tr.setReason("Meta-level reasoning error."); } getBeliefbase().getBeliefSet("testcap.reports").addFact(tr); getBeliefbase().getBeliefSet("mlrcap.plans").removeFacts(); } }
/** * The body method is called on the * instatiated plan instance from the scheduler. */ public void body() { if(hasParameter("beliefsetname")) this.belsetname = (String)getParameter("beliefsetname").getValue(); else throw new RuntimeException("Parameter value 'beliefsetname' required."); if(hasParameter("time")) this.time = ((Long)getParameter("time").getValue()).longValue(); while(true) { Object[] vals = getBeliefbase().getBeliefSet(belsetname).getFacts(); if(vals.length>0) { getLogger().info("Removing beliefset value: "+belsetname+" val :"+vals[0]); getBeliefbase().getBeliefSet(belsetname).removeFact(vals[0]); } waitFor(time); } } }
/** * The plan body. */ public void body() { Grid2D env = (Grid2D)getBeliefbase().getBelief("env").getFact(); ISpaceObject myself = (ISpaceObject)getBeliefbase().getBelief("myself").getFact(); ISpaceObject[] hunters = (ISpaceObject[])getBeliefbase().getBeliefSet("seen_hunters").getFacts(); String move = MoveAction.getAvoidanceDirection(env, (IVector2)myself.getProperty(Space2D.PROPERTY_POSITION), hunters); Map<String, Object> params = new HashMap<String, Object>(); params.put(ISpaceAction.ACTOR_ID, getComponentDescription()); params.put(MoveAction.PARAMETER_DIRECTION, move); Future<Void> ret = new Future<Void>(); env.performSpaceAction("move", params, new DelegationResultListener<Void>(ret)); try { ret.get(); } catch(RuntimeException e) { // When move fails ignore exception. fail(); } } }
ret = rbelset.getFacts();
/** * Set result values from beliefs. */ public IFuture<Void> shutdown() { IBDIXAgentFeature bdif = getComponent().getComponentFeature(IBDIXAgentFeature.class); BDIXModel model = (BDIXModel)bdif.getModel(); for(MBelief mbel: model.getCapability().getBeliefs()) { if(model.getCapability().getResultMappings().containsKey(mbel.getName()) && mbel.getEvaluationMode()==EvaluationMode.PULL) { Object val; if(mbel.isMulti(null)) { val = bdif.getBeliefbase().getBeliefSet(mbel.getName()).getFacts(); } else { val = bdif.getBeliefbase().getBelief(mbel.getName()).getFact(); } getResults().put(model.getCapability().getResultMappings().get(mbel.getName()), val); } } return super.shutdown(); } }
/** * The plan body. */ public void body() { while(true) { Location my_location = (Location)getBeliefbase().getBelief("my_location").getFact(); double my_vision = ((Double)getBeliefbase().getBelief("my_vision").getFact()).doubleValue(); MapPoint[] mps = (MapPoint[])getBeliefbase().getBeliefSet("visited_positions").getFacts(); for(int i=0; i<mps.length; i++) { if(my_location.isNear(mps[i].getLocation(), my_vision)) { mps[i].setQuantity(mps[i].getQuantity()+1); mps[i].setSeen(1); } else { double oldseen = mps[i].getSeen(); double newseen = oldseen - oldseen*forget; mps[i].setSeen(newseen); } } //System.out.println("inc: "+SUtil.arrayToString(mps)); waitFor(300); } } }
/** * The body. */ public void body() { IBeliefSet forb = getBeliefbase().getBeliefSet("forbidden_food"); Food[] food = (Food[])forb.getFacts(); Vision vision = (Vision)getBeliefbase().getBelief("vision").getFact(); for(int i=0; i<food.length; i++) { if(!vision.contains(food[i])) { // avoid running back directly to forbidden food if (getBeliefbase().getBeliefSet("food").containsFact(food[i])) getBeliefbase().getBeliefSet("food").removeFact(food[i]); forb.removeFact(food[i]); //System.out.println("REMOVING forb"); } } } }
/** * The body method is called on the * instatiated plan instance from the scheduler. */ public void body() { Settings sets = (Settings)getScope().getBeliefbase().getBelief("settings").getFact(); Alarm[] sas = sets.getAlarms(); Alarm[] bas = (Alarm[])getScope().getBeliefbase().getBeliefSet("alarms").getFacts(); // Remove obsolete alarms from the setztings. for(int i=0; i<sas.length; i++) { if(!SUtil.arrayContains(bas, sas[i])) sets.removeAlarm(sas[i]); } // Add new alarms to the settings. for(int i=0; i<bas.length; i++) { if(!SUtil.arrayContains(sas, bas[i])) sets.addAlarm(bas[i]); } } }