我正在使用嵌入式无线系统,该系统在定义的时间间隔内生成数据包。目的是检测设备/系统何时重新启动。为此,我读到Lollipop序列编号是最适合此的编号方案。
“在此编号方案中,序列号从负值开始,直到达到零为止,然后无限期地循环经过有限的一组正数。当系统重新启动时,该序列将从负号重新开始。这样可以将最近重新引导的系统与仅在其编号空间周围循环的系统区分开来。”“
尽管,我知道它是如何工作的,但还不能在C中为我的平台实现。
我的算法非常简单,可以这样工作:
int sequence_num = 0;
generate_data_packet();
sequence_num++;
此sequence_num必须是棒棒糖序列编号模式。
任何人都可以提供一些有关C语言中的代码片段的信息吗?
答案 0 :(得分:2)
您不是从负数开始,也不是骑自行车,棒棒糖在哪里?
按照@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;
}