To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.roboticsOpen lugnet.robotics in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / 12962
12961  |  12963
Subject: 
Re: whats wrong with this events ?
Newsgroups: 
lugnet.robotics
Date: 
Sun, 29 Oct 2000 08:31:51 GMT
Viewed: 
763 times
  
You should psot this in lugnet.robotics.rcx.nqc

Zhengrong

Rik Bos wrote:

I tried to make a proximitysensor with was "direction aware", this means i used two lightsensors on port 1 and 3.
And tried to make the change of direction dependable of with sensor(event) was triggert.
See code :

#define EVENT_PROXL    0 // proximity change
#define EVENT_SWITCH   1 // right switch
#define EVENT_PROXR    2 // proximity change
#define CurrentEvents() ActiveEvents(10)

sub initial()         // this is setting up the variables and events etc..
{
  SetUserDisplay(BatteryLevel(),3);
  SetSensorType(SENSOR_1, SENSOR_TYPE_LIGHT);
  SetSensorType(SENSOR_2, SENSOR_TYPE_TOUCH);
  SetSensorType(SENSOR_3, SENSOR_TYPE_LIGHT);
  SetSensorMode(SENSOR_1, SENSOR_MODE_RAW + 31);
  SetSensorMode(SENSOR_3, SENSOR_MODE_RAW + 31);
  SetTxPower(TX_POWER_HI);
  SetPower(OUT_B,8);
  SetEvent(EVENT_PROXL, SENSOR_1, EVENT_TYPE_FASTCHANGE);
  SetEvent(EVENT_SWITCH, SENSOR_2, EVENT_TYPE_PRESSED);
  SetEvent(EVENT_PROXR, SENSOR_3, EVENT_TYPE_FASTCHANGE);
  ev = 0;
  _pow=6;
}

task check_signal()
{
  SetPriority(1);
  while(true)
  {
    monitor(EVENT_MASK(EVENT_PROXL) + EVENT_MASK(EVENT_PROXR))
    {
      SendMessage(255); Wait(20);
    }
    catch
    {
      ev = 0;
      if (EVENT_MASK(EVENT_PROXL))
      {
        ev = 1;
      }
      if (EVENT_MASK(EVENT_PROXR))
      {
        ev = ev + 2
      }
      switch(ev)
      {
        case 1:
             left(_pow);
             Wait(TURN_TIME);
             forw(_pow);
             break;
        case 2:
             right(_pow);
             Wait(TURN_TIME);
             forw(_pow);
             break;
        case 3:
             back(_pow);
             Wait(BACKTIME);
             left(_pow);
             Wait(TURN_TIME);
             forw(_pow);
             break;
        default:
             break;
      }
    }
  }
}

I'm always ending up with ev = 3 e.g. driving backwards(case 3) even if i disconnect one sensor, what's going wrong ?
I'm sorry for the long list of code but knew no other way to express the problem

Rik Bos

--
MIME ATTACHMENTS DISCARDED:

1.  Content-Type: text/html;
            charset=so-8859-1"
    Content-Transfer-Encoding: quoted-printable
    Content-Length: 4833



Message is in Reply To:
  whats wrong with this events ?
 
I tried to make a proximitysensor with was "direction aware", this means i used two lightsensors on port 1 and 3. And tried to make the change of direction dependable of with sensor(event) was triggert. See code : #define EVENT_PROXL 0 // proximity (...) (24 years ago, 28-Oct-00, to lugnet.robotics)

2 Messages in This Thread:

Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR