From: Tim A. <ta...@en...> - 2004-05-20 20:50:15
|
Hi Brian, I've come across a problem in developing a microcontroller which pretty much conforms to your trogdor driver (now named "walker" for my purposes). It seems during the serial comms initialisation the driver feels it isn't being acknowledged, and unfortunately my experience with linux serial communications is non-existent. The bulk of the player output is as follows: ________________ $ player -d ./walker_player.so walker.cfg ** Player v1.4rc2 ** Opening shared object ./walker_player.so...Walker driver initializing Walker driver done Success! [TCP] Parsing configuration file "walker.cfg"... loading driver "walker_player" as device "6665:position:0" Done. listening on port 6665 ** Player [port 6665] client accepted from 127.0.0.1 on socket 4 ** Walker connection initializing (/dev/ttyS0)...player error : walker_player.cc:ReadBuf(): read() failed: Resource temporarily unavailable player error : walker_player.cc:WriteBuf(): failed to get acknowledgement player warning : walker_player.cc:InitRobot(): failed to initialize robot; i'll try to de-initializate it (...and so on...) _________________ I have tested the micro by feeding it the three initialisation characters through a windows terminal program and it responds with the acknowlegement character. While the micro is hooked up to my player linux box I have the micro output various signals on its pins to indicate the state of the initialisation and it recognises that it receives all three intialisation characters. I can only assume it responds with an acknowledgement, however the ReadBuf() function fails to recognise this. Do you have any ideas on this? I would like to test the initialisation manually in linux, but have no idea how to use the likes of minicom. Is there a really simple way to send the 3 characters down the line and see what comes back in linux. Also, I'm not sure if this is relevant, but the micro's UART is configured to run at 9600, so I've changed the two lines from Setup() that specified B57600 to: cfsetispeed(&term, B9600); cfsetospeed(&term, B9600); Is this all that needs to be done to reduce the data rate? Regards, Tim ---------------------------------------------------------------- UTS CRICOS Provider Code: 00099F |