Sony VPL-PX41 RS232 Commands..
owainah
Junior Member
Does anyone have a working RS232 command list for the
Sony VPL-PX41 Projector?
I have some formulas for calculating the checksum, but still I'm not able to control it?!!
Sony VPL-PX41 Projector?
I have some formulas for calculating the checksum, but still I'm not able to control it?!!
Comments
-
Vpl-px41
Hey owainah,
Here an exaple. It works with a CALL function.
The soulution is: work with a BOR (bitwise OR)
//Define CALL
DEFINE_CALL 'BEAM_1_SEND' (DC_BS_1_STR[20])
LOCAL_VAR
DC_BS_1_COUNT (* COUNTER *)
DC_BS_1_CHKSM (* RESULTAT CHECKSUMME *)
{
SET_LENGTH_STRING(DC_BS_1_STR,LENGTH_STRING(DC_BS_1_STR))
DC_BS_1_COUNT=1
DC_BS_1_CHKSM=0
WHILE (DC_BS_1_COUNT<=LENGTH_STRING(DC_BS_1_STR))
{
DC_BS_1_CHKSM=DC_BS_1_CHKSM BOR DC_BS_1_STR[DC_BS_1_COUNT]
DC_BS_1_COUNT=DC_BS_1_COUNT+1
}
SEND_STRING BEAM___1,"$A9,DC_BS_1_STR,DC_BS_1_CHKSM,$9A"
}
// Command ?
DC_BC_1_STR = VPL_CMD[(Do)]
CALL 'BEAM_1_SEND' (DC_BC_1_STR)
// List with all commands (one example..)
VPL_CMD[03]="$00,$01,$00,$00,$00" (* INPUT VIDEO *)
I hope to help you....
Greez -
If you can't get it to work I have an old AMX file that they gave me for the SONY PX-30, may do the trick.
-
Hi
For all projector Sony , you can use on simple code AXI
http://www.domedia.net/forums/viewtopic.php?t=12
I make all comparaison between all protocol i found ( only concerning projector of course ) and i write all constant for all functions
it"s working ;-)
but if you need some help ....
i hope that's help you
regards -
Sony Command Strings
Here are some strings that I use for the Sony VPL-PX35
Hope they help.
(* VERIFIED OPERATIONAL CONTROL STRINGS *)
// SEND_STRING PROJECTOR,"$A9,$17,$2E,$00,$00,$00,$3F,$9A" // PROJECTOR ON
// SEND_STRING PROJECTOR,"$A9,$17,$2B,$00,$00,$00,$3F,$9A" // INPUT A
// SEND_STRING PROJECTOR,"$A9,$17,$2F,$00,$00,$00,$3F,$9A" // PROJECTOR OFF
// SEND_STRING PROJECTOR,"$A9,$17,$2A,$00,$00,$00,$3F,$9A" // VIDEO
// SEND_STRING PROJECTOR,"$A9,$17,$2C,$00,$00,$00,$3F,$9A" // INPUT B
// SEND_STRING PROJECTOR,"$A9,$17,$6F,$00,$00,$00,$7F,$9A" // INPUT C
// SEND_STRING PROJECTOR,"$A9,$17,$5F,$00,$00,$00,$5F,$9A" // SVIDEO
// SEND_STRING PROJECTOR,"$A9,$00,$30,$00,$00,$00,$30,$9A" // PIC MUTE OFF
// SEND_STRING PROJECTOR,"$A9,$00,$30,$00,$01,$00,$31,$9A" // PIC MUTE ON -
Additional Support Strings
I have been working with most of the Sony Projector line for a few years now. Here are some additional strings that may help:
define_call 'Projector Error Status'{
send_string dvVPROJ,"$A9,$01,$01,$01,$00,$00,$03,$9A"; // Sony Error Status
wait 10 'Projector Buffer Check'{
remove_string(VPROJ.BUFFER,"$A9,$01",1);
select{
active(find_string(VPROJ.BUFFER,"$00,$01",1)):{
VPROJ.ERROR = cERR_LAMP;
send_string vdvVPROJ,'ERROR=1';
}
active(find_string(VPROJ.BUFFER,"$00,$02",1)):{
VPROJ.ERROR = cERR_FAN;
send_string vdvVPROJ,'ERROR=2';
}
active(find_string(VPROJ.BUFFER,"$00,$04",1)):{
VPROJ.ERROR = cERR_COVR;
send_string vdvVPROJ,'ERROR=3';
}
active(find_string(VPROJ.BUFFER,"$00,$08",1)):{
VPROJ.ERROR = cERR_TEMP;
send_string vdvVPROJ,'ERROR=4';
}
active(find_string(VPROJ.BUFFER,"$00,$10",1)):{
VPROJ.ERROR = cERR_D5V;
send_string vdvVPROJ,'ERROR=5';
}
active(find_string(VPROJ.BUFFER,"$00,$20",1)):{
VPROJ.ERROR = cERR_PWR;
send_string vdvVPROJ,'ERROR=6';
}
active(find_string(VPROJ.BUFFER,"$00,$40",1)):{
VPROJ.ERROR = cERR_WARN;
send_string vdvVPROJ,'ERROR=7';
}
active(find_string(VPROJ.BUFFER,"$00,$00",1)):{
VPROJ.ERROR = cERR_NONE;
send_string vdvVPROJ,'ERROR=0';
}
}
clear_buffer VPROJ.BUFFER;
}
}
define_call 'Projector Power Status'{
send_string dvVPROJ,"$A9,$01,$02,$01,$00,$00,$03,$9A"; // Sony Power Status
wait 10 'Projector Buffer Check'{
remove_string(VPROJ.BUFFER,"$A9,$01,$02,$02,$00",1);
select{
active(find_string(VPROJ.BUFFER,"$00,$03",1)):{
VPROJ.POWER = cPWR_OFF;
send_string vdvVPROJ,'POWER=0';
}
active(find_string(VPROJ.BUFFER,"$03,$03",1)):{
VPROJ.POWER = cPWR_ON;
send_string vdvVPROJ,'POWER=1';
}
active(find_string(VPROJ.BUFFER,"$04,$07",1)):{
VPROJ.POWER = cPWR_COOL;
send_string vdvVPROJ,'POWER=2';
}
active(find_string(VPROJ.BUFFER,"$02,$03",1)):{
VPROJ.POWER = cPWR_WARM;
send_string vdvVPROJ,'POWER=3';
}
}
clear_buffer VPROJ.BUFFER;
}
}
I have a module I wrote for Sony Projectors VPL-PX35/40/41. If you want it, let me know. -
Does anyone else think this is the most pointless checksum they've ever seen? (bitwise or of all data bytes) I'm having difficulty thinking of another checksum method that could allow so many single-bit errors to slip through unnoticed... maybe one based solely on the packet length.
Jeremy -
On the level we are working, I think all checksums are pointless. They should just ignore invalid commands, or respond with an error code. Checksums were intended to make up for cheesy serial port hardware that dropped data sporadically, or transmissions of data files that could have corrupt packets. We are dealing with tiny control packets and modern serial port chips, and the need for them is pretty much zero.jweather wrote:Does anyone else think this is the most pointless checksum they've ever seen? (bitwise or of all data bytes) I'm having difficulty thinking of another checksum method that could allow so many single-bit errors to slip through unnoticed... maybe one based solely on the packet length.
Jeremy -
DHawthorne wrote:On the level we are working, I think all checksums are pointless. They should just ignore invalid commands, or respond with an error code. Checksums were intended to make up for cheesy serial port hardware that dropped data sporadically, or transmissions of data files that could have corrupt packets. We are dealing with tiny control packets and modern serial port chips, and the need for them is pretty much zero.
I'm not going to go that far... I can think of plenty of devices where corrupted data or command bytes could be very inconvenient, if not actually dangerous. Security systems are one example that come to mind that have some rather inconvenient commands. The 'panic' command could be just one bit different from another command, for instance. However, a simple sum of the bytes is at least likely to catch most serial transmission errors. Maybe that's why they're called checksums? Hmm..
The only place checksums are completely silly is in IP control protocols, at least assuming they're using TCP/IP. TCP has its own checksum built in, and it's guaranteed to either deliver the packet correctly or not deliver it at all.
Jeremy -
Stupid simple Projector sony control
Hi I am a developer to the first weapons, for which it programs them it is very elementary!!! but it works.
It has the feedback of the power, input, hours, errors, are of lighting and cooling
Categories
- All Categories
- 2.5K AMX General Discussion
- 922 AMX Technical Discussion
- 514 AMX Hardware
- 502 AMX Control Products
- 3 AMX Video Distribution Products
- 9 AMX Networked AV (SVSI) Products
- AMX Workspace & Collaboration Products
- 3.4K AMX Software
- 151 AMX Resource Management Suite Software
- 386 AMX Design Tools
- 2.4K NetLinx Studio
- 135 Duet/Cafe Duet
- 248 NetLinx Modules & Duet Modules
- 57 AMX RPM Forum
- 228 MODPEDIA - The Public Repository of Modules for Everyone
- 943 AMX Specialty Forums
- 2.6K AMXForums Archive
- 2.6K AMXForums Archive Threads
- 1.5K AMX Hardware
- 432 AMX Applications and Solutions
- 249 Residential Forum
- 182 Tips and Tricks
- 146 AMX Website/Forums
