Subject:
|
Re: Bluetooth Direct and System Commands
|
Newsgroups:
|
lugnet.robotics
|
Date:
|
Mon, 18 Sep 2006 00:40:03 GMT
|
Viewed:
|
2772 times
|
| |
| |
In lugnet.robotics, Brian Bagnall wrote:
> There are some Bluetooth commands that are a little cryptic and sparsely
> documented in the official Lego docs. I was wondering if anyone could point me
> to some talk on this or shed some light on what these are used for:
>
> Direct Commands:
>
> MESSAGEWRITE
> MESSAGEREAD
MessageRead is used to read a message from one of the 10 message queues
(optionally clearing the message after it is read).
MessageWrite is used write a message to one of the 10 message queues on the NXT.
Neither one of these will do anything (except return an error message) unless
there is a program running on the NXT.
> LSGETSTATUS
> LSWRITE
> LSREAD
These three are used to communicate with I2C devices (sensors) such as the
Ultrasonic sensor. The typical usage is to write a message telling the sensor
to do something, repeatedly get the status until it indicates that the sensor is
ready, and then read to get the sensor's response. Something like this:
thread ReadLS
syscall CommLSWrite, lswArgs
DoCheckStatus:
subcall CheckLSStat, chkls_ret
// check return values of subroutine and repeat if needed
or bBadRead, bLSStatEQ0, bLSStatLT0
brtst EQ, DoCheckStatus, bBadRead
// ls status checks out okay
syscall CommLSRead, lsrArgs
mov readBuf, lsrArgs.Buffer
subret rlsb_ret
endt
To read byte 1 from the US sensor you write 0x02 0x42 using LSWrite and then
after you get status (LSGetStatus) until it reports okay you read (LSRead) with
a buffer of 1 byte.
> System Commands:
>
> OPEN WRITE LINEAR
> OPEN READ LINEAR (INTERNAL COMMAND)
> OPEN WRITE DATA
> OPEN APPEND DATA
OpenWriteLinear is used to create an executable file (.rxe, .rtm, or .sys) or an
icon file (.ric) on the NXT. OpenWriteData is used to create any other type of
file on the NXT. OpenAppendData is used to open an existing file that has not
been completely filled up yet so that you can append more data to the end of the
file. OpenReadLinear is used internally to open and read executable files and
icons.
> POLL COMMAND LENGTH
> POLL COMMAND
These, I believe are used to read data from the high speed port (which is not
used in the standard NXT firmware, to the best of my knowledge).
John Hansen
|
|
Message is in Reply To:
| | Bluetooth Direct and System Commands
|
| There are some Bluetooth commands that are a little cryptic and sparsely documented in the official Lego docs. I was wondering if anyone could point me to some talk on this or shed some light on what these are used for: Direct Commands: MESSAGEWRITE (...) (18 years ago, 17-Sep-06, to lugnet.robotics)
|
4 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|