asterix_parser 0.1.1

Playground do Protocolo ASTERIX
Documentation
macro_rules! get_attributes {
    () => {
        {
            use crate::asterix::uap::common::datatypes::{AsterixAttribute, AttributeType}; 
            vec![
                // Attributes from 1st field 
                AsterixAttribute::new(1, 1, 8, 6, "(TYP) Detection type".to_string(), "typ".to_string(), AttributeType::UInt8),
                AsterixAttribute::new(1, 1, 5, 5, "(SIM) Simulated target".to_string(), "sim".to_string(), AttributeType::Boolean),
                AsterixAttribute::new(1, 1, 4, 4, "(RDP) Report from RDP Chain".to_string(), "rdp".to_string(), AttributeType::Boolean),
                AsterixAttribute::new(1, 1, 3, 3, "(SPI) Special Position Identification".to_string(), "spi".to_string(), AttributeType::Boolean),
                AsterixAttribute::new(1, 1, 2, 2, "(RAB) Report Source".to_string(), "rab".to_string(), AttributeType::Boolean),

                // Attributes from possible 1st Extension Field 
                AsterixAttribute::new(1, 2, 8, 8, "(TST) Test Target".to_string(), "tst".to_string(), AttributeType::Boolean),
                AsterixAttribute::new(1, 2, 7, 7, "(ERR) Extended Range".to_string(), "err".to_string(), AttributeType::Boolean),
                AsterixAttribute::new(1, 2, 6, 6, "(XPP) X-Pulse presence".to_string(), "xpp".to_string(), AttributeType::Boolean),
                AsterixAttribute::new(1, 2, 5, 5, "(ME) Military emergency".to_string(), "me".to_string(), AttributeType::Boolean),
                AsterixAttribute::new(1, 2, 4, 4, "(MI) Military identification".to_string(), "mi".to_string(), AttributeType::Boolean),
                AsterixAttribute::new(1, 2, 3, 2, "(FOE/FRI) Foe / Friend".to_string(), "foe_fri".to_string(), AttributeType::UInt8),

                // Attributes from possible 2nd Extension Field 
                // (ADSB) On-Site ADS-B Information (2 bits)
                AsterixAttribute::new(1, 2, 8, 8, "(ADSB#EP) ADSB Element Populated Bit".to_string(), "adsb_ep".to_string(), AttributeType::Boolean),
                AsterixAttribute::new(1, 2, 7, 7, "(ADSB#VAL) On-Site ADS-B Information".to_string(), "adsb_val".to_string(), AttributeType::Boolean),

                // (SCN) Surveillance Cluster Network Information (2 bits)
                AsterixAttribute::new(1, 2, 6, 6, "(SCN#EP) SCN Element Populated Bit".to_string(), "scn_ep".to_string(), AttributeType::Boolean),
                AsterixAttribute::new(1, 2, 5, 5, "(SCN#VAL) Surveillance Cluster Network Information".to_string(), "scn_val".to_string(), AttributeType::Boolean),

                // (PAI) Passive Acquisition Interface Information
                AsterixAttribute::new(1, 2, 4, 4, "(PAI#EP) PAI Element Populated Bit".to_string(), "pai_ep".to_string(), AttributeType::Boolean),
                AsterixAttribute::new(1, 2, 3, 2, "(PAI#VAL) Passive Acquisition Interface Information".to_string(), "pai_val".to_string(), AttributeType::Boolean),

                // Bit 2  is a SPARE - should be ignored
            ]
        }
    };
}

pub(crate) use get_attributes;