示例#1
0
 /// <summary>
 /// Zakodowywuje wiadomość do słowa kodowego
 /// </summary>
 /// <param name="errorsCorrection">liczba błędów mozliwych do skorygowania</param>
 /// <param name="input">wiadomość</param>
 /// <returns>tablicę bajtów zawierającą słowa kodowe</returns>
 public static byte[] Encode(int errorsCorrection, Stream input)
 {
     return(errorsCorrection switch
     {
         1 => SingleECC.Encode(input),                                  // korekcja 1 błędu
         2 => DoubleECC.Encode(input),                                  // korekcja 2 błędów
         _ => throw new Exception("Unsupported errors correction mode") // korekcje większej ilości błędów nie obsługujemy
     });
示例#2
0
        static void Main(string[] args)
        {
            var str   = "1101000110";            // wiadomość do zakodowania (10 bitów)
            var bytes = BitsUtils.ToBinary(str); // konwersja do postaci bitowej

            using MemoryStream ms = new MemoryStream(bytes);
            var       encoded = Telekom.ECC.Encode(1, ms); // Zakodowanie wiadomości do słowa kodowego
            BitVector vector  = new BitVector(encoded);

            vector.SwitchBit(3);                 // zamiana 3 bitu (pierwsze słowo kodowe)
            vector.SwitchBit(12);                // zamiana 12 bitu (drugie słowo kodowe)
            using MemoryStream ms1 = new MemoryStream(encoded);
            var docoded = SingleECC.Decode(ms1); // Odkodowanie słowa kodowego (i korekcja błędów)
        }