Порядковая нумерация леденцов - PullRequest
0 голосов
/ 21 мая 2019

Я использую встроенную беспроводную систему, где она генерирует пакеты данных в определенный интервал времени. Цель состоит в том, чтобы определить, когда устройство / система перезагружается. Для этого я прочитал, что нумерация последовательностей Lollipop - это схема нумерации, наиболее подходящая для этого.

"В этой схеме нумерации порядковые номера начинаются с отрицательного значения, увеличиваются до тех пор, пока они не достигнут нуля, а затем бесконечно циклически перебирают конечный набор положительных чисел. Когда система перезагружается, последовательность перезапускается с отрицательного числа снова. Это позволяет недавно перезагруженным системам отличаться от систем, которые просто зациклились на своем пространстве нумерации. ""

Хотя я знаю теорию о том, как она работает, я не смог реализовать ее на C для моей платформы.

Мой алгоритм очень прост и работает так:

int sequence_num = 0;

generate_data_packet();

sequence_num++;

Этот sequence_num должен быть шаблоном нумерации последовательностей леденцов.

Кто-нибудь может предоставить некоторые фрагменты кода о том, как это может выглядеть в C?

1 Ответ

2 голосов
/ 21 мая 2019

Вы не начинаете с отрицательного числа и не ездите на велосипеде, где ваш леденец?

Как предлагают @WeatherVane и @ 0x5453, сделайте что-то вроде:

const int start_value = -10;  // where you begin
const int max_value = 10; // where you loop

int sequence_num = start_value;

generate_data_packet();

++sequence_num;
if (sequence_num > max_value) {
    sequence_num = 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...