3 votes

Fonction pour calculer le Block Check Character(BCC) en C#

Caractère de contrôle de bloc (BCC) J'ai besoin d'une fonction pour calculer le Block Check Character (BCC) en C#. 01 30 02 4D 21 20 20 03 Voici la chaîne de caractères, comment puis-je calculer le "Block Check Character" pour cette chaîne.

BCC = OU exclusif de SOH à ETX SOH ID STX CODE ETX BCC 0x01 0x30 0x02 0x40 0x03

J'ai besoin d'ajouter BCC et d'envoyer des données à COM. Si possible, veuillez me donner une fonction qui me permette d'envoyer "01 30 02 4D 21 20 20 03" et d'obtenir le BCC.

Gracias

5voto

Vivek Points 7254

D'après ce que je sais, BCC est le XOR de tous les octets d'un flux d'octets donné, en excluant le premier SOH ou STX jusqu'au premier ETX ou EOT. ETX est inclus dans le BCC. Divisez votre flux d'octets après chaque ETX et appelez la fonction suivante pour obtenir le BCC.

 public static byte GetBCC(this byte[] inputStream)
    {
        byte bcc = 0;

        if (inputStream != null && inputStream.Length > 0)
        {
            // Exclude SOH during BCC calculation
            for (int i = 1; i < inputStream.Length; i++)
            {
                bcc ^= inputStream[i];
            }
        }

        return bcc;
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X