MLGenericSerial plugin v2.0

Repository of MainLobby Server plug-ins and updates not available in the current installation.

Postby jpimentel » Mon Jun 20, 2005 4:00 pm

Hi,

I looks like enough information to control the set, but I do not see any status feedback information in these pages. I'm not sure if you are interested in that or not since you can do a lot without having to know what state the TV is in especially since it has discrete codes for everything.
Regards,

John
User avatar
jpimentel
Expert
Expert
 
Posts: 591
Joined: Tue Feb 04, 2003 12:28 pm
Location: Waterford, WI

Postby MurrayW » Mon Jun 20, 2005 5:37 pm

jpimentel wrote:Hi,

I looks like enough information to control the set, but I do not see any status feedback information in these pages. I'm not sure if you are interested in that or not since you can do a lot without having to know what state the TV is in especially since it has discrete codes for everything.

You may be right about the status feedback. I went back and re-read it and it says to wait until the computer receives the "OK" response before sending another command. Maybe I could just use this response to assume the original command work and set a MLServer variable appropriately.

Thanks for your reply.

Murray
MurrayW
Is there life beyond Cinemar?
Is there life beyond Cinemar?
 
Posts: 1101
Joined: Sun Mar 07, 2004 1:05 pm
Location: Austin, TX

Postby jpimentel » Thu Jun 23, 2005 9:06 pm

Mr. MLMath (Dave Evans) came through with a nice hex converter among various other nice additions in the latest MLMath plugin that solves my hex to decimal problem nicely.

In my mapped command I use the following (caution I haven't tested it yet).

Trigger:
!1MVL* terminated with "26" (the Integra EOF marker)

Command
MLServeCmd.MLMath|FromHex~integra_volume~<<x1>>

This should take the hex digits stripped from the serial port and plop them into a MLServer Variable called "integra_volume" to be used as desired.

The MLMath update is another sweeet addition to the Main Lobby arsenal.

Thanks again Dave...
Regards,

John
User avatar
jpimentel
Expert
Expert
 
Posts: 591
Joined: Tue Feb 04, 2003 12:28 pm
Location: Waterford, WI

Postby bwally » Fri Jun 24, 2005 11:00 am

very nice!

could you keep me posted how this goes? i would really appreciate any setup information on this integration.

and thanks a lot for all you shared so far! nice work with the integra!

steve
another steve
bwally
Intermediate
Intermediate
 
Posts: 364
Joined: Sat Aug 14, 2004 6:23 am
Location: ontario, canada

Postby jpimentel » Fri Jun 24, 2005 6:41 pm

Hi I tested today and it works like a charm. The example above is OK but you have to replace the x for hex with a star for string like this:

MLServeCmd.MLMath|FromHex~integra_volume~<<*1>>

This updates the variable perfectly and keeps the volume display right in step with the Integra front panel.

Very cool!
Regards,

John
User avatar
jpimentel
Expert
Expert
 
Posts: 591
Joined: Tue Feb 04, 2003 12:28 pm
Location: Waterford, WI

Postby jpimentel » Thu Jul 07, 2005 11:34 am

Anonymous wrote:OK, It must be a qwerk (sp) in my dev. system. I installed on this fresh system and no issues yet. I am going to install the CAV66 plugin and see if that has any effect.

JP


It turns out this bug was not a qwerk after all. I have another system (a production one) that is having the exact same problem. When the serial port is connected to the device, in this case an Integra Receiver, the plugin seems to gernate a MLServeCommand to the CAVV 6.6 Plugin. Very reproduceable it does it every time. End user is of course not too thrilled that the CAV66 Zone 1 is going on and off every time they adjust volume or turn on and off the Theater Receiver.

Very frustrating....
Regards,

John
User avatar
jpimentel
Expert
Expert
 
Posts: 591
Joined: Tue Feb 04, 2003 12:28 pm
Location: Waterford, WI

Outlaw 990

Postby K-Wood » Sat Jul 09, 2005 12:43 pm

Has anyone yet attempted to control an Outlaw 990 pre/pro with the GenericSerial plugin? I've attached a copy of the RS232 protocol for the unit. I've successfully connected to the serial port and can see data being returned when I change the unit's settings with the remote, but I cannot seem to get it to respond to a command that I send.

Can someone at least take a look at the protocol and give me some hints about how to format the commands? It's not entirely obvious to me, esp. since I have no real experience with serial programming.

Thanks,
Ken
Attachments
990rs232protocol.pdf
Outlaw 990 RS232 Protocol Document
(59.96 KiB) Downloaded 15 times
K-Wood
Intermediate
Intermediate
 
Posts: 372
Joined: Mon Feb 03, 2003 5:10 pm
Location: Arlington, VA

Postby jpimentel » Sat Jul 09, 2005 6:06 pm

Try this it has 2 mapped commands one is PowerOn and the other is Standby. If those work it will tell me if I am reading the doc right and I can then explain how to do a more detailed interface.
Attachments
Outlaw990.zip
(553 Bytes) Downloaded 15 times
Regards,

John
User avatar
jpimentel
Expert
Expert
 
Posts: 591
Joined: Tue Feb 04, 2003 12:28 pm
Location: Waterford, WI

Progress!

Postby K-Wood » Sun Jul 10, 2005 5:11 pm

John:
Both of those commands work like a charm. But I can't figure out how you determined the final characters? I understand the 8345, and the next two digits, but how did you figure out to use the CA or the C9?
Thanks -- I really appreciate your help.
- Ken
K-Wood
Intermediate
Intermediate
 
Posts: 372
Joined: Mon Feb 03, 2003 5:10 pm
Location: Arlington, VA

Postby jpimentel » Mon Jul 11, 2005 7:39 am

Hi That is just a Checksum. So if they work I guess I did it right.

I took the sum of all the bytes of data and kept the least significant byte (the numbers that appear on the right hind side.

So for Power On you would calculate the checksum as follows:

83
45
+01
____
C9

If for some reason the checksum added up to more that one byte, you would just keep the Least Significant Byte for example where:

83
45
+FF
____
1C7

Then the checksum would be C7.


Have Fun...
Regards,

John
User avatar
jpimentel
Expert
Expert
 
Posts: 591
Joined: Tue Feb 04, 2003 12:28 pm
Location: Waterford, WI

Postby alexzogh » Mon Jul 11, 2005 8:28 am

I have two questions:

1) Never saw an answer to the first question in this thread -

Any easy way to append a CR only instead of CR+LF?

I assumed I was doing that with SedMapEX with a terminating character of 13 in my mapped commands. This doesn't seem to do the trick. When I send a command from the plugin, it won't work at all without Cr+LF checked, then only work once when I check it.....


2) The latest plugin from tthis thread has an installer, and a datestamp much newer than the mlserver section on the main cinemaronline site.

