Block check character: If you need to calulate the block check character, here is a simple example:
Non writeable characters can be used with \x within sprintf.
//<SOH>P1<STX>(00000000)<ETX>a
test=sprintf("\x01P1\x02(00000000)\x03");
dump(test);
bcc=0;
for(i=1; i < strlen(test); i++) {
bcc ^= ord(explode(test)[i]);
}
printf("0x%x\n", bcc);
printf("CHR: %s", chr(bcc));