R5975765 RCVDS05 020997
59
R5975765 RCVDS05 020997
59
OPERATING INSTRUCTIONS
OPERATING INSTRUCTIONS
Where the CHKS is : (ADDR + CMD + DAT1 + DAT2 + DAT3 + DAT4)MOD256.
Only the least significant byte (MOD256) of the sum (ADDR + CMD + DAT1 + DAT2
+ DAT3 + DAT4) is used for the checksum.
Because the number of bytes used in a transmission is always smaller than 254, we
are sure that we will always find a byte OFFS so that all the encoded bytes and OFFS
are different from 02.
IMPORTANT : If only 1 RCVDS or projector is connected to the PC, than always
OFFS = 0 may be used, which makes it easier to send the command
A possible solution to find OFFS and checksum :{}
#define STX '\x02'
unsigned char find_offacs (unsigned char *pstart_loc)
{ /* find offset and check sum */
/* pstart_loc : pointer to record to be scanned */
int count;
int check[256]; /* check[i] == TRUE means code 'i' occurs in record */
unsigned checksum;
checksum = 0;
/* initialize checksum
*/
for (count = 0; count <=255; count++)
/* init code checking array
*/
check[count] = FALSE
for (count = 0; count <6; count ++)
/* scan codes in record
*/
{
check[pstart_loc[count]] = TRUE
/* mark in checking array
*/
ch= pstart_loc[count]; }
/* build checksum value
*/
checksum %= 256;
/* keep least significant byte
*/
check[checksum] = TRUE
/* mark in checking array
*/
for (count = 1; check[count] == TRUE; count++);
/* search checkin array :
*/
/* skip value 0 and continue as long as code 'count' is marked TRUE
*/
pstart_loc[6] = (byte) checksum;
/* store checksum in record
*/
return ((unsigned char) (STX-count));
/* offset=STX-not_occuring_code
*/
}
CMD is the command given to the RCVDS05 with address ADR. DAT1-4 can contain
additional information, however, this information is not always used.
Format sent from PC to RCVDS
STX OFFS ADRo CMDo DAT1o DAT2o DAT3o DAT4o CHKSo
Because only the signals RxD and TxD are used for the communication, there is no
way to detect if there is a RCVDS05 or projector listening and if it receives the data
OPERATING INSTRUCTIONS
OPERATING INSTRUCTIONS
Where the CHKS is : (ADDR + CMD + DAT1 + DAT2 + DAT3 + DAT4)MOD256.
Only the least significant byte (MOD256) of the sum (ADDR + CMD + DAT1 + DAT2
+ DAT3 + DAT4) is used for the checksum.
Because the number of bytes used in a transmission is always smaller than 254, we
are sure that we will always find a byte OFFS so that all the encoded bytes and OFFS
are different from 02.
IMPORTANT : If only 1 RCVDS or projector is connected to the PC, than always
OFFS = 0 may be used, which makes it easier to send the command
A possible solution to find OFFS and checksum :{}
#define STX '\x02'
unsigned char find_offacs (unsigned char *pstart_loc)
{ /* find offset and check sum */
/* pstart_loc : pointer to record to be scanned */
int count;
int check[256]; /* check[i] == TRUE means code 'i' occurs in record */
unsigned checksum;
checksum = 0;
/* initialize checksum
*/
for (count = 0; count <=255; count++)
/* init code checking array
*/
check[count] = FALSE
for (count = 0; count <6; count ++)
/* scan codes in record
*/
{
check[pstart_loc[count]] = TRUE
/* mark in checking array
*/
ch= pstart_loc[count]; }
/* build checksum value
*/
checksum %= 256;
/* keep least significant byte
*/
check[checksum] = TRUE
/* mark in checking array
*/
for (count = 1; check[count] == TRUE; count++);
/* search checkin array :
*/
/* skip value 0 and continue as long as code 'count' is marked TRUE
*/
pstart_loc[6] = (byte) checksum;
/* store checksum in record
*/
return ((unsigned char) (STX-count));
/* offset=STX-not_occuring_code
*/
}
CMD is the command given to the RCVDS05 with address ADR. DAT1-4 can contain
additional information, however, this information is not always used.
Format sent from PC to RCVDS
STX OFFS ADRo CMDo DAT1o DAT2o DAT3o DAT4o CHKSo
Because only the signals RxD and TxD are used for the communication, there is no
way to detect if there is a RCVDS05 or projector listening and if it receives the data