Arinc标签处理

Arinc标签处理,c,algorithm,C,Algorithm,我处理arinc标签。每1秒,我接收它们(也许只是一些)。当相应帧的SSM在10个连续帧中不正常操作时,我认为标签是有效的。 这是我的算法,我想知道它是否是编码它的最佳方法: 计数器是用9初始化的全局数据 if(Label is received) { if(SSM == NO) { Get the label and set it as valid Counter = 9; } else { if(counter > 0) {

我处理arinc标签。每1秒,我接收它们(也许只是一些)。当相应帧的SSM在10个连续帧中不正常操作时,我认为标签是有效的。 这是我的算法,我想知道它是否是编码它的最佳方法:

计数器是用9初始化的全局数据

if(Label is received)
{
  if(SSM == NO)
  {
    Get the label and set it as valid
    Counter = 9;
  }
  else
 {
   if(counter > 0)
     {
       counter --;
     }
     else
    {
     label is invalid
    }
 }
}

当SSI指示
normal
时,标签的特定实例可用。等待标签SSI字段的10个实例持续指示
normal
,即延迟(在您的情况下)10秒,对于每秒更新一次的数据而言,这是“永久的”。最好立即使用
normal
数据,并对数据字段执行验证,可能是通过对数据进行去盎司滤波或求平均值或低通滤波。发布的代码不会按照问题中的说明执行。而是
立即
将标签状态设置为
有效
,并且在收到
不正常
标签的连续10个实例之前,不会将标签状态设置为
无效
。此外,大约有256个标签,但此代码不区分它们。当SSI指示
normal
时,标签的特定实例可用。等待标签SSI字段的10个实例持续指示
normal
,即延迟(在您的情况下)10秒,对于每秒更新一次的数据而言,这是“永久的”。最好立即使用
normal
数据,并对数据字段执行验证,可能是通过对数据进行去盎司滤波或求平均值或低通滤波。发布的代码不会按照问题中的说明执行。而是
立即
将标签状态设置为
有效
,并且在收到
不正常
标签的连续10个实例之前,不会将标签状态设置为
无效
。此外,还有大约256个标签,但此代码不区分它们