Sony VPL-PX41 RS232 Commands..
[Deleted User]
Posts: 0
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?!!
0
Comments
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
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
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
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.
Jeremy
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
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