To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.rcxOpen lugnet.robotics.rcx in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / RCX / 2744
2743  |  2745
Subject: 
Re: data recording in BrickOS ?
Newsgroups: 
lugnet.robotics.rcx
Date: 
Mon, 26 Sep 2005 14:17:08 GMT
Viewed: 
10130 times
  
Am Mon, 26 Sep 2005 12:35:05 GMT
"Francois Bardet" <f.bardet@voila.fr> tippte:

> Hi Mindstormers,
> 
> 1) Does BrickOS allow to write/read measured data into the RCX memory,
> in order to plot or process it later on the computer ?
this is not the default
i programmed this functions, but the docu is in only in german avialible
if you can read german, have a look at
http://www.uni-kassel.de/~holler/ECRobot/
but there was an other implementation from  cs148 at Department of
Computer Science der Brown University at
http://www.cs.brown.edu/courses/cs148/brickOS
but this page exists no longer

> If yes, what are the command lines to :
> - allocate the memory space ?
> - to write and read ?
> - free this memory allocation ?
> - send this data to the computer through the IR tower ?
> 
> 2) Within BrickOS, how can I have my rcx wait for an IR order (from
> the tower, or from an other rcx), without to much disturbing an other
> task, (that means without wasting the rcx power).
have a look kernel/program.c

this example is waiting the command CMDgetlog
+ diff -rwBcpN brickos-0.2.6.10.6/kernel/program.c
legOS/kernel/program.c + *** brickos-0.2.6.10.6/kernel/program.c Tue Sep 24 05:10:06 2002
+ --- legOS/kernel/program.c Wed Jan 19 12:35:37 2005
+ *************** const unsigned char min_length[]={
+ *** 82,88 ****
+      4, // CMDdata
+      2, // CMDrun
+      2, // CMDirmode
+ !    2  // CMDsethost
+   };
+
+   static program_t programs[PROG_MAX];      //!< the programs
+ --- 82,89 ----
+      4, // CMDdata
+      2, // CMDrun
+      2, // CMDirmode
+ !    2,  // CMDsethost
+ !    2   // CMDgetlog
+   };
+
+   static program_t programs[PROG_MAX];      //!< the programs
+ *************** volatile unsigned char packet_len;
+ *** 92,97 ****
+ --- 93,99 ----
+   volatile unsigned char packet_src;        //!< packet sender
+
+   static sem_t packet_sem;                  //!< synchronization
semaphore + + sem_t log_sem;
+
+   #if 0
+   #define debugs(a) { cputs(a); msleep(500); }
+ *************** int program_valid(unsigned nr) {
+ *** 124,129 ****
+ --- 126,133 ----
+   static void program_run(unsigned nr) {
+     if(program_valid(nr)) {
+       program_t *prog=programs+nr;
+ +     //! reset the log semaphore
+ +     sem_init(&log_sem,0,1);
+
+       // initialize data segments
+       //
+ *************** static int packet_consumer(int argc, cha
+ *** 302,310 ****
+ --- 307,330 ----
+             lnp_addressing_write(&acknowledge,1,packet_src,0);
+           }
+           break;
+ +       case CMDgetlog:
+ +      {
+ +         lnp_addressing_write(&acknowledge,1,packet_src,0);
+ +        /* only dump the log if no programs are running */
+ +        if (nb_tasks <= nb_system_tasks) {
+ +            cputs("dump");
+ +            dump_log((int)buffer_ptr[1]);
+ +             cls();
+ +        }
+ +        else
+ +            cputs("err");
+ +         sleep(1);
+ +      }
+ +      break;
+
+         default:
+           debugs("error");
+ +         sleep(1);
+         }
+       }
+     }
+ *************** void program_init() {
+ *** 657,662 ****
+ --- 677,683 ----
+   void program_shutdown() {
+     lnp_addressing_set_handler(0,LNP_DUMMY_ADDRESSING);
+     sem_destroy(&packet_sem);
+ +   sem_destroy(&log_sem);
+
+   #ifdef CONF_LR_HANDLER
+     lr_shutdown();



Message is in Reply To:
  data recording in BrickOS ?
 
Hi Mindstormers, 1) Does BrickOS allow to write/read measured data into the RCX memory, in order to plot or process it later on the computer ? If yes, what are the command lines to : - allocate the memory space ? - to write and read ? - free this (...) (21 years ago, 26-Sep-05, to lugnet.robotics.rcx)

2 Messages in This Thread:

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

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