Суть в общем то такая:
Проверка последовательного порта: передаваемые данные генери¬руются, принимаемые данные накапливаются в памяти; дополнительный конт¬роль - суммированием посылок с циклическим переносом; скорость обмена - от 1200 до 19200 Бод; длина байта - 5 бит.
Поскольку всего 5 бит информационные, то достаточно 3 битов для проверки, что вписывается в байт. Мне показалось, что отправлять целый байт с 3 битами проверочных символов, это кощутство, да и на производительности хреново скажется. Поэтому решил допихивать их в байт с информацией.Хотя тоже спорный вопрос.
Возник вопрос, как подобное действие совершить?
Вот до чего я пока что дошел.
//Процедура отправки байта
unsafe private void Send(byte b, bool error) {
edtSendByte.Text = "";
//Если посылаем в канал с помехами
if (error)
{
//С вероятностью в 40% генерируется ошибка
if ((new Random()).Next(0,5) > 2)
//В b - новый посылаемый байт
b = (byte)(new Random()).Next(0, 32);
}
//Тут надо сделать сдвиг и вычислить CRC
int n = 0;
edtSendByte.Text += b.ToString("X2")+" " ;
edtSendByte.SelectionStart = edtSendByte.Text.Length;
edtSendByte.ScrollToCaret();
//В стек кладем таймер, который потом в конце нам скажет, сколько времени шёл этот символ.
st.Push(new TResult());
do {
System.Threading.NativeOverlapped ol = new System.Threading.NativeOverlapped();
//Отправляем в HandleOut байт b длиной 1.
if (!NativeMethods.WriteFile(HandleOut, &b, 1, &n, ref ol)) {
Log("Пачка не отправлена");
return;
}
//И повторяем отправку, пока не отправится этот символ
} while (n < 1);
}
AnsiString Check(AnsiString s)
{
// a / b = c + r * b
int a = 0, b = 0;
AnsiString st = s, st1 = "", st2 = "";
for (int i = 1; i <= 5; i++)
a += StrToInt(st[i]) * pow(2, 5 - i);
b = 11;
int r = a % b;
int k = 0;
while (k < 3)
{
k++;
st1 += IntToStr(r % 2)[1];
r /= 2;
}
for (int i = 1; i <= k; i++)
st2 += st1[k - i + 1];
st += st2;
return st;
}
Why not settling on games that is fun and at the same time your earning. Well itll make suspense because of the game as well but dude just try it and it gave me hope while pandemic is real rn. https://www.pokernachhilfe.com/4-baccarat-mistakes-that-beginners-may-be-guilty-of-committing/