Thanks so much for TimeSync. I had started writing a module to do just that, but your looks much more comprehensive than mine would have been. Plus, it's *done* :^)
I have noticed with the Rotel tuners that their serial chip is a little on the flaky side. Checking the CRC is a must, or you will get scrambled data. Also, the published protocol is not 100% complete; I had to do some guesswork to figure out multi-line RDS display info. You also need to do some of your own character translation - not all of their out put is pure ASCII when you expect it.
Everything DHawthorne says about Rotel is correct.
The protocol is NOT ASCII, it's binary. Furthermore, checking the CRC is useful (I do it), but not the be all-end all: If you check the CRC and recognize it's wrong, there's not much you can do about it (the unit won't retransmit).
As I recall, the exact length and location for the display and command data vary from device to device. However, the module I wrote was designed to take that into account. It supports two devices (the Rotel RT-1080 and RSP-1066), and was written to allow adding more devices to be relatively straight forward. Take a look at the module and the protocol for the Rotel 1098. If you have questions, ask here or send me some private E-Mail. Really, it shouldn't be too difficult.
The Rotel is very finicky with communications, and has a lot of exception cases, but I caught those when I wrote the module to begen with (at least given the two devices I tested).
[Added on edit: Oh yeah, one more thing. If you do change the module to support the Rotel 1098, I'd appreciate your mods so I can upload the module to SourceForge so others can benefit]
Comments
You might try my Rotel module as a starting point. In general, the only changes are to the beginning layout.
I believe in sharing module source code whenever possible. You can find my Rotel module at:
http://cvs.sourceforge.net/viewcvs.py/netlinx-modules/NetLinx-Modules/
(You can find all my modules there.)
Hope this helps,
-- Jeff
[Added on edit: Sourceforge reorganized ... new URL is: http://netlinx-modules.cvs.sourceforge.net/netlinx-modules/NetLinx-Modules/ ]
Jeff,
Thanks so much for TimeSync. I had started writing a module to do just that, but your looks much more comprehensive than mine would have been. Plus, it's *done* :^)
Thanks again.
- Chris
Everything DHawthorne says about Rotel is correct.
The protocol is NOT ASCII, it's binary. Furthermore, checking the CRC is useful (I do it), but not the be all-end all: If you check the CRC and recognize it's wrong, there's not much you can do about it (the unit won't retransmit).
As I recall, the exact length and location for the display and command data vary from device to device. However, the module I wrote was designed to take that into account. It supports two devices (the Rotel RT-1080 and RSP-1066), and was written to allow adding more devices to be relatively straight forward. Take a look at the module and the protocol for the Rotel 1098. If you have questions, ask here or send me some private E-Mail. Really, it shouldn't be too difficult.
The Rotel is very finicky with communications, and has a lot of exception cases, but I caught those when I wrote the module to begen with (at least given the two devices I tested).
[Added on edit: Oh yeah, one more thing. If you do change the module to support the Rotel 1098, I'd appreciate your mods so I can upload the module to SourceForge so others can benefit]
-- Jeff