vehicle agents using moveToXZ

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

vehicle agents using moveToXZ

Vin Baines
Hi All,

Having a few problems with a scenario I'm working on, wondering if I'm  
doing something fundamentally wrong with the architecture..

I've got a number of 'vehicles' which are collections of agents e.g.  
driver agent, control agent, fuel management agent. Control agent  
receives position updates from simulation, and can perform acts on  
simulated vehicle to control it.

Problem I've got is with the driver agent, it should be able to  
achieve a goal of moving to an X Z position. I've got the underlying  
move controls working, but I'm not sure about the layout of my plan.

I've cut out the basics of the driver agent below.

But, what I'm not sure about: is this a reasonable approach? would I  
be better with 'if' statements? Something just doesn't feel quite  
right about the looping..

It works, but I get a few errors,
[Atom] You should not add annot 'source(self)' in atom cruise
and usually a fail plan event when it arrives.
[convoyFollower] Found a goal for which there is no  
relevant/applicable plan:+!followXZ[source(self)]
[convoyFollower] No fail event was generated for +!followXZ[source(self)]

What I'm trying to do is have one vehicle follow another, by having  
the follower ask the leader its position. Next step is to get it  
following by asking the leader about its plans. The first step is  
working, but I'd be interested to hear whether I'm being sensible, or  
its just luck that its working!


distanceRemaining(0, 50, arrivedAtDestination).
distanceRemaining(51, 10000, cruise).

+!arrivedAtDestination : true & started(Owner) <- .print("arrived");
                                        .send(Owner, achieve, chosenSpeed(0));
                                        print("stopped");
                                        //ADD BELIEF WE'VE ARRIVED
                                        +arrived(true);
                                  .drop_desire(moveToXZ(X,Z)).
+!cruise : true & started(Owner) <- //.print("cruising default");
                                        .send(Owner, achieve, chosenSpeed(10)).

+!moveToXZ(X1,Z1) : arrived(true) <- .print("called the alternative  
moveToXZ to drop desire"); .drop_desire(moveToXZ(X,Z)).

+!moveToXZ(X1,Z1) : entityUpdate(X,_,Z,_,_,_,_)
& started(Owner)
& DX=(X-X1) & DZ=(Z-Z1)
&  test.test1(X,X1,Z,Z1,R2)
& D1 = math.abs(DX)+math.abs(DZ)
//AND CHECK NOT EXIST BELIEF WE'VE ARRIVED
& distanceRemaining(MIN,MAX,GOAL) & MIN <= D1 & MAX >= D1
        <- .send(Owner,achieve,requestTurnToAngle(R2));
        .wait(1500);
        !GOAL;
        !!moveToXZ(X1,Z1).



------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
Jason-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jason-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: vehicle agents using moveToXZ

Jomi Hubner
Dear Vin,

I couldn't reproduce your error. Which version of Jason are you using?

Jomi

On 15/06/2011, at 08:11, Vin Baines wrote:

> Hi All,
>
> Having a few problems with a scenario I'm working on, wondering if I'm  
> doing something fundamentally wrong with the architecture..
>
> I've got a number of 'vehicles' which are collections of agents e.g.  
> driver agent, control agent, fuel management agent. Control agent  
> receives position updates from simulation, and can perform acts on  
> simulated vehicle to control it.
>
> Problem I've got is with the driver agent, it should be able to  
> achieve a goal of moving to an X Z position. I've got the underlying  
> move controls working, but I'm not sure about the layout of my plan.
>
> I've cut out the basics of the driver agent below.
>
> But, what I'm not sure about: is this a reasonable approach? would I  
> be better with 'if' statements? Something just doesn't feel quite  
> right about the looping..
>
> It works, but I get a few errors,
> [Atom] You should not add annot 'source(self)' in atom cruise
> and usually a fail plan event when it arrives.
> [convoyFollower] Found a goal for which there is no  
> relevant/applicable plan:+!followXZ[source(self)]
> [convoyFollower] No fail event was generated for +!followXZ[source(self)]
>
> What I'm trying to do is have one vehicle follow another, by having  
> the follower ask the leader its position. Next step is to get it  
> following by asking the leader about its plans. The first step is  
> working, but I'd be interested to hear whether I'm being sensible, or  
> its just luck that its working!
>
>
> distanceRemaining(0, 50, arrivedAtDestination).
> distanceRemaining(51, 10000, cruise).
>
> +!arrivedAtDestination : true & started(Owner) <- .print("arrived");
> .send(Owner, achieve, chosenSpeed(0));
> print("stopped");
> //ADD BELIEF WE'VE ARRIVED
> +arrived(true);
>  .drop_desire(moveToXZ(X,Z)).
> +!cruise : true & started(Owner) <- //.print("cruising default");
> .send(Owner, achieve, chosenSpeed(10)).
>
> +!moveToXZ(X1,Z1) : arrived(true) <- .print("called the alternative  
> moveToXZ to drop desire"); .drop_desire(moveToXZ(X,Z)).
>
> +!moveToXZ(X1,Z1) : entityUpdate(X,_,Z,_,_,_,_)
> & started(Owner)
> & DX=(X-X1) & DZ=(Z-Z1)
> &  test.test1(X,X1,Z,Z1,R2)
> & D1 = math.abs(DX)+math.abs(DZ)
> //AND CHECK NOT EXIST BELIEF WE'VE ARRIVED
> & distanceRemaining(MIN,MAX,GOAL) & MIN <= D1 & MAX >= D1
> <- .send(Owner,achieve,requestTurnToAngle(R2));
> .wait(1500);
> !GOAL;
> !!moveToXZ(X1,Z1).
>
>
>
> ------------------------------------------------------------------------------
> EditLive Enterprise is the world's most technically advanced content
> authoring tool. Experience the power of Track Changes, Inline Image
> Editing and ensure content is compliant with Accessibility Checking.
> http://p.sf.net/sfu/ephox-dev2dev
> _______________________________________________
> Jason-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/jason-users

--
Jomi Fred Hubner
Federal University of Santa Catarina
Department of Automation and Systems Engineering
PO Box 476, Florianópolis, SC
88040-900 Brazil
http://www.das.ufsc.br/~jomi


------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
Jason-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jason-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: vehicle agents using moveToXZ

Vin Baines
Hi Jomi,

Hmm.. OK, download 1.3.4 and compiled it (had to add in a javacc.jar  
which seems a new dependency?)

Looks like there are a few changes too, I've changed over
Literal info = new Literal("info");
to
LiteralImpl info = new LiteralImpl("info");

and when getting agent names,
Class c = Class.forName(classPar.className);
is now
Class c = Class.forName(classPar.getClassName());

Everything compiles OK, but now I get alot of strange output:

[driver_a] driver agent has started by central2
[convoyFollower] I've started
[convoyFollower] got told something about which vehicle to follow: central
[driver] driver agent has started by central
[Environment] The action turnToAngle(40.907071492138506) done by  
central is not implemented in the default environment.
[Environment] The action turnToAngle(40.907071492138506) done by  
central is not implemented in the default environment.
[Environment] The action turnToAngle(40.907071492138506) done by  
central is not implemented in the default environment.
[Environment] The action turnToAngle(40.907071492138506) done by  
central is not implemented in the default environment.
[convoyLeader] I've started

The vehicle drives off, so some of the requests seem to be handled by  
the driver/central agent into simulatiom. I think this output has  
maybe replaced the Atom error from before?

FYI, the turnToAngle comes from:
+!requestTurnToAngle(A) : true <- //.print("Central Agent told to  
achieve angle ", A);
turnToAngle(A).

Which is a call made back to the simulation environment where  
turnToAngle is implemented (to physically turn the wheels of the  
simulated vehicle)

Has something else changed between versions? Do I need to change some  
declarations from the simulated environment?

Thanks!

Vin

Quoting Jomi Hubner <[hidden email]>:

>
> On 18/06/2011, at 02:43, Vin Baines wrote:
>
>> Hi Jomi,
>>
>> Many thanks for looking at this!
>>
>> I'm using 1.3.3, do you think I should upgrade?
>
> Yes, if you don't mind. I remember to have fixed a related bug quite  
>  recently...
>
> Jomi
>
>>
>> It's strange, the error doesn't crash anything, just seems to occur  
>>  for the first addition of the belief, these lines are run by the  
>> central control agent:
>> .send(driver, tell, started(N));
>> .send(driver, achieve, moveToXZ(100,2100)).
>>
>> and you can see the affect of them from the output:
>>
>> [driver] driver agent has started by central
>> [driver] planning to move to 100 2100 and at 8.40046501159668  
>> 2019.8753662109375
>> [Atom] You should not add annot 'source(self)' in atom cruise
>>
>> java.lang.Exception
>> at jason.asSyntax.Atom.addAnnot(Atom.java:141)
>> at jason.asSyntax.VarTerm.addAnnot(VarTerm.java:426)
>> at  
>> jason.asSemantics.TransitionSystem.applyExecInt(TransitionSystem.java:466)
>> at  
>> jason.asSemantics.TransitionSystem.applySemanticRule(TransitionSystem.java:126)
>> at  
>> jason.asSemantics.TransitionSystem.reasoningCycle(TransitionSystem.java:868)
>> at  
>> jason.infra.centralised.CentralisedAgArch.run(CentralisedAgArch.java:197)
>> at java.lang.Thread.run(Thread.java:619)
>>
>> Vin
>>
>>
>> Quoting Jomi Hubner <[hidden email]>:
>>
>>> Dear Vin,
>>>
>>> I couldn't reproduce your error. Which version of Jason are you using?
>>>
>>> Jomi
>>>
>>> On 15/06/2011, at 08:11, Vin Baines wrote:
>>>
>>>> Hi All,
>>>>
>>>> Having a few problems with a scenario I'm working on, wondering if I'm
>>>> doing something fundamentally wrong with the architecture..
>>>>
>>>> I've got a number of 'vehicles' which are collections of agents e.g.
>>>> driver agent, control agent, fuel management agent. Control agent
>>>> receives position updates from simulation, and can perform acts on
>>>> simulated vehicle to control it.
>>>>
>>>> Problem I've got is with the driver agent, it should be able to
>>>> achieve a goal of moving to an X Z position. I've got the underlying
>>>> move controls working, but I'm not sure about the layout of my plan.
>>>>
>>>> I've cut out the basics of the driver agent below.
>>>>
>>>> But, what I'm not sure about: is this a reasonable approach? would I
>>>> be better with 'if' statements? Something just doesn't feel quite
>>>> right about the looping..
>>>>
>>>> It works, but I get a few errors,
>>>> [Atom] You should not add annot 'source(self)' in atom cruise
>>>> and usually a fail plan event when it arrives.
>>>> [convoyFollower] Found a goal for which there is no
>>>> relevant/applicable plan:+!followXZ[source(self)]
>>>> [convoyFollower] No fail event was generated for +!followXZ[source(self)]
>>>>
>>>> What I'm trying to do is have one vehicle follow another, by having
>>>> the follower ask the leader its position. Next step is to get it
>>>> following by asking the leader about its plans. The first step is
>>>> working, but I'd be interested to hear whether I'm being sensible, or
>>>> its just luck that its working!
>>>>
>>>>
>>>> distanceRemaining(0, 50, arrivedAtDestination).
>>>> distanceRemaining(51, 10000, cruise).
>>>>
>>>> +!arrivedAtDestination : true & started(Owner) <- .print("arrived");
>>>> .send(Owner, achieve, chosenSpeed(0));
>>>> print("stopped");
>>>> //ADD BELIEF WE'VE ARRIVED
>>>> +arrived(true);
>>>>  .drop_desire(moveToXZ(X,Z)).
>>>> +!cruise : true & started(Owner) <- //.print("cruising default");
>>>> .send(Owner, achieve, chosenSpeed(10)).
>>>>
>>>> +!moveToXZ(X1,Z1) : arrived(true) <- .print("called the alternative
>>>> moveToXZ to drop desire"); .drop_desire(moveToXZ(X,Z)).
>>>>
>>>> +!moveToXZ(X1,Z1) : entityUpdate(X,_,Z,_,_,_,_)
>>>> & started(Owner)
>>>> & DX=(X-X1) & DZ=(Z-Z1)
>>>> &  test.test1(X,X1,Z,Z1,R2)
>>>> & D1 = math.abs(DX)+math.abs(DZ)
>>>> //AND CHECK NOT EXIST BELIEF WE'VE ARRIVED
>>>> & distanceRemaining(MIN,MAX,GOAL) & MIN <= D1 & MAX >= D1
>>>> <- .send(Owner,achieve,requestTurnToAngle(R2));
>>>> .wait(1500);
>>>> !GOAL;
>>>> !!moveToXZ(X1,Z1).
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> EditLive Enterprise is the world's most technically advanced content
>>>> authoring tool. Experience the power of Track Changes, Inline Image
>>>> Editing and ensure content is compliant with Accessibility Checking.
>>>> http://p.sf.net/sfu/ephox-dev2dev
>>>> _______________________________________________
>>>> Jason-users mailing list
>>>> [hidden email]
>>>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>>
>>> --
>>> Jomi Fred Hubner
>>> Federal University of Santa Catarina
>>> Department of Automation and Systems Engineering
>>> PO Box 476, Florianópolis, SC
>>> 88040-900 Brazil
>>> http://www.das.ufsc.br/~jomi
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> EditLive Enterprise is the world's most technically advanced content
>>> authoring tool. Experience the power of Track Changes, Inline Image
>>> Editing and ensure content is compliant with Accessibility Checking.
>>> http://p.sf.net/sfu/ephox-dev2dev
>>> _______________________________________________
>>> Jason-users mailing list
>>> [hidden email]
>>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>>
>>>
>>
>>
>>
>
> --
> Jomi Fred Hubner
> Federal University of Santa Catarina
> Department of Automation and Systems Engineering
> PO Box 476, Florianópolis, SC
> 88040-900 Brazil
> http://www.das.ufsc.br/~jomi
>
>
>




------------------------------------------------------------------------------
Simplify data backup and recovery for your virtual environment with vRanger.
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Data protection magic?
Nope - It's vRanger. Get your free trial download today.
http://p.sf.net/sfu/quest-sfdev2dev
_______________________________________________
Jason-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jason-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: vehicle agents using moveToXZ

Rafael H Bordini-2
Hi Vin,

Did you specify the correct class with your simulated environment in the
mas2j file? If so, you probably forgot to return (with true, probably)
when your implementation of  "turnToAngle" in the environment finished
changing the simulated model. The environment gives out that message for
(external) actions that were not implemented yet.

BTW, there are some strange parts in your code. For example, in a plan
context "true & started(Owner)" could be written just "started(Owner)"
(recall the identity laws of classical logic)

Cheers,

Rafael

On 22/06/2011 08:27, Vin Baines wrote:

> Hi Jomi,
>
> Hmm.. OK, download 1.3.4 and compiled it (had to add in a javacc.jar
> which seems a new dependency?)
>
> Looks like there are a few changes too, I've changed over
> Literal info = new Literal("info");
> to
> LiteralImpl info = new LiteralImpl("info");
>
> and when getting agent names,
> Class c = Class.forName(classPar.className);
> is now
> Class c = Class.forName(classPar.getClassName());
>
> Everything compiles OK, but now I get alot of strange output:
>
> [driver_a] driver agent has started by central2
> [convoyFollower] I've started
> [convoyFollower] got told something about which vehicle to follow: central
> [driver] driver agent has started by central
> [Environment] The action turnToAngle(40.907071492138506) done by
> central is not implemented in the default environment.
> [Environment] The action turnToAngle(40.907071492138506) done by
> central is not implemented in the default environment.
> [Environment] The action turnToAngle(40.907071492138506) done by
> central is not implemented in the default environment.
> [Environment] The action turnToAngle(40.907071492138506) done by
> central is not implemented in the default environment.
> [convoyLeader] I've started
>
> The vehicle drives off, so some of the requests seem to be handled by
> the driver/central agent into simulatiom. I think this output has
> maybe replaced the Atom error from before?
>
> FYI, the turnToAngle comes from:
> +!requestTurnToAngle(A) : true<- //.print("Central Agent told to
> achieve angle ", A);
> turnToAngle(A).
>
> Which is a call made back to the simulation environment where
> turnToAngle is implemented (to physically turn the wheels of the
> simulated vehicle)
>
> Has something else changed between versions? Do I need to change some
> declarations from the simulated environment?
>
> Thanks!
>
> Vin
>
> Quoting Jomi Hubner<[hidden email]>:
>
>> On 18/06/2011, at 02:43, Vin Baines wrote:
>>
>>> Hi Jomi,
>>>
>>> Many thanks for looking at this!
>>>
>>> I'm using 1.3.3, do you think I should upgrade?
>> Yes, if you don't mind. I remember to have fixed a related bug quite
>>   recently...
>>
>> Jomi
>>
>>> It's strange, the error doesn't crash anything, just seems to occur
>>>   for the first addition of the belief, these lines are run by the
>>> central control agent:
>>> .send(driver, tell, started(N));
>>> .send(driver, achieve, moveToXZ(100,2100)).
>>>
>>> and you can see the affect of them from the output:
>>>
>>> [driver] driver agent has started by central
>>> [driver] planning to move to 100 2100 and at 8.40046501159668
>>> 2019.8753662109375
>>> [Atom] You should not add annot 'source(self)' in atom cruise
>>>
>>> java.lang.Exception
>>> at jason.asSyntax.Atom.addAnnot(Atom.java:141)
>>> at jason.asSyntax.VarTerm.addAnnot(VarTerm.java:426)
>>> at
>>> jason.asSemantics.TransitionSystem.applyExecInt(TransitionSystem.java:466)
>>> at
>>> jason.asSemantics.TransitionSystem.applySemanticRule(TransitionSystem.java:126)
>>> at
>>> jason.asSemantics.TransitionSystem.reasoningCycle(TransitionSystem.java:868)
>>> at
>>> jason.infra.centralised.CentralisedAgArch.run(CentralisedAgArch.java:197)
>>> at java.lang.Thread.run(Thread.java:619)
>>>
>>> Vin
>>>
>>>
>>> Quoting Jomi Hubner<[hidden email]>:
>>>
>>>> Dear Vin,
>>>>
>>>> I couldn't reproduce your error. Which version of Jason are you using?
>>>>
>>>> Jomi
>>>>
>>>> On 15/06/2011, at 08:11, Vin Baines wrote:
>>>>
>>>>> Hi All,
>>>>>
>>>>> Having a few problems with a scenario I'm working on, wondering if I'm
>>>>> doing something fundamentally wrong with the architecture..
>>>>>
>>>>> I've got a number of 'vehicles' which are collections of agents e.g.
>>>>> driver agent, control agent, fuel management agent. Control agent
>>>>> receives position updates from simulation, and can perform acts on
>>>>> simulated vehicle to control it.
>>>>>
>>>>> Problem I've got is with the driver agent, it should be able to
>>>>> achieve a goal of moving to an X Z position. I've got the underlying
>>>>> move controls working, but I'm not sure about the layout of my plan.
>>>>>
>>>>> I've cut out the basics of the driver agent below.
>>>>>
>>>>> But, what I'm not sure about: is this a reasonable approach? would I
>>>>> be better with 'if' statements? Something just doesn't feel quite
>>>>> right about the looping..
>>>>>
>>>>> It works, but I get a few errors,
>>>>> [Atom] You should not add annot 'source(self)' in atom cruise
>>>>> and usually a fail plan event when it arrives.
>>>>> [convoyFollower] Found a goal for which there is no
>>>>> relevant/applicable plan:+!followXZ[source(self)]
>>>>> [convoyFollower] No fail event was generated for +!followXZ[source(self)]
>>>>>
>>>>> What I'm trying to do is have one vehicle follow another, by having
>>>>> the follower ask the leader its position. Next step is to get it
>>>>> following by asking the leader about its plans. The first step is
>>>>> working, but I'd be interested to hear whether I'm being sensible, or
>>>>> its just luck that its working!
>>>>>
>>>>>
>>>>> distanceRemaining(0, 50, arrivedAtDestination).
>>>>> distanceRemaining(51, 10000, cruise).
>>>>>
>>>>> +!arrivedAtDestination : true&  started(Owner)<- .print("arrived");
>>>>> .send(Owner, achieve, chosenSpeed(0));
>>>>> print("stopped");
>>>>> //ADD BELIEF WE'VE ARRIVED
>>>>> +arrived(true);
>>>>>  .drop_desire(moveToXZ(X,Z)).
>>>>> +!cruise : true&  started(Owner)<- //.print("cruising default");
>>>>> .send(Owner, achieve, chosenSpeed(10)).
>>>>>
>>>>> +!moveToXZ(X1,Z1) : arrived(true)<- .print("called the alternative
>>>>> moveToXZ to drop desire"); .drop_desire(moveToXZ(X,Z)).
>>>>>
>>>>> +!moveToXZ(X1,Z1) : entityUpdate(X,_,Z,_,_,_,_)
>>>>> &  started(Owner)
>>>>> &  DX=(X-X1)&  DZ=(Z-Z1)
>>>>> &   test.test1(X,X1,Z,Z1,R2)
>>>>> &  D1 = math.abs(DX)+math.abs(DZ)
>>>>> //AND CHECK NOT EXIST BELIEF WE'VE ARRIVED
>>>>> &  distanceRemaining(MIN,MAX,GOAL)&  MIN<= D1&  MAX>= D1
>>>>> <- .send(Owner,achieve,requestTurnToAngle(R2));
>>>>> .wait(1500);
>>>>> !GOAL;
>>>>> !!moveToXZ(X1,Z1).
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> EditLive Enterprise is the world's most technically advanced content
>>>>> authoring tool. Experience the power of Track Changes, Inline Image
>>>>> Editing and ensure content is compliant with Accessibility Checking.
>>>>> http://p.sf.net/sfu/ephox-dev2dev
>>>>> _______________________________________________
>>>>> Jason-users mailing list
>>>>> [hidden email]
>>>>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>>> --
>>>> Jomi Fred Hubner
>>>> Federal University of Santa Catarina
>>>> Department of Automation and Systems Engineering
>>>> PO Box 476, Florianópolis, SC
>>>> 88040-900 Brazil
>>>> http://www.das.ufsc.br/~jomi
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> EditLive Enterprise is the world's most technically advanced content
>>>> authoring tool. Experience the power of Track Changes, Inline Image
>>>> Editing and ensure content is compliant with Accessibility Checking.
>>>> http://p.sf.net/sfu/ephox-dev2dev
>>>> _______________________________________________
>>>> Jason-users mailing list
>>>> [hidden email]
>>>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>>>
>>>>
>>>
>>>
>> --
>> Jomi Fred Hubner
>> Federal University of Santa Catarina
>> Department of Automation and Systems Engineering
>> PO Box 476, Florianópolis, SC
>> 88040-900 Brazil
>> http://www.das.ufsc.br/~jomi
>>
>>
>>
>
>
>
> ------------------------------------------------------------------------------
> Simplify data backup and recovery for your virtual environment with vRanger.
> Installation's a snap, and flexible recovery options mean your data is safe,
> secure and there when you need it. Data protection magic?
> Nope - It's vRanger. Get your free trial download today.
> http://p.sf.net/sfu/quest-sfdev2dev
> _______________________________________________
> Jason-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/jason-users


------------------------------------------------------------------------------
Simplify data backup and recovery for your virtual environment with vRanger.
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Data protection magic?
Nope - It's vRanger. Get your free trial download today.
http://p.sf.net/sfu/quest-sfdev2dev
_______________________________________________
Jason-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jason-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: vehicle agents using moveToXZ

Vin Baines
Hi Rafael,

I thought I was.. but maybe not. mas2j is basically:

        infrastructure: Centralised
        environment: br.furb.inf.tcc.tankcoders.jason.TankCodersEnvironment("-debug")
        agents:
          central2 agentArchClass br.furb.inf.tcc.tankcoders.jason.TankAgArch;
          central agentArchClass br.furb.inf.tcc.tankcoders.jason.TankAgArch;

Have attached those java files, not sure if helps much but might give  
a clue to the implementation.

In the simulated environment, the vehicles perform exactly as they did  
with jason 1.3.3 (I would add a link to the video but I'm having codec  
problems, scenario with 1.3.3 is here  
http://people.bath.ac.uk/vb216/follow.avi), the only differnce with  
1.3.4 is this new error message. Is that some additional error  
checking? I can see the methods are being called at each cycle as the  
vehicles behave as expected.

I'm trying to think through the code, I'm not sure what kind of return  
would be expected?

+Jomi - sorry, something went wrong with the zip file extraction on my  
PC, it hadn't extracted the javacc lib. I re-ran the extraction, and  
it worked fine the second time and no need for the additional javacc  
download.

Vin

Quoting Rafael H Bordini <[hidden email]>:

> Hi Vin,
>
> Did you specify the correct class with your simulated environment in the
> mas2j file? If so, you probably forgot to return (with true, probably)
> when your implementation of  "turnToAngle" in the environment finished
> changing the simulated model. The environment gives out that message for
> (external) actions that were not implemented yet.
>
> BTW, there are some strange parts in your code. For example, in a plan
> context "true & started(Owner)" could be written just "started(Owner)"
> (recall the identity laws of classical logic)
>
> Cheers,
>
> Rafael
>
> On 22/06/2011 08:27, Vin Baines wrote:
>> Hi Jomi,
>>
>> Hmm.. OK, download 1.3.4 and compiled it (had to add in a javacc.jar
>> which seems a new dependency?)
>>
>> Looks like there are a few changes too, I've changed over
>> Literal info = new Literal("info");
>> to
>> LiteralImpl info = new LiteralImpl("info");
>>
>> and when getting agent names,
>> Class c = Class.forName(classPar.className);
>> is now
>> Class c = Class.forName(classPar.getClassName());
>>
>> Everything compiles OK, but now I get alot of strange output:
>>
>> [driver_a] driver agent has started by central2
>> [convoyFollower] I've started
>> [convoyFollower] got told something about which vehicle to follow: central
>> [driver] driver agent has started by central
>> [Environment] The action turnToAngle(40.907071492138506) done by
>> central is not implemented in the default environment.
>> [Environment] The action turnToAngle(40.907071492138506) done by
>> central is not implemented in the default environment.
>> [Environment] The action turnToAngle(40.907071492138506) done by
>> central is not implemented in the default environment.
>> [Environment] The action turnToAngle(40.907071492138506) done by
>> central is not implemented in the default environment.
>> [convoyLeader] I've started
>>
>> The vehicle drives off, so some of the requests seem to be handled by
>> the driver/central agent into simulatiom. I think this output has
>> maybe replaced the Atom error from before?
>>
>> FYI, the turnToAngle comes from:
>> +!requestTurnToAngle(A) : true<- //.print("Central Agent told to
>> achieve angle ", A);
>> turnToAngle(A).
>>
>> Which is a call made back to the simulation environment where
>> turnToAngle is implemented (to physically turn the wheels of the
>> simulated vehicle)
>>
>> Has something else changed between versions? Do I need to change some
>> declarations from the simulated environment?
>>
>> Thanks!
>>
>> Vin
>>
>> Quoting Jomi Hubner<[hidden email]>:
>>
>>> On 18/06/2011, at 02:43, Vin Baines wrote:
>>>
>>>> Hi Jomi,
>>>>
>>>> Many thanks for looking at this!
>>>>
>>>> I'm using 1.3.3, do you think I should upgrade?
>>> Yes, if you don't mind. I remember to have fixed a related bug quite
>>>   recently...
>>>
>>> Jomi
>>>
>>>> It's strange, the error doesn't crash anything, just seems to occur
>>>>   for the first addition of the belief, these lines are run by the
>>>> central control agent:
>>>> .send(driver, tell, started(N));
>>>> .send(driver, achieve, moveToXZ(100,2100)).
>>>>
>>>> and you can see the affect of them from the output:
>>>>
>>>> [driver] driver agent has started by central
>>>> [driver] planning to move to 100 2100 and at 8.40046501159668
>>>> 2019.8753662109375
>>>> [Atom] You should not add annot 'source(self)' in atom cruise
>>>>
>>>> java.lang.Exception
>>>> at jason.asSyntax.Atom.addAnnot(Atom.java:141)
>>>> at jason.asSyntax.VarTerm.addAnnot(VarTerm.java:426)
>>>> at
>>>> jason.asSemantics.TransitionSystem.applyExecInt(TransitionSystem.java:466)
>>>> at
>>>> jason.asSemantics.TransitionSystem.applySemanticRule(TransitionSystem.java:126)
>>>> at
>>>> jason.asSemantics.TransitionSystem.reasoningCycle(TransitionSystem.java:868)
>>>> at
>>>> jason.infra.centralised.CentralisedAgArch.run(CentralisedAgArch.java:197)
>>>> at java.lang.Thread.run(Thread.java:619)
>>>>
>>>> Vin
>>>>
>>>>
>>>> Quoting Jomi Hubner<[hidden email]>:
>>>>
>>>>> Dear Vin,
>>>>>
>>>>> I couldn't reproduce your error. Which version of Jason are you using?
>>>>>
>>>>> Jomi
>>>>>
>>>>> On 15/06/2011, at 08:11, Vin Baines wrote:
>>>>>
>>>>>> Hi All,
>>>>>>
>>>>>> Having a few problems with a scenario I'm working on, wondering if I'm
>>>>>> doing something fundamentally wrong with the architecture..
>>>>>>
>>>>>> I've got a number of 'vehicles' which are collections of agents e.g.
>>>>>> driver agent, control agent, fuel management agent. Control agent
>>>>>> receives position updates from simulation, and can perform acts on
>>>>>> simulated vehicle to control it.
>>>>>>
>>>>>> Problem I've got is with the driver agent, it should be able to
>>>>>> achieve a goal of moving to an X Z position. I've got the underlying
>>>>>> move controls working, but I'm not sure about the layout of my plan.
>>>>>>
>>>>>> I've cut out the basics of the driver agent below.
>>>>>>
>>>>>> But, what I'm not sure about: is this a reasonable approach? would I
>>>>>> be better with 'if' statements? Something just doesn't feel quite
>>>>>> right about the looping..
>>>>>>
>>>>>> It works, but I get a few errors,
>>>>>> [Atom] You should not add annot 'source(self)' in atom cruise
>>>>>> and usually a fail plan event when it arrives.
>>>>>> [convoyFollower] Found a goal for which there is no
>>>>>> relevant/applicable plan:+!followXZ[source(self)]
>>>>>> [convoyFollower] No fail event was generated for  
>>>>>> +!followXZ[source(self)]
>>>>>>
>>>>>> What I'm trying to do is have one vehicle follow another, by having
>>>>>> the follower ask the leader its position. Next step is to get it
>>>>>> following by asking the leader about its plans. The first step is
>>>>>> working, but I'd be interested to hear whether I'm being sensible, or
>>>>>> its just luck that its working!
>>>>>>
>>>>>>
>>>>>> distanceRemaining(0, 50, arrivedAtDestination).
>>>>>> distanceRemaining(51, 10000, cruise).
>>>>>>
>>>>>> +!arrivedAtDestination : true&  started(Owner)<- .print("arrived");
>>>>>> .send(Owner, achieve, chosenSpeed(0));
>>>>>> print("stopped");
>>>>>> //ADD BELIEF WE'VE ARRIVED
>>>>>> +arrived(true);
>>>>>>  .drop_desire(moveToXZ(X,Z)).
>>>>>> +!cruise : true&  started(Owner)<- //.print("cruising default");
>>>>>> .send(Owner, achieve, chosenSpeed(10)).
>>>>>>
>>>>>> +!moveToXZ(X1,Z1) : arrived(true)<- .print("called the alternative
>>>>>> moveToXZ to drop desire"); .drop_desire(moveToXZ(X,Z)).
>>>>>>
>>>>>> +!moveToXZ(X1,Z1) : entityUpdate(X,_,Z,_,_,_,_)
>>>>>> &  started(Owner)
>>>>>> &  DX=(X-X1)&  DZ=(Z-Z1)
>>>>>> &   test.test1(X,X1,Z,Z1,R2)
>>>>>> &  D1 = math.abs(DX)+math.abs(DZ)
>>>>>> //AND CHECK NOT EXIST BELIEF WE'VE ARRIVED
>>>>>> &  distanceRemaining(MIN,MAX,GOAL)&  MIN<= D1&  MAX>= D1
>>>>>> <- .send(Owner,achieve,requestTurnToAngle(R2));
>>>>>> .wait(1500);
>>>>>> !GOAL;
>>>>>> !!moveToXZ(X1,Z1).
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>> EditLive Enterprise is the world's most technically advanced content
>>>>>> authoring tool. Experience the power of Track Changes, Inline Image
>>>>>> Editing and ensure content is compliant with Accessibility Checking.
>>>>>> http://p.sf.net/sfu/ephox-dev2dev
>>>>>> _______________________________________________
>>>>>> Jason-users mailing list
>>>>>> [hidden email]
>>>>>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>>>> --
>>>>> Jomi Fred Hubner
>>>>> Federal University of Santa Catarina
>>>>> Department of Automation and Systems Engineering
>>>>> PO Box 476, Florianópolis, SC
>>>>> 88040-900 Brazil
>>>>> http://www.das.ufsc.br/~jomi
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> EditLive Enterprise is the world's most technically advanced content
>>>>> authoring tool. Experience the power of Track Changes, Inline Image
>>>>> Editing and ensure content is compliant with Accessibility Checking.
>>>>> http://p.sf.net/sfu/ephox-dev2dev
>>>>> _______________________________________________
>>>>> Jason-users mailing list
>>>>> [hidden email]
>>>>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>>>>
>>>>>
>>>>
>>>>
>>> --
>>> Jomi Fred Hubner
>>> Federal University of Santa Catarina
>>> Department of Automation and Systems Engineering
>>> PO Box 476, Florianópolis, SC
>>> 88040-900 Brazil
>>> http://www.das.ufsc.br/~jomi
>>>
>>>
>>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Simplify data backup and recovery for your virtual environment with vRanger.
>> Installation's a snap, and flexible recovery options mean your data is safe,
>> secure and there when you need it. Data protection magic?
>> Nope - It's vRanger. Get your free trial download today.
>> http://p.sf.net/sfu/quest-sfdev2dev
>> _______________________________________________
>> Jason-users mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/jason-users
>
>
> ------------------------------------------------------------------------------
> Simplify data backup and recovery for your virtual environment with vRanger.
> Installation's a snap, and flexible recovery options mean your data is safe,
> secure and there when you need it. Data protection magic?
> Nope - It's vRanger. Get your free trial download today.
> http://p.sf.net/sfu/quest-sfdev2dev
> _______________________________________________
> Jason-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/jason-users
>
>


------------------------------------------------------------------------------
Simplify data backup and recovery for your virtual environment with vRanger.
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Data protection magic?
Nope - It's vRanger. Get your free trial download today.
http://p.sf.net/sfu/quest-sfdev2dev
_______________________________________________
Jason-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jason-users

TankAgArch.java (6K) Download Attachment
TankCodersEnvironment.java (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: vehicle agents using moveToXZ

Vin Baines
Hi All,

Well, made some progress. If I override the executeAction method  
inherited from Environment, e.g.

public class TankCodersEnvironment extends Environment {

@Override
     public boolean executeAction(String agName, Structure act) {
        // System.out.println("The action is not implemented in the  
default environment.");
         return true;
     }

Then I don't get these errors:
[Environment] The action turnToAngle(40.907071492138506) done by  
central is not implemented in the default environment.

Don't know why I suddenly started getting this error in 1.3.4, maybe  
the previous "[Atom] You should not add annot 'source(self)' in atom  
cruise" message was blocking it?

But, is this approach OK? Currently all of the actions are in an  
extension of AgArch, and that seems to work ok. But it seems that  
there is also an attempt to execute actions from the Environment class.

I guess maybe its nothing major, everything seems to work alot better  
now, but I don't want to be breaking intended implementation approach  
/ using some costly implementation.

Cheers!

Vin

Quoting Vin Baines <[hidden email]>:

> Hi Rafael,
>
> I thought I was.. but maybe not. mas2j is basically:
>
> infrastructure: Centralised
> environment:  
> br.furb.inf.tcc.tankcoders.jason.TankCodersEnvironment("-debug")
> agents:
>  central2 agentArchClass br.furb.inf.tcc.tankcoders.jason.TankAgArch;
>  central agentArchClass br.furb.inf.tcc.tankcoders.jason.TankAgArch;
>
> Have attached those java files, not sure if helps much but might give
> a clue to the implementation.
>
> In the simulated environment, the vehicles perform exactly as they did
> with jason 1.3.3 (I would add a link to the video but I'm having codec
> problems, scenario with 1.3.3 is here
> http://people.bath.ac.uk/vb216/follow.avi), the only differnce with
> 1.3.4 is this new error message. Is that some additional error
> checking? I can see the methods are being called at each cycle as the
> vehicles behave as expected.
>
> I'm trying to think through the code, I'm not sure what kind of return
> would be expected?
>
> +Jomi - sorry, something went wrong with the zip file extraction on my
> PC, it hadn't extracted the javacc lib. I re-ran the extraction, and
> it worked fine the second time and no need for the additional javacc
> download.
>
> Vin
>
> Quoting Rafael H Bordini <[hidden email]>:
>
>> Hi Vin,
>>
>> Did you specify the correct class with your simulated environment in the
>> mas2j file? If so, you probably forgot to return (with true, probably)
>> when your implementation of  "turnToAngle" in the environment finished
>> changing the simulated model. The environment gives out that message for
>> (external) actions that were not implemented yet.
>>
>> BTW, there are some strange parts in your code. For example, in a plan
>> context "true & started(Owner)" could be written just "started(Owner)"
>> (recall the identity laws of classical logic)
>>
>> Cheers,
>>
>> Rafael
>>
>> On 22/06/2011 08:27, Vin Baines wrote:
>>> Hi Jomi,
>>>
>>> Hmm.. OK, download 1.3.4 and compiled it (had to add in a javacc.jar
>>> which seems a new dependency?)
>>>
>>> Looks like there are a few changes too, I've changed over
>>> Literal info = new Literal("info");
>>> to
>>> LiteralImpl info = new LiteralImpl("info");
>>>
>>> and when getting agent names,
>>> Class c = Class.forName(classPar.className);
>>> is now
>>> Class c = Class.forName(classPar.getClassName());
>>>
>>> Everything compiles OK, but now I get alot of strange output:
>>>
>>> [driver_a] driver agent has started by central2
>>> [convoyFollower] I've started
>>> [convoyFollower] got told something about which vehicle to follow: central
>>> [driver] driver agent has started by central
>>> [Environment] The action turnToAngle(40.907071492138506) done by
>>> central is not implemented in the default environment.
>>> [Environment] The action turnToAngle(40.907071492138506) done by
>>> central is not implemented in the default environment.
>>> [Environment] The action turnToAngle(40.907071492138506) done by
>>> central is not implemented in the default environment.
>>> [Environment] The action turnToAngle(40.907071492138506) done by
>>> central is not implemented in the default environment.
>>> [convoyLeader] I've started
>>>
>>> The vehicle drives off, so some of the requests seem to be handled by
>>> the driver/central agent into simulatiom. I think this output has
>>> maybe replaced the Atom error from before?
>>>
>>> FYI, the turnToAngle comes from:
>>> +!requestTurnToAngle(A) : true<- //.print("Central Agent told to
>>> achieve angle ", A);
>>> turnToAngle(A).
>>>
>>> Which is a call made back to the simulation environment where
>>> turnToAngle is implemented (to physically turn the wheels of the
>>> simulated vehicle)
>>>
>>> Has something else changed between versions? Do I need to change some
>>> declarations from the simulated environment?
>>>
>>> Thanks!
>>>
>>> Vin
>>>
>>> Quoting Jomi Hubner<[hidden email]>:
>>>
>>>> On 18/06/2011, at 02:43, Vin Baines wrote:
>>>>
>>>>> Hi Jomi,
>>>>>
>>>>> Many thanks for looking at this!
>>>>>
>>>>> I'm using 1.3.3, do you think I should upgrade?
>>>> Yes, if you don't mind. I remember to have fixed a related bug quite
>>>>  recently...
>>>>
>>>> Jomi
>>>>
>>>>> It's strange, the error doesn't crash anything, just seems to occur
>>>>>  for the first addition of the belief, these lines are run by the
>>>>> central control agent:
>>>>> .send(driver, tell, started(N));
>>>>> .send(driver, achieve, moveToXZ(100,2100)).
>>>>>
>>>>> and you can see the affect of them from the output:
>>>>>
>>>>> [driver] driver agent has started by central
>>>>> [driver] planning to move to 100 2100 and at 8.40046501159668
>>>>> 2019.8753662109375
>>>>> [Atom] You should not add annot 'source(self)' in atom cruise
>>>>>
>>>>> java.lang.Exception
>>>>> at jason.asSyntax.Atom.addAnnot(Atom.java:141)
>>>>> at jason.asSyntax.VarTerm.addAnnot(VarTerm.java:426)
>>>>> at
>>>>> jason.asSemantics.TransitionSystem.applyExecInt(TransitionSystem.java:466)
>>>>> at
>>>>> jason.asSemantics.TransitionSystem.applySemanticRule(TransitionSystem.java:126)
>>>>> at
>>>>> jason.asSemantics.TransitionSystem.reasoningCycle(TransitionSystem.java:868)
>>>>> at
>>>>> jason.infra.centralised.CentralisedAgArch.run(CentralisedAgArch.java:197)
>>>>> at java.lang.Thread.run(Thread.java:619)
>>>>>
>>>>> Vin
>>>>>
>>>>>
>>>>> Quoting Jomi Hubner<[hidden email]>:
>>>>>
>>>>>> Dear Vin,
>>>>>>
>>>>>> I couldn't reproduce your error. Which version of Jason are you using?
>>>>>>
>>>>>> Jomi
>>>>>>
>>>>>> On 15/06/2011, at 08:11, Vin Baines wrote:
>>>>>>
>>>>>>> Hi All,
>>>>>>>
>>>>>>> Having a few problems with a scenario I'm working on, wondering if I'm
>>>>>>> doing something fundamentally wrong with the architecture..
>>>>>>>
>>>>>>> I've got a number of 'vehicles' which are collections of agents e.g.
>>>>>>> driver agent, control agent, fuel management agent. Control agent
>>>>>>> receives position updates from simulation, and can perform acts on
>>>>>>> simulated vehicle to control it.
>>>>>>>
>>>>>>> Problem I've got is with the driver agent, it should be able to
>>>>>>> achieve a goal of moving to an X Z position. I've got the underlying
>>>>>>> move controls working, but I'm not sure about the layout of my plan.
>>>>>>>
>>>>>>> I've cut out the basics of the driver agent below.
>>>>>>>
>>>>>>> But, what I'm not sure about: is this a reasonable approach? would I
>>>>>>> be better with 'if' statements? Something just doesn't feel quite
>>>>>>> right about the looping..
>>>>>>>
>>>>>>> It works, but I get a few errors,
>>>>>>> [Atom] You should not add annot 'source(self)' in atom cruise
>>>>>>> and usually a fail plan event when it arrives.
>>>>>>> [convoyFollower] Found a goal for which there is no
>>>>>>> relevant/applicable plan:+!followXZ[source(self)]
>>>>>>> [convoyFollower] No fail event was generated for    
>>>>>>> +!followXZ[source(self)]
>>>>>>>
>>>>>>> What I'm trying to do is have one vehicle follow another, by having
>>>>>>> the follower ask the leader its position. Next step is to get it
>>>>>>> following by asking the leader about its plans. The first step is
>>>>>>> working, but I'd be interested to hear whether I'm being sensible, or
>>>>>>> its just luck that its working!
>>>>>>>
>>>>>>>
>>>>>>> distanceRemaining(0, 50, arrivedAtDestination).
>>>>>>> distanceRemaining(51, 10000, cruise).
>>>>>>>
>>>>>>> +!arrivedAtDestination : true&  started(Owner)<- .print("arrived");
>>>>>>> .send(Owner, achieve, chosenSpeed(0));
>>>>>>> print("stopped");
>>>>>>> //ADD BELIEF WE'VE ARRIVED
>>>>>>> +arrived(true);
>>>>>>>  .drop_desire(moveToXZ(X,Z)).
>>>>>>> +!cruise : true&  started(Owner)<- //.print("cruising default");
>>>>>>> .send(Owner, achieve, chosenSpeed(10)).
>>>>>>>
>>>>>>> +!moveToXZ(X1,Z1) : arrived(true)<- .print("called the alternative
>>>>>>> moveToXZ to drop desire"); .drop_desire(moveToXZ(X,Z)).
>>>>>>>
>>>>>>> +!moveToXZ(X1,Z1) : entityUpdate(X,_,Z,_,_,_,_)
>>>>>>> &  started(Owner)
>>>>>>> &  DX=(X-X1)&  DZ=(Z-Z1)
>>>>>>> &   test.test1(X,X1,Z,Z1,R2)
>>>>>>> &  D1 = math.abs(DX)+math.abs(DZ)
>>>>>>> //AND CHECK NOT EXIST BELIEF WE'VE ARRIVED
>>>>>>> &  distanceRemaining(MIN,MAX,GOAL)&  MIN<= D1&  MAX>= D1
>>>>>>> <- .send(Owner,achieve,requestTurnToAngle(R2));
>>>>>>> .wait(1500);
>>>>>>> !GOAL;
>>>>>>> !!moveToXZ(X1,Z1).
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ------------------------------------------------------------------------------
>>>>>>> EditLive Enterprise is the world's most technically advanced content
>>>>>>> authoring tool. Experience the power of Track Changes, Inline Image
>>>>>>> Editing and ensure content is compliant with Accessibility Checking.
>>>>>>> http://p.sf.net/sfu/ephox-dev2dev
>>>>>>> _______________________________________________
>>>>>>> Jason-users mailing list
>>>>>>> [hidden email]
>>>>>>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>>>>> --
>>>>>> Jomi Fred Hubner
>>>>>> Federal University of Santa Catarina
>>>>>> Department of Automation and Systems Engineering
>>>>>> PO Box 476, Florianópolis, SC
>>>>>> 88040-900 Brazil
>>>>>> http://www.das.ufsc.br/~jomi
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>> EditLive Enterprise is the world's most technically advanced content
>>>>>> authoring tool. Experience the power of Track Changes, Inline Image
>>>>>> Editing and ensure content is compliant with Accessibility Checking.
>>>>>> http://p.sf.net/sfu/ephox-dev2dev
>>>>>> _______________________________________________
>>>>>> Jason-users mailing list
>>>>>> [hidden email]
>>>>>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>> --
>>>> Jomi Fred Hubner
>>>> Federal University of Santa Catarina
>>>> Department of Automation and Systems Engineering
>>>> PO Box 476, Florianópolis, SC
>>>> 88040-900 Brazil
>>>> http://www.das.ufsc.br/~jomi
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Simplify data backup and recovery for your virtual environment  
>>> with vRanger.
>>> Installation's a snap, and flexible recovery options mean your  
>>> data is safe,
>>> secure and there when you need it. Data protection magic?
>>> Nope - It's vRanger. Get your free trial download today.
>>> http://p.sf.net/sfu/quest-sfdev2dev
>>> _______________________________________________
>>> Jason-users mailing list
>>> [hidden email]
>>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>
>>
>> ------------------------------------------------------------------------------
>> Simplify data backup and recovery for your virtual environment with vRanger.
>> Installation's a snap, and flexible recovery options mean your data is safe,
>> secure and there when you need it. Data protection magic?
>> Nope - It's vRanger. Get your free trial download today.
>> http://p.sf.net/sfu/quest-sfdev2dev
>> _______________________________________________
>> Jason-users mailing list
>> [hidden email]
>> https://lists.sourceforge.net/lists/listinfo/jason-users
>>
>>




------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense..
http://p.sf.net/sfu/splunk-d2d-c1
_______________________________________________
Jason-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/jason-users
Loading...