When writing from NRT to a real time pile (open, write, close).
Are message boundaries preserved based upon the length of the write call?

It's not working for me. The code below returns success, but calling 

err = rt_pipe_read(comp,k,sizeof(kommand_t),TM_NONBLOCK);
or
err = rt_pipe_read(comp,k,sizeof(kommand_t),100);

from RT space on the same pipe never returns any data

err = rt_pipe_read(comp,k,sizeof(kommand_t),TM_NONBLOCK); 
always returns err 
0x0b,  Resource temporarily unavailable

 err = rt_pipe_read(comp,k,sizeof(kommand_t),100);
always returns err:
0x6e, Connection timed out

NZG

code specifics follow...............

                int err;
                kommand_t k = {
                .type = KILLCYCLE,      
                };
           
            int cfd = open(COMMANDPIPE, O_WRONLY|O_SYNC);
           
           if(cfd<0){
                printf("can't open %s (%s)\n",COMMANDPIPE, strerror(-cfd));
                fflush(stdout);
                return;
           }
                
           printf("sizeof kommand_t = %u\n",sizeof(kommand_t));
           
       err=write(cfd,&k,sizeof(kommand_t));
        
       if(err>=0)printf("wrote %u bytes to %s\n",err,COMMANDPIPE); 
        
       if(err<0)printf("err writing to %s (%s)\n",COMMANDPIPE, 
strerror(errno));
       
       
       if(close(cfd)<0)printf("couldn't close %s\n",COMMANDPIPE);


 

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to