I can't seem to get the new one installed. When I tell it the directory to install to (I have a a non-standard install - c:\mainlobby\mlserver\plugins) it installs everything one directory level deeper. When I install one level up (c:\mainlobby\mlserver) it will install, but always ask me where genericserial.xml is, irrespective of where I put it (for the old version of the file, I kept it in the data directory I've attempted to put a copy of it in every directory I could think of).

Any ideas what is going on with the new version? Any chance you can unbundle it from the installer so I can hand register / deregister the plugin's so I know it's working?
Alex D Zoghlin
User avatar
alexzogh
Intermediate
Intermediate
 
Posts: 326
Joined: Thu May 01, 2003 10:51 pm

Postby alexzogh » Mon Jul 11, 2005 8:42 am

Ouch.

Seems the plugin is hard coded to look in \program files\mlserver\data for both the genericserial.xml and my myconfig - this is new.

Any chance to get that updated in the next release?

I also noticed in the installer, when I 'modified" that install, it assumed everything was in \program files\mlserver\plugins even though I had changed the directory during installation.
Alex D Zoghlin
User avatar
alexzogh
Intermediate
Intermediate
 
Posts: 326
Joined: Thu May 01, 2003 10:51 pm

Postby jpimentel » Mon Jul 11, 2005 9:23 am

Hi,

I'm not the author, but it seems the answer is no to the CR+LF question. I made a similar feature request basically asking to have a field to enter the "end of string" termination charater(s).
But I think if you deselect the add CR+LF, then you just add the ascii or hex string to the end of your command it will work as desired.
Regards,

John
User avatar
jpimentel
Expert
Expert
 
Posts: 591
Joined: Tue Feb 04, 2003 12:28 pm
Location: Waterford, WI

Re: Strange Things?

Postby jpimentel » Mon Jul 11, 2005 9:50 am

jpimentel wrote:Hi,

I have worked out most of the issues using this very cool and much needed plugin. With this tool, I see my abilities to use ML somewhat endless!! Very nice feature set and implementation.

So... on to the strange thing. I am writing a device for an Integra Receiver. When I execute a power on, or power off to this unit, it is sending MLServeCmds even though I have none specified for that event.

What appears to be happening is that my mapped commands for power on and power off are being matched when I send a power on or off command. I guess this is sort of expected although it would be better if we could separate outgoing mapped commands from incoming ones. But, then for some strange reason, I see a CAV66 command being generated whenever I send power on or off to the unit. Specifically the comand is:

MLServeCmd.MLCAV66|Keypad~1~1~PowerToggle

Could there be some corruption or crosstalk in the plugins?

This is a complete befuddlement to me. Any suggestions on debugging this would be appreciated.

Thanks,

John

EDIT: I removed the CAV66 plugin and all MLServer Command Maps and the command is still being generated!



I am still having issues with the bug above. I have done some experiments and have found that the command is coming from the erial plugin and hitting MLServer internally (not from a com port). In my testing I disabled all serial ports except the one for the Integra Receiver via Generic Serial. As soon as I recieve a particular daat string from the receiver and the termination character is 26 on the main panel of the device (the only way incoming data will work since this is the termination string for Integra even if the termination string is in the mapped comnmand)

I would really appreciate if someone who has access to the source could have a look at this for me.

My two basic questions are:

1. Whay does this particular string make the plugin generate the totally non-related event?

2. How does this plugin know exactly how to generate an event for a unrelated plugin?

It seems to me that there is a fundamental house keeping issue with this and or the Russound Plugin. I have ask Dave P. to look at it from the Russound side and trust in time he will, but I am really beleaguered by this issue and would appreciate a fix greatly.

As always thank you.
Regards,

John
User avatar
jpimentel
Expert
Expert
 
Posts: 591
Joined: Tue Feb 04, 2003 12:28 pm
Location: Waterford, WI

Postby alexzogh » Mon Jul 11, 2005 10:10 am

jpimentel wrote:Hi,

I'm not the author, but it seems the answer is no to the CR+LF question. I made a similar feature request basically asking to have a field to enter the "end of string" termination charater(s).
But I think if you deselect the add CR+LF, then you just add the ascii or hex string to the end of your command it will work as desired.


Thanks.

I wish life was this easy. How do you enter an ASCII 13 into a command input line that only seems to accept ascii symbols?
Alex D Zoghlin
User avatar
alexzogh
Intermediate
Intermediate
 
Posts: 326
Joined: Thu May 01, 2003 10:51 pm

PreviousNext

Return to MLServer Plug-Ins

Who is online

Users browsing this forum: No registered users and 1 guest

cron