run-in-simulavr.sh: also output position in micrometers.

This commit is contained in:
Markus Hitter 2013-12-04 23:19:49 +01:00
parent f1873b4360
commit 06d496e8ca
1 changed files with 12 additions and 4 deletions

View File

@ -157,8 +157,8 @@ EOF
BEGIN { BEGIN {
# These lines must match the ones after the sort. # These lines must match the ones after the sort.
intLen = 16; intLen = 16;
xStepID = "0"; xPosID = "1"; xVelID = "2"; xMmmID = "3" xStepID = "0"; xPosID = "1"; xUmID = "2"; xVelID = "3"; xMmmID = "4"
yStepID = "4"; yPosID = "5"; yVelID = "6"; yMmmID = "7" yStepID = "5"; yPosID = "6"; yUmID = "7"; yVelID = "8"; yMmmID = "9"
xDir = yDir = 0; xDir = yDir = 0;
xPos = yPos = 0; xPos = yPos = 0;
@ -189,6 +189,9 @@ EOF
if (bit == 1) { # raising flange if (bit == 1) { # raising flange
xPos += xDir; xPos += xDir;
print time " b" print_binary(xPos, intLen) " " xPosID; print time " b" print_binary(xPos, intLen) " " xPosID;
# TODO: it might be better to output mm as real value, but ...
# ... does the VCD file format support this? If yes, how?
print time " b" print_binary(xPos * 1000000 / '"${STEPS_PER_M_X}"', intLen) " " xUmID;
vel = 1000000000 / (time - lastxTime); vel = 1000000000 / (time - lastxTime);
print lastxTime " b" print_binary(vel, intLen) " " xVelID; print lastxTime " b" print_binary(vel, intLen) " " xVelID;
vel = vel * 60000 / '"${STEPS_PER_M_X}"'; vel = vel * 60000 / '"${STEPS_PER_M_X}"';
@ -203,6 +206,7 @@ EOF
if (bit == 1) { # raising flange if (bit == 1) { # raising flange
yPos += yDir; yPos += yDir;
print time " b" print_binary(yPos, intLen) " " yPosID; print time " b" print_binary(yPos, intLen) " " yPosID;
print time " b" print_binary(yPos * 1000000 / '"${STEPS_PER_M_Y}"', intLen) " " yUmID;
vel = 1000000000 / (time - lastyTime); vel = 1000000000 / (time - lastyTime);
print lastyTime " b" print_binary(vel, intLen) " " yVelID; print lastyTime " b" print_binary(vel, intLen) " " yVelID;
vel = vel * 60000 / '"${STEPS_PER_M_Y}"'; vel = vel * 60000 / '"${STEPS_PER_M_Y}"';
@ -220,8 +224,8 @@ EOF
BEGIN { BEGIN {
# These lines must match the ones before the sort. # These lines must match the ones before the sort.
intLen = 16; intLen = 16;
xStepID = "0"; xPosID = "1"; xVelID = "2"; xMmmID = "3" xStepID = "0"; xPosID = "1"; xUmID = "2"; xVelID = "3"; xMmmID = "4"
yStepID = "4"; yPosID = "5"; yVelID = "6"; yMmmID = "7" yStepID = "5"; yPosID = "6"; yUmID = "7"; yVelID = "8"; yMmmID = "9"
lastTime = ""; lastTime = "";
@ -229,10 +233,12 @@ EOF
print "$scope module Steppers $end"; print "$scope module Steppers $end";
print "$var wire 1 " xStepID " X_step $end"; print "$var wire 1 " xStepID " X_step $end";
print "$var integer " intLen " " xPosID " X_pos_steps $end"; print "$var integer " intLen " " xPosID " X_pos_steps $end";
print "$var integer " intLen " " xUmID " X_pos_um $end";
print "$var integer " intLen " " xVelID " X_steps/s $end"; print "$var integer " intLen " " xVelID " X_steps/s $end";
print "$var integer " intLen " " xMmmID " X_mm/min $end"; print "$var integer " intLen " " xMmmID " X_mm/min $end";
print "$var wire 1 " yStepID " Y_step $end"; print "$var wire 1 " yStepID " Y_step $end";
print "$var integer " intLen " " yPosID " Y_pos_steps $end"; print "$var integer " intLen " " yPosID " Y_pos_steps $end";
print "$var integer " intLen " " yUmID " Y_pos_um $end";
print "$var integer " intLen " " yVelID " Y_steps/s $end"; print "$var integer " intLen " " yVelID " Y_steps/s $end";
print "$var integer " intLen " " yMmmID " Y_mm/min $end"; print "$var integer " intLen " " yMmmID " Y_mm/min $end";
print "$upscope $end"; print "$upscope $end";
@ -241,10 +247,12 @@ EOF
print "$dumpvars"; print "$dumpvars";
print "b0 " xStepID; print "b0 " xStepID;
print "b0 " xPosID; print "b0 " xPosID;
print "b0 " xUmID;
print "b0 " xVelID; print "b0 " xVelID;
print "b0 " xMmmID; print "b0 " xMmmID;
print "b0 " yStepID; print "b0 " yStepID;
print "b0 " yPosID; print "b0 " yPosID;
print "b0 " yUmID;
print "b0 " yVelID; print "b0 " yVelID;
print "b0 " yMmmID; print "b0 " yMmmID;
print "$end"; print "$end";