[Avida-SVN] r1681 - branches/uml/source/main
hjg at myxo.css.msu.edu
hjg at myxo.css.msu.edu
Fri Jun 15 06:27:23 PDT 2007
Author: hjg
Date: 2007-06-15 09:27:23 -0400 (Fri, 15 Jun 2007)
New Revision: 1681
Modified:
branches/uml/source/main/cOrganism.cc
branches/uml/source/main/cTaskLib.cc
branches/uml/source/main/cUMLModel.cc
Log:
Added support for property checking with new instruction set.
Modified: branches/uml/source/main/cOrganism.cc
===================================================================
--- branches/uml/source/main/cOrganism.cc 2007-06-15 01:49:25 UTC (rev 1680)
+++ branches/uml/source/main/cOrganism.cc 2007-06-15 13:27:23 UTC (rev 1681)
@@ -88,7 +88,7 @@
if (m_world->GetConfig().NET_ENABLED.Get()) m_net = new cNetSupport();
m_id = m_world->GetStats().GetTotCreatures();
- m_state_diag = 0;
+ m_state_diag = 1;
m_orig_state_index = 0;
m_dest_state_index = 0;
m_trigger_index = 0;
Modified: branches/uml/source/main/cTaskLib.cc
===================================================================
--- branches/uml/source/main/cTaskLib.cc 2007-06-15 01:49:25 UTC (rev 1680)
+++ branches/uml/source/main/cTaskLib.cc 2007-06-15 13:27:23 UTC (rev 1681)
@@ -2661,7 +2661,10 @@
// if (ctx.organism->currTrans(1, -1, -1, -1, -1, "^TempSensor.getOpState()")) {
// if (ctx.organism->currTrans(1, -1, -1, -1, -1, 1)) {
// if (ctx.organism->getUMLModel()->getStateDiagram(1)->findTrans(-1, -1, -1, -1, 1))
- if (ctx.organism->getUMLModel()->getStateDiagram(0)->findTrans(0, 1, 1, 2, 3))
+// tagaaa
+// if (ctx.organism->getUMLModel()->getStateDiagram(0)->findTrans(0, 1, 1, 2, 3))
+// temp sensor
+ if (ctx.organism->getUMLModel()->getStateDiagram(1)->findTrans(0, 1, 0, 0, 0))
{
@@ -2679,7 +2682,10 @@
// if (ctx.organism->currTrans(0, -1, -1, "setTempOpState", -1, -1)) {
// if (ctx.organism->currTrans(1, -1, -1, 1, -1, -1)) {
// if (ctx.organism->getUMLModel()->getStateDiagram(1)->findTrans(-1, -1, 1, -1, -1))
- if (ctx.organism->getUMLModel()->getStateDiagram(0)->findTrans(1, 2, 0, 0, 0))
+// tagaaa
+// if (ctx.organism->getUMLModel()->getStateDiagram(0)->findTrans(1, 2, 0, 0, 0))
+// temp sensor
+ if (ctx.organism->getUMLModel()->getStateDiagram(1)->findTrans(1, 2, 0, 0, 2))
{
@@ -2697,7 +2703,10 @@
// if (ctx.organism->currTrans(0, -1, -1, "getOpState", -1, -1)) {
// if (ctx.organism->currTrans(0, -1, -1, 1, -1, -1)) {
// if (ctx.organism->getUMLModel()->getStateDiagram(0)->findTrans(-1, -1, 1, -1, -1))
- if (ctx.organism->getUMLModel()->getStateDiagram(0)->findTrans(2, 3, 0, 3, 1))
+// tagaaa
+// if (ctx.organism->getUMLModel()->getStateDiagram(0)->findTrans(2, 3, 0, 3, 1))
+// temp sensor
+ if (ctx.organism->getUMLModel()->getStateDiagram(1)->findTrans(2, 3, 2, 0, 0))
{
@@ -2715,7 +2724,10 @@
// if (ctx.organism->currTrans(0, -1, -1, -1, -1, "op_state:=1")) {
// if (ctx.organism->currTrans(0, -1, -1, -1, -1, 3)) {
// if (ctx.organism->getUMLModel()->getStateDiagram(0)->findTrans(-1, -1, -1, -1, 3))
- if (ctx.organism->getUMLModel()->getStateDiagram(0)->findTrans(3, 4, 2, 1, 2))
+// tagaaa
+// if (ctx.organism->getUMLModel()->getStateDiagram(0)->findTrans(3, 4, 2, 1, 2))
+// temp sensor
+ if (ctx.organism->getUMLModel()->getStateDiagram(1)->findTrans(3, 1, 0, 0, 0))
{
ctx.task_success_complete += 1;
@@ -2874,11 +2886,11 @@
*/
// Check for task success...
-/* if (ctx->task_failed == 0) {
+ if (ctx.task_success_complete < 4) {
return 0;
}
-*/
+
m_world->GetStats().HydraAttempt();
double bonus = 0.0;
@@ -2949,7 +2961,7 @@
} else {
// ctx->task_failed = ctx->task_failed && 1;
// ctx.task_success_complete += 1;
-// m_world->GetStats().HydraPassed();
+ m_world->GetStats().HydraPassed();
// organism->setBonusInfo("hydra", 1.0);
return 1.0;
}
@@ -2969,7 +2981,7 @@
if(system("/usr/bin/gcc -DMEMLIM=512 pan.c -o pan &> /dev/null")!=0) return 0.0;
if(system("./pan -a &> ./pan.out")!=0) return 0.0;
if(system("cat pan.out | perl -e 'while(<STDIN>) { if(/errors:\\s(\\d+)/) {exit($1);}}'")!=0) return 0.0;
- if(system("cat pan.out | perl -e 'while(<STDIN>) { if(/unreached/) {exit(1);}}'")!=0) return 0.0;
+// if(system("cat pan.out | perl -e 'while(<STDIN>) { if(/unreached/) {exit(1);}}'")!=0) return 0.0;
std::ostringstream strstrm;
@@ -2994,14 +3006,14 @@
*/
// check if the trigger is present
-// if (organism->getStateDiagram()->findTrans(-1,-1,1,"*","*")){
+ if (organism->getStateDiagram()->findTrans(-1,-1,1,-1,-1)){
temp += 1;
// check property
if (ctx.task_success_complete) {
temp1 += SpinCoprocess(ctx, "N1");
}
-// }
+ }
// organism->setBonusInfo("spinn1", temp1);
return temp1;
Modified: branches/uml/source/main/cUMLModel.cc
===================================================================
--- branches/uml/source/main/cUMLModel.cc 2007-06-15 01:49:25 UTC (rev 1680)
+++ branches/uml/source/main/cUMLModel.cc 2007-06-15 13:27:23 UTC (rev 1681)
@@ -83,8 +83,9 @@
void cUMLModel::seedDiagrams()
{
self_bonus.clear();
-
- // Used for simple example - expr0
+
+/*
+ // Used for simple example - tagaaa model
cUMLStateDiagram* temp = getStateDiagram(0);
temp->addTransitionLabel(1, 2, 3);
temp->addTransitionLabel(0, 0, 0);
@@ -127,8 +128,10 @@
temp1->addTransitionLabel(2, 0, 3);
temp1->addTransitionLabel(2, 1, 0);
temp1->addTransitionLabel(1, 1, 1);
+ */
+
// Used for Temperature Sensor / MultiSensor example.
-/*
+
// For the first state diagram...
// Software Sensor
cUMLStateDiagram* soft_sense = getStateDiagram(1);
@@ -156,11 +159,6 @@
soft_sense->addAction("^TempSensor.getTempData()");
- // null trans Init state to Idle state
-// soft_sense->absoluteJumpDestinationState(1);
-// soft_sense->addTransitionTotal(0, 1, 0, 0, 0);
-
-
// Temperature Sensor
cUMLStateDiagram* temp_sense = getStateDiagram(0);
@@ -195,7 +193,7 @@
temp_sense->addAction("data:=200");
// action 7
temp_sense->addAction("data:=300");
-*/
+
}
@@ -344,9 +342,9 @@
xmi = xmi_begin;
- xmi += xmi_class1;
- xmi += state_diagrams[0].getXMI();
- xmi += xmi_class2;
+// xmi += xmi_class1;
+// xmi += state_diagrams[0].getXMI();
+// xmi += xmi_class2;
xmi += state_diagrams[1].getXMI();
xmi += xmi_end;
More information about the Avida-cvs
mailing list