shawn bright
7/6/2007 6:20:00 PM
well, it's very strange to me too.
you see, we are reading info from sensors through a serial port, as
the message comes in, i collect all the bytes into an array msg_list
the id number of the sensor, i get like this.
sensor = (msg_list[1] & 127) * 256 + msg_list[0]
so, now my challenge is to write commands back to the sensor so i need
to take the sensor number that we have in the database and create the
bytes out of it to write to the port.
i don't know exactly why the first byte is masked in the msb. I just
did it because their docs told me to.
thanks
On 7/6/07, Gregory Seidman <gsslist+ruby@anthropohedron.net> wrote:
> On Sat, Jul 07, 2007 at 02:37:09AM +0900, shawn bright wrote:
> > hey there all, i have a question concerning making numbers from bytes
> > and back agian
> >
> > if i have some numbers:
> > lo byte = 192
> > hi byte = 176
> > i can get the number 12480 like this:
> > (176 & 127) * 256 + 192 = 12480
>
> It's usually written (176 << 8) + 192, and I don't know why you want to
> zero out the high bit if you claim that the high byte is the high byte.
>
> > but if i start with the 12480, how do i get the two bytes (lo and hi)
> > that make it up?
>
> hi = 255 & (12480 >> 8)
> lo = 255 & 12480
>
> > i kinda know what i am doing here, but keep getting tripped up
> > thanks
> --Greg
>
>
>