La stringa deve essere ascii, cioe' deve essere proprio una sequenza di caratteri tipo "02FFFF...031D".
Per quanto riguarda il carattere di controllo vi riporto un esempio:
Se ho la stringa "0200040c0044534330303030312e4a504703" il carattere di controllo viene calcolato come
0x02^0x00^0x04^0x0c^0x00^0x44^0x53^0x43^0x30 ^0x30^0x30^0x30^0x31^0x2e^0x4a^0x50^0x47^0x03
cioe' il risultato di 0x02^0x00 viene poi usato nel complemento con 0x04 (il terzo valore) e cosi' via.
Naturalmente i valori compresi tra 0x02 e 0x03 sono i codici esadecimali dei caratteri della mia stringa di input.
Per chiarire meglio, anche se il formato della stringa finale non e' esattamente quello che devo avere io, vi do' questo link http://www.yk.rim.or.jp/~mamo/Comput.../detail-e.html che spiega il calcolo del cosidetto BCC. Attenzione pero' io non uso il valore 10 come indicato nel sito e calcolo il bcc prendendo anche il primo valore (02) mentre in quel sito lo esclude.