auto compile of buzz script
This commit is contained in:
parent
9045ed49f2
commit
f8dc591efc
|
@ -25,10 +25,10 @@ int buzzros_print(buzzvm_t vm) {
|
||||||
ROS_INFO("BUZZ - [nil]");
|
ROS_INFO("BUZZ - [nil]");
|
||||||
break;
|
break;
|
||||||
case BUZZTYPE_INT:
|
case BUZZTYPE_INT:
|
||||||
//fprintf(stdout, "%d", o->i.value);
|
fprintf(stdout, "%d", o->i.value);
|
||||||
break;
|
break;
|
||||||
case BUZZTYPE_FLOAT:
|
case BUZZTYPE_FLOAT:
|
||||||
//fprintf(stdout, "%f", o->f.value);
|
fprintf(stdout, "%f", o->f.value);
|
||||||
break;
|
break;
|
||||||
case BUZZTYPE_TABLE:
|
case BUZZTYPE_TABLE:
|
||||||
//fprintf(stdout, "[table with %d elems]", (buzzdict_size(o->t.value)));
|
//fprintf(stdout, "[table with %d elems]", (buzzdict_size(o->t.value)));
|
||||||
|
@ -42,7 +42,7 @@ int buzzros_print(buzzvm_t vm) {
|
||||||
//fprintf(stdout, "[c-closure @%d]", o->c.value.ref);
|
//fprintf(stdout, "[c-closure @%d]", o->c.value.ref);
|
||||||
break;
|
break;
|
||||||
case BUZZTYPE_STRING:
|
case BUZZTYPE_STRING:
|
||||||
//fprintf(stdout, "%s", o->s.value.str);
|
fprintf(stdout, "%s", o->s.value.str);
|
||||||
break;
|
break;
|
||||||
case BUZZTYPE_USERDATA:
|
case BUZZTYPE_USERDATA:
|
||||||
//fprintf(stdout, "[userdata @%p]", o->u.value);
|
//fprintf(stdout, "[userdata @%p]", o->u.value);
|
||||||
|
|
102
src/out.basm
102
src/out.basm
|
@ -1,20 +1,31 @@
|
||||||
!4
|
!15
|
||||||
'init
|
'init
|
||||||
|
'id
|
||||||
|
'mydist
|
||||||
|
'neighbors
|
||||||
|
'listen
|
||||||
|
'dist_to_source
|
||||||
|
'math
|
||||||
|
'min
|
||||||
|
'get
|
||||||
|
'distance
|
||||||
'step
|
'step
|
||||||
|
'broadcast
|
||||||
|
'print
|
||||||
'reset
|
'reset
|
||||||
'destroy
|
'destroy
|
||||||
|
|
||||||
pushs 0
|
pushs 0
|
||||||
pushcn @__label_1
|
pushcn @__label_1
|
||||||
gstore
|
gstore
|
||||||
pushs 1
|
pushs 10
|
||||||
pushcn @__label_2
|
pushcn @__label_5
|
||||||
gstore
|
gstore
|
||||||
pushs 2
|
pushs 13
|
||||||
pushcn @__label_3
|
pushcn @__label_6
|
||||||
gstore
|
gstore
|
||||||
pushs 3
|
pushs 14
|
||||||
pushcn @__label_4
|
pushcn @__label_7
|
||||||
gstore
|
gstore
|
||||||
nop
|
nop
|
||||||
|
|
||||||
|
@ -24,13 +35,74 @@
|
||||||
done
|
done
|
||||||
|
|
||||||
@__label_1
|
@__label_1
|
||||||
ret0 |3,1,/home/vivek/BuzzKH4/build/test.bzz
|
pushs 1 |3,6,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
gload |3,6,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
@__label_2
|
pushi 0 |3,9,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
ret0 |7,1,/home/vivek/BuzzKH4/build/test.bzz
|
eq |3,10,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
jumpz @__label_2 |3,12,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
@__label_3
|
pushs 2 |5,11,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
ret0 |11,1,/home/vivek/BuzzKH4/build/test.bzz
|
pushf 0. |5,13,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
gstore |5,15,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
jump @__label_3 |7,7,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
@__label_2 |7,7,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushs 2 |9,11,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushf 1000. |9,13,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
gstore |9,18,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushs 3 |11,13,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
gload |11,13,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushs 4 |11,14,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
tget |11,20,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushs 5 |11,21,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushl @__label_4 |12,6,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushi 2 |16,8,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
callc |16,8,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
@__label_3 |17,3,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
ret0 |18,1,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
|
||||||
@__label_4
|
@__label_4
|
||||||
ret0 |15,1,/home/vivek/BuzzKH4/build/test.bzz
|
pushs 2 |13,15,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushs 6 |13,21,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
gload |13,21,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushs 7 |13,22,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
tget |13,25,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushs 2 |14,16,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
gload |14,16,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushs 3 |15,19,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
gload |15,19,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushs 8 |15,20,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
tget |15,23,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
lload 3 |15,32,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushi 1 |15,33,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
callc |15,33,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushs 9 |15,34,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
tget |15,43,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
lload 2 |15,50,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
add |15,50,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushi 2 |15,51,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
callc |15,51,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
gstore |15,51,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
ret0 |16,7,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
|
||||||
|
@__label_5
|
||||||
|
pushs 3 |22,9,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
gload |22,9,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushs 11 |22,10,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
tget |22,19,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushs 5 |22,20,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushs 2 |22,44,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
gload |22,44,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushi 2 |22,45,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
callc |22,45,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushs 12 |23,5,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
gload |23,5,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushs 2 |23,12,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
gload |23,12,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
pushi 1 |23,13,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
callc |23,13,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
ret0 |26,1,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
|
||||||
|
@__label_6
|
||||||
|
ret0 |30,1,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
|
||||||
|
@__label_7
|
||||||
|
ret0 |34,1,/home/vivek/catkin_ws/src/rosbuzz/src/test.bzz
|
||||||
|
|
BIN
src/out.bdbg
BIN
src/out.bdbg
Binary file not shown.
BIN
src/out.bo
BIN
src/out.bo
Binary file not shown.
|
@ -28,6 +28,10 @@
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/wait.h>
|
||||||
|
|
||||||
static int done = 0;
|
static int done = 0;
|
||||||
|
|
||||||
static double cur_pos [3];
|
static double cur_pos [3];
|
||||||
|
@ -35,6 +39,7 @@ double distance;
|
||||||
double azimuth;
|
double azimuth;
|
||||||
double elevation;
|
double elevation;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This tutorial demonstrates simple sending of messages over the ROS system.
|
* This tutorial demonstrates simple sending of messages over the ROS system.
|
||||||
*/
|
*/
|
||||||
|
@ -121,7 +126,11 @@ static void ctrlc_handler(int sig) {
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
system("bzzparse /home/vivek/catkin_ws/src/rosbuzz/src/test.bzz /home/vivek/catkin_ws/src/rosbuzz/src/out.basm");
|
||||||
|
system("bzzasm /home/vivek/catkin_ws/src/rosbuzz/src/out.basm /home/vivek/catkin_ws/src/rosbuzz/src/out.bo /home/vivek/catkin_ws/src/rosbuzz/src/out.bdbg");
|
||||||
|
|
||||||
// %Tag(INIT)%
|
// %Tag(INIT)%
|
||||||
ros::init(argc, argv, "rosBuzz");
|
ros::init(argc, argv, "rosBuzz");
|
||||||
// %EndTag(INIT)%
|
// %EndTag(INIT)%
|
||||||
|
@ -175,6 +184,7 @@ int main(int argc, char **argv)
|
||||||
fprintf(stderr, "%s: invalid value %d for message size\n", argv[0], msg_sz);
|
fprintf(stderr, "%s: invalid value %d for message size\n", argv[0], msg_sz);
|
||||||
return 0;
|
return 0;
|
||||||
} */
|
} */
|
||||||
|
|
||||||
/* The bytecode filename */
|
/* The bytecode filename */
|
||||||
char* bcfname = "/home/vivek/catkin_ws/src/rosbuzz/src/out.bo"; //argv[1];
|
char* bcfname = "/home/vivek/catkin_ws/src/rosbuzz/src/out.bo"; //argv[1];
|
||||||
/* The debugging information file name */
|
/* The debugging information file name */
|
||||||
|
|
20
src/test.bzz
20
src/test.bzz
|
@ -1,9 +1,28 @@
|
||||||
# Executed once at init time.
|
# Executed once at init time.
|
||||||
function init() {
|
function init() {
|
||||||
|
if(id == 0) {
|
||||||
|
# Source robot
|
||||||
|
mydist = 0.
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
# Other robots
|
||||||
|
mydist = 1000.
|
||||||
|
# Listen to other robots' distances
|
||||||
|
neighbors.listen("dist_to_source",
|
||||||
|
function(value_id, value, robot_id) {
|
||||||
|
mydist = math.min(
|
||||||
|
mydist,
|
||||||
|
neighbors.get(robot_id).distance + value)
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Executed at each time step.
|
# Executed at each time step.
|
||||||
function step() {
|
function step() {
|
||||||
|
neighbors.broadcast("dist_to_source", mydist)
|
||||||
|
print(mydist)
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Executed once when the robot (or the simulator) is reset.
|
# Executed once when the robot (or the simulator) is reset.
|
||||||
|
@ -13,3 +32,4 @@ function reset() {
|
||||||
# Executed once at the end of experiment.
|
# Executed once at the end of experiment.
|
||||||
function destroy() {
|
function destroy() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue