Sharp Aquos LC-80UH30U RS232 Control
mohillic
Posts: 15
Hello Everyone. I'm programming my first Netlinx project for an NX-2200 and trying to control the Aquos LC-80UH30U using rs232 commands. I downloaded the comm module from the amx site and followed the programming from the guides, but I get a strange issue with the volume controls. It only moves the volume up 1 or down 1 and never again. the Mute function also does not work. I'm wondering where I might have went wrong. Happy to share the code with you, if you want to PM me or I can share here in the forum. Just wondering if anyone has experience with that tv and ran into a similar issue.
0
Comments
It could be anything at this point. In my experience quite a few AMX drivers aren't really tested on the device and sometimes just don't work. The sentence "The device was not present during module development", seems to come up a lot... (as is the case with this particular tv)
But it could also be a simple mistake in the programming, of course.
Don't have experience with this device, so cant help you with that.
I assume you use channels 24/25 on the virtual device to control the volume? (so not the level)
If you say 'never again', you mean the volume doesn't repeat by itself?Does it work when you manually pulse channel 24/25?
Have you looked at notifications to see what is sent to the tv from the module?
I would encourage you to reach out to tech support so that if there is an issue with the module it can be fixed.
They will ask you to put the module in debug:
send_command vdvDEVICE,'DEBUG-4';
Then with Diagnostics enabled, log the module messages through a module REINIT
send_command vdvDEVICE,'REINIT';
followed by manipulation of the volume and mute channels on the virtual device.
The Diagnostics messages can then be copied (right click / copy all), pasted into notepad and saved as a txt file that can be forwarded on.
Thank you Ian, I will try that next time I am on site. Maybe next week thanks to covid
Hi again everyone and thank you all so much for your help with this. After fighting with myself for what feels like an eternity in hell (this building has no air conditioning right now) I finally got, what I believe is a very simple way to control my volume on the tv. Below is what worked for me, and I hope it helps others that may stumble upon this forum:
DEFINE_EVENT
data_event[dvSharpLC80UH30UTV]
{
online:
{
send_command dvSharpLC80UH30UTV,'SET BAUD 9600,N,8,1'
send_command dvSharpLC80UH30UTV,'HSOFF'
send_command dvSharpLC80UH30UTV,'REINIT'
}
}
button_event[dvSharpLC80UH30UTVTp,VOL_UP]
{
push:
{
to[vdvSharpLC80UH30UTV,button.input.channel];
}
}
button_event[dvSharpLC80UH30UTVTp,VOL_DN]
{
push:
{
to[vdvSharpLC80UH30UTV,button.input.channel];
}
}
button_event[dvSharpLC80UH30UTVTp,VOL_MUTE]
{
push:
{
to[vdvSharpLC80UH30UTV,button.input.channel];
}
}
FYI - assuming that dvSharpLC80UH30UTV is the DPS of the serial port that data event will never happen. The communication settings are set in the module code and configured from property commands submitted to the virtual device
Also in consideration of how your buttons are addressed in the touchpanel there are more efficient methodologies available
Ha, is this the same person who said in another post that using ^PPX is 'is just a way too indiscriminate and could lead to unintended consequences' ?
In the online courses on the Harman training site, this way of coding (using channel 0 or the 'catch all') is actively discouraged, so... as always, do what works for you, but keep that in mind.
using a different port makes sense if you're catching all. Depends on style really
Last question on this issue I hope. I can't seem to get the send_command to work in the programming, the code works fine when I send from the netlinx controller to the TV but for some reason nothing happens when I use the touch panel buttons.
Here is how this works, when a user touches an activity button, it turns the tv on, then switches to the input on the tv for the activity they selected (hdmi 1 for polycom, hdmi 2 for pc, etc)
Below is the code for the button push, in this case for an appletv, the tv powers on just fine, but never switches input:
button_event[dvSharpLC80UH30UTVTp,PWR_ON]
{
push:
{
to[vdvSharpLC80UH30UTV,button.input.channel];
{
wait 50
{
send_command vdvSharpLC80UH30UTV,'INPUT-HDMI,3';
send_level vdvSharpLC80UH30UTV,1,25;
}
}
}
}
below is the diagnostic info for both the button push and the direct control
Sent using programming code
Line 4433 2020-08-03 (11:50:10):: Command To [41001:1:1]-[INPUT-HDMI,3]
Line 4434 2020-08-03 (11:50:10):: Command From [41001:1:1]-[INPUT-HDMI,3]
Sent from netlinx controller
Line 4163 2020-08-03 (11:42:39):: Command To [41001:1:1]-[INPUT-HDMI,3]
Line 4164 2020-08-03 (11:42:39):: Command From [41001:1:1]-[INPUT-HDMI,3]
Line 4165 2020-08-03 (11:42:39):: String To [5001:2:1]-[IAVD3 $0D]
Line 4166 2020-08-03 (11:42:39):: String From [5001:2:1]-[OK$0D]
why does the button push send_command not work?
also, this is in my diagnostics, not sure if it's helpful info
Line 91 2020-08-03 (14:13:10):: LampComponent2:OnHandleDataEvent(41001:1:1,INPUT-HDMI,3)
Line 92 2020-08-03 (14:13:10):: SharpTV: getLampComponentCount() called
Line 93 2020-08-03 (14:13:10):: SharpTV: getLampComponent(1) called
Line 94 2020-08-03 (14:13:10):: MenuComponent:OnHandleDataEvent(41001:1:1,INPUT-HDMI,3)
Line 95 2020-08-03 (14:13:10):: VolumeComponent2:OnHandleDataEvent(41001:1:1,INPUT-HDMI,3)
Line 96 2020-08-03 (14:13:10):: SharpTV: getVolumeComponentCount() called
Line 97 2020-08-03 (14:13:10):: SharpTV: getVolumeComponent(1) called
Line 98 2020-08-03 (14:13:10):: DisplayComponent2:OnHandleDataEvent(41001:1:1,INPUT-HDMI,3)
Line 99 2020-08-03 (14:13:10):: SharpTV: getDisplayComponentCount() called
Line 100 2020-08-03 (14:13:10):: SharpTV: getDisplayComponent(1) called
Line 101 2020-08-03 (14:13:10):: DisplayComponent2:OnHandleDataEvent(41001:1:1,INPUT-HDMI,3)
Line 102 2020-08-03 (14:13:10):: SharpTV: getDisplayComponentCount() called
Line 103 2020-08-03 (14:13:10):: SharpTV: getDisplayComponent(1) called
Line 104 2020-08-03 (14:13:10):: SourceSelectComponent3:OnHandleDataEvent(41001:1:1,INPUT-HDMI,3)
Line 105 2020-08-03 (14:13:10):: SharpTV: getSourceSelectComponentCount() called
Line 106 2020-08-03 (14:13:10):: SharpTV: getSourceSelectComponent(1) called
Line 107 2020-08-03 (14:13:10):: SourceSelectComponent3:OnHandleDataEvent(41001:1:1,INPUT-HDMI,3)
Line 108 2020-08-03 (14:13:10):: SharpTV: getSourceSelectComponentCount() called
Line 109 2020-08-03 (14:13:10):: SharpTV: getSourceSelectComponent(1) called
Line 110 2020-08-03 (14:13:10):: called setInputSource
Line 111 2020-08-03 (14:13:10):: SharpTV: setInputSource(HDMI,3) called
Line 112 2020-08-03 (14:13:10):: SharpTV: SET_INPUTA(3) called
Line 113 2020-08-03 (14:13:10):: SharpTV: GET_INPUT() called
If you are using a passive wait (the wait 50), so not actually checking if the display has turned completely on, have you tried a longer wait? could be that the module doesn't send strings to the real device until that has given feedback that it is turned on. The documentation for the device mentions: "The device has a warm-up time of 10 sec and cool down time of 3 sec during which it does not respond to any other commands."
I know you tried with longer waits before, but see that you've gone back to 5s.
it's true, i'm impatient lol. i'll do some more testing. thank you.
The warmup and cooldown times were the piece I was missing. I finally have this project up and running. Thanks again for all your help!
Glad I could assist
Good luck with your next projects